diff --git a/internal/frontend/bridge-gui/GRPC/GRPCClient.cpp b/internal/frontend/bridge-gui/GRPC/GRPCClient.cpp index 6fbf284b..26269413 100644 --- a/internal/frontend/bridge-gui/GRPC/GRPCClient.cpp +++ b/internal/frontend/bridge-gui/GRPC/GRPCClient.cpp @@ -257,6 +257,27 @@ grpc::Status GRPCClient::currentEmailClient(QString &outName) } +//**************************************************************************************************************************************************** +/// \param[in] description The description of the bug. +/// \param[in] address The email address. +/// \param[in] emailClient The email client. +/// \param[in] includeLogs Should the report include the logs. +/// \return The status foer the gRPC call. +//**************************************************************************************************************************************************** +grpc::Status GRPCClient::reportBug(QString const &description, QString const &address, QString const &emailClient, bool includeLogs) +{ + grpc::ClientContext ctx; + ReportBugRequest request; + request.set_ostype(QSysInfo::productType().toStdString()); + request.set_osversion(QSysInfo::prettyProductName().toStdString()); + request.set_description(description.toStdString()); + request.set_address(address.toStdString()); + request.set_emailclient(emailClient.toStdString()); + request.set_includelogs(includeLogs); + return stub_->ReportBug(&ctx, request, &empty); +} + + //**************************************************************************************************************************************************** /// \param[out] outUseSSL The value for the property. /// \return The status for the gRPC call. @@ -717,7 +738,9 @@ grpc::Status GRPCClient::setCurrentKeychain(QString const &keychain) grpc::Status GRPCClient::startEventStream() { grpc::ClientContext ctx; - std::unique_ptr> reader(stub_->StartEventStream(&ctx, empty)); + EventStreamRequest request; + request.set_clientplatform(QSysInfo::prettyProductName().toStdString()); + std::unique_ptr> reader(stub_->StartEventStream(&ctx, request)); grpc::StreamEvent event; while (reader->Read(&event)) @@ -1251,3 +1274,5 @@ void GRPCClient::processUserEvent(UserEvent const &event) app().log().error("Unknown User event received."); } } + + diff --git a/internal/frontend/bridge-gui/GRPC/GRPCClient.h b/internal/frontend/bridge-gui/GRPC/GRPCClient.h index 0c6561c6..62e4dc17 100644 --- a/internal/frontend/bridge-gui/GRPC/GRPCClient.h +++ b/internal/frontend/bridge-gui/GRPC/GRPCClient.h @@ -59,7 +59,7 @@ public: // member functions. grpc::Status colorSchemeName(QString &outName); ///< Performs the "colorSchemeName' gRPC call. grpc::Status setColorSchemeName(QString const &name); ///< Performs the "setColorSchemeName' gRPC call. grpc::Status currentEmailClient(QString &outName); ///< Performs the 'currentEmailClient' gRPC call. - + grpc::Status reportBug(QString const &description, QString const &address, QString const &emailClient, bool includeLogs); ///< Performs the 'ReportBug' gRPC call. grpc::Status quit(); ///< Perform the "Quit" gRPC call. grpc::Status restart(); ///< Performs the Restart gRPC call. grpc::Status isPortFree(qint32 port, bool &outFree); ///< Performs the 'IsPortFree' call. diff --git a/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.cc b/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.cc index 82a14e27..73d28c59 100644 --- a/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.cc +++ b/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.cc @@ -1262,19 +1262,19 @@ void Bridge::Stub::async::ConfigureUserAppleMail(::grpc::ClientContext* context, return result; } -::grpc::ClientReader< ::grpc::StreamEvent>* Bridge::Stub::StartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) { +::grpc::ClientReader< ::grpc::StreamEvent>* Bridge::Stub::StartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request) { return ::grpc::internal::ClientReaderFactory< ::grpc::StreamEvent>::Create(channel_.get(), rpcmethod_StartEventStream_, context, request); } -void Bridge::Stub::async::StartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) { +void Bridge::Stub::async::StartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) { ::grpc::internal::ClientCallbackReaderFactory< ::grpc::StreamEvent>::Create(stub_->channel_.get(), stub_->rpcmethod_StartEventStream_, context, request, reactor); } -::grpc::ClientAsyncReader< ::grpc::StreamEvent>* Bridge::Stub::AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) { +::grpc::ClientAsyncReader< ::grpc::StreamEvent>* Bridge::Stub::AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq, void* tag) { return ::grpc::internal::ClientAsyncReaderFactory< ::grpc::StreamEvent>::Create(channel_.get(), cq, rpcmethod_StartEventStream_, context, request, true, tag); } -::grpc::ClientAsyncReader< ::grpc::StreamEvent>* Bridge::Stub::PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) { +::grpc::ClientAsyncReader< ::grpc::StreamEvent>* Bridge::Stub::PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq) { return ::grpc::internal::ClientAsyncReaderFactory< ::grpc::StreamEvent>::Create(channel_.get(), cq, rpcmethod_StartEventStream_, context, request, false, nullptr); } @@ -1795,10 +1795,10 @@ Bridge::Service::Service() { AddMethod(new ::grpc::internal::RpcServiceMethod( Bridge_method_names[49], ::grpc::internal::RpcMethod::SERVER_STREAMING, - new ::grpc::internal::ServerStreamingHandler< Bridge::Service, ::google::protobuf::Empty, ::grpc::StreamEvent>( + new ::grpc::internal::ServerStreamingHandler< Bridge::Service, ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [](Bridge::Service* service, ::grpc::ServerContext* ctx, - const ::google::protobuf::Empty* req, + const ::grpc::EventStreamRequest* req, ::grpc::ServerWriter<::grpc::StreamEvent>* writer) { return service->StartEventStream(ctx, req, writer); }, this))); @@ -2160,7 +2160,7 @@ Bridge::Service::~Service() { return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } -::grpc::Status Bridge::Service::StartEventStream(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::grpc::StreamEvent>* writer) { +::grpc::Status Bridge::Service::StartEventStream(::grpc::ServerContext* context, const ::grpc::EventStreamRequest* request, ::grpc::ServerWriter< ::grpc::StreamEvent>* writer) { (void) context; (void) request; (void) writer; diff --git a/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.h b/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.h index 13b138e9..1bbdbcfc 100644 --- a/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.h +++ b/internal/frontend/bridge-gui/GRPC/bridge.grpc.pb.h @@ -410,13 +410,13 @@ class Bridge final { return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>>(PrepareAsyncConfigureUserAppleMailRaw(context, request, cq)); } // Server -> Client event stream - std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::StreamEvent>> StartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) { + std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::StreamEvent>> StartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request) { return std::unique_ptr< ::grpc::ClientReaderInterface< ::grpc::StreamEvent>>(StartEventStreamRaw(context, request)); } - std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>> AsyncStartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) { + std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>> AsyncStartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq, void* tag) { return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>>(AsyncStartEventStreamRaw(context, request, cq, tag)); } - std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>> PrepareAsyncStartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) { + std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>> PrepareAsyncStartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>>(PrepareAsyncStartEventStreamRaw(context, request, cq)); } // Keep streaming until StopEventStream is called. @@ -539,7 +539,7 @@ class Bridge final { virtual void ConfigureUserAppleMail(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response, std::function) = 0; virtual void ConfigureUserAppleMail(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; // Server -> Client event stream - virtual void StartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) = 0; + virtual void StartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) = 0; // Keep streaming until StopEventStream is called. virtual void StopEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function) = 0; virtual void StopEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) = 0; @@ -646,9 +646,9 @@ class Bridge final { virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncRemoveUserRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncConfigureUserAppleMailRaw(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncConfigureUserAppleMailRaw(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest& request, ::grpc::CompletionQueue* cq) = 0; - virtual ::grpc::ClientReaderInterface< ::grpc::StreamEvent>* StartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) = 0; - virtual ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>* AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) = 0; - virtual ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>* PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0; + virtual ::grpc::ClientReaderInterface< ::grpc::StreamEvent>* StartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request) = 0; + virtual ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>* AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq, void* tag) = 0; + virtual ::grpc::ClientAsyncReaderInterface< ::grpc::StreamEvent>* PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* AsyncStopEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0; virtual ::grpc::ClientAsyncResponseReaderInterface< ::google::protobuf::Empty>* PrepareAsyncStopEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0; }; @@ -998,13 +998,13 @@ class Bridge final { std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>> PrepareAsyncConfigureUserAppleMail(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>>(PrepareAsyncConfigureUserAppleMailRaw(context, request, cq)); } - std::unique_ptr< ::grpc::ClientReader< ::grpc::StreamEvent>> StartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) { + std::unique_ptr< ::grpc::ClientReader< ::grpc::StreamEvent>> StartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request) { return std::unique_ptr< ::grpc::ClientReader< ::grpc::StreamEvent>>(StartEventStreamRaw(context, request)); } - std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>> AsyncStartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) { + std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>> AsyncStartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq, void* tag) { return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>>(AsyncStartEventStreamRaw(context, request, cq, tag)); } - std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>> PrepareAsyncStartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) { + std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>> PrepareAsyncStartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq) { return std::unique_ptr< ::grpc::ClientAsyncReader< ::grpc::StreamEvent>>(PrepareAsyncStartEventStreamRaw(context, request, cq)); } ::grpc::Status StopEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::google::protobuf::Empty* response) override; @@ -1115,7 +1115,7 @@ class Bridge final { void RemoveUser(::grpc::ClientContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; void ConfigureUserAppleMail(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response, std::function) override; void ConfigureUserAppleMail(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; - void StartEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) override; + void StartEventStream(::grpc::ClientContext* context, const ::grpc::EventStreamRequest* request, ::grpc::ClientReadReactor< ::grpc::StreamEvent>* reactor) override; void StopEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, std::function) override; void StopEventStream(::grpc::ClientContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response, ::grpc::ClientUnaryReactor* reactor) override; private: @@ -1227,9 +1227,9 @@ class Bridge final { ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncRemoveUserRaw(::grpc::ClientContext* context, const ::google::protobuf::StringValue& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncConfigureUserAppleMailRaw(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncConfigureUserAppleMailRaw(::grpc::ClientContext* context, const ::grpc::ConfigureAppleMailRequest& request, ::grpc::CompletionQueue* cq) override; - ::grpc::ClientReader< ::grpc::StreamEvent>* StartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) override; - ::grpc::ClientAsyncReader< ::grpc::StreamEvent>* AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) override; - ::grpc::ClientAsyncReader< ::grpc::StreamEvent>* PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override; + ::grpc::ClientReader< ::grpc::StreamEvent>* StartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request) override; + ::grpc::ClientAsyncReader< ::grpc::StreamEvent>* AsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq, void* tag) override; + ::grpc::ClientAsyncReader< ::grpc::StreamEvent>* PrepareAsyncStartEventStreamRaw(::grpc::ClientContext* context, const ::grpc::EventStreamRequest& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* AsyncStopEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override; ::grpc::ClientAsyncResponseReader< ::google::protobuf::Empty>* PrepareAsyncStopEventStreamRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override; const ::grpc::internal::RpcMethod rpcmethod_GuiReady_; @@ -1350,7 +1350,7 @@ class Bridge final { virtual ::grpc::Status RemoveUser(::grpc::ServerContext* context, const ::google::protobuf::StringValue* request, ::google::protobuf::Empty* response); virtual ::grpc::Status ConfigureUserAppleMail(::grpc::ServerContext* context, const ::grpc::ConfigureAppleMailRequest* request, ::google::protobuf::Empty* response); // Server -> Client event stream - virtual ::grpc::Status StartEventStream(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::grpc::StreamEvent>* writer); + virtual ::grpc::Status StartEventStream(::grpc::ServerContext* context, const ::grpc::EventStreamRequest* request, ::grpc::ServerWriter< ::grpc::StreamEvent>* writer); // Keep streaming until StopEventStream is called. virtual ::grpc::Status StopEventStream(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::google::protobuf::Empty* response); }; @@ -2346,11 +2346,11 @@ class Bridge final { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } - void RequestStartEventStream(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncWriter< ::grpc::StreamEvent>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { + void RequestStartEventStream(::grpc::ServerContext* context, ::grpc::EventStreamRequest* request, ::grpc::ServerAsyncWriter< ::grpc::StreamEvent>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) { ::grpc::Service::RequestAsyncServerStreaming(49, context, request, writer, new_call_cq, notification_cq, tag); } }; @@ -3705,20 +3705,20 @@ class Bridge final { public: WithCallbackMethod_StartEventStream() { ::grpc::Service::MarkMethodCallback(49, - new ::grpc::internal::CallbackServerStreamingHandler< ::google::protobuf::Empty, ::grpc::StreamEvent>( + new ::grpc::internal::CallbackServerStreamingHandler< ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [this]( - ::grpc::CallbackServerContext* context, const ::google::protobuf::Empty* request) { return this->StartEventStream(context, request); })); + ::grpc::CallbackServerContext* context, const ::grpc::EventStreamRequest* request) { return this->StartEventStream(context, request); })); } ~WithCallbackMethod_StartEventStream() override { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } virtual ::grpc::ServerWriteReactor< ::grpc::StreamEvent>* StartEventStream( - ::grpc::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/) { return nullptr; } + ::grpc::CallbackServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/) { return nullptr; } }; template class WithCallbackMethod_StopEventStream : public BaseClass { @@ -4594,7 +4594,7 @@ class Bridge final { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } @@ -5608,7 +5608,7 @@ class Bridge final { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } @@ -6729,7 +6729,7 @@ class Bridge final { BaseClassMustBeDerivedFromService(this); } // disable synchronous version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } @@ -8117,10 +8117,10 @@ class Bridge final { WithSplitStreamingMethod_StartEventStream() { ::grpc::Service::MarkMethodStreamed(49, new ::grpc::internal::SplitServerStreamingHandler< - ::google::protobuf::Empty, ::grpc::StreamEvent>( + ::grpc::EventStreamRequest, ::grpc::StreamEvent>( [this](::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< - ::google::protobuf::Empty, ::grpc::StreamEvent>* streamer) { + ::grpc::EventStreamRequest, ::grpc::StreamEvent>* streamer) { return this->StreamedStartEventStream(context, streamer); })); @@ -8129,12 +8129,12 @@ class Bridge final { BaseClassMustBeDerivedFromService(this); } // disable regular version of this method - ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { + ::grpc::Status StartEventStream(::grpc::ServerContext* /*context*/, const ::grpc::EventStreamRequest* /*request*/, ::grpc::ServerWriter< ::grpc::StreamEvent>* /*writer*/) override { abort(); return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, ""); } // replace default version of method with split streamed - virtual ::grpc::Status StreamedStartEventStream(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::google::protobuf::Empty,::grpc::StreamEvent>* server_split_streamer) = 0; + virtual ::grpc::Status StreamedStartEventStream(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::grpc::EventStreamRequest,::grpc::StreamEvent>* server_split_streamer) = 0; }; typedef WithSplitStreamingMethod_StartEventStream SplitStreamedService; typedef WithStreamedUnaryMethod_GuiReady > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > StreamedService; diff --git a/internal/frontend/bridge-gui/GRPC/bridge.pb.cc b/internal/frontend/bridge-gui/GRPC/bridge.pb.cc index 2f4ef8c1..68521bab 100644 --- a/internal/frontend/bridge-gui/GRPC/bridge.pb.cc +++ b/internal/frontend/bridge-gui/GRPC/bridge.pb.cc @@ -23,7 +23,9 @@ namespace _pbi = _pb::internal; namespace grpc { PROTOBUF_CONSTEXPR ReportBugRequest::ReportBugRequest( ::_pbi::ConstantInitialized): _impl_{ - /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + /*decltype(_impl_.ostype_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.osversion_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_.description_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.address_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.emailclient_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} , /*decltype(_impl_.includelogs_)*/false @@ -168,6 +170,19 @@ struct ConfigureAppleMailRequestDefaultTypeInternal { }; }; PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ConfigureAppleMailRequestDefaultTypeInternal _ConfigureAppleMailRequest_default_instance_; +PROTOBUF_CONSTEXPR EventStreamRequest::EventStreamRequest( + ::_pbi::ConstantInitialized): _impl_{ + /*decltype(_impl_.clientplatform_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}} + , /*decltype(_impl_._cached_size_)*/{}} {} +struct EventStreamRequestDefaultTypeInternal { + PROTOBUF_CONSTEXPR EventStreamRequestDefaultTypeInternal() + : _instance(::_pbi::ConstantInitialized{}) {} + ~EventStreamRequestDefaultTypeInternal() {} + union { + EventStreamRequest _instance; + }; +}; +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 EventStreamRequestDefaultTypeInternal _EventStreamRequest_default_instance_; PROTOBUF_CONSTEXPR StreamEvent::StreamEvent( ::_pbi::ConstantInitialized): _impl_{ /*decltype(_impl_.event_)*/{} @@ -726,7 +741,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[55]; +static ::_pb::Metadata file_level_metadata_bridge_2eproto[56]; static const ::_pb::EnumDescriptor* file_level_enum_descriptors_bridge_2eproto[4]; static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_bridge_2eproto = nullptr; @@ -737,6 +752,8 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p ~0u, // no _oneof_case_ ~0u, // no _weak_field_map_ ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::grpc::ReportBugRequest, _impl_.ostype_), + PROTOBUF_FIELD_OFFSET(::grpc::ReportBugRequest, _impl_.osversion_), PROTOBUF_FIELD_OFFSET(::grpc::ReportBugRequest, _impl_.description_), PROTOBUF_FIELD_OFFSET(::grpc::ReportBugRequest, _impl_.address_), PROTOBUF_FIELD_OFFSET(::grpc::ReportBugRequest, _impl_.emailclient_), @@ -819,6 +836,13 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p PROTOBUF_FIELD_OFFSET(::grpc::ConfigureAppleMailRequest, _impl_.userid_), PROTOBUF_FIELD_OFFSET(::grpc::ConfigureAppleMailRequest, _impl_.address_), ~0u, // no _has_bits_ + PROTOBUF_FIELD_OFFSET(::grpc::EventStreamRequest, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + PROTOBUF_FIELD_OFFSET(::grpc::EventStreamRequest, _impl_.clientplatform_), + ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::grpc::StreamEvent, _internal_metadata_), ~0u, // no _extensions_ PROTOBUF_FIELD_OFFSET(::grpc::StreamEvent, _impl_._oneof_case_[0]), @@ -1163,60 +1187,61 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p }; static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = { { 0, -1, -1, sizeof(::grpc::ReportBugRequest)}, - { 10, -1, -1, sizeof(::grpc::LoginRequest)}, - { 18, -1, -1, sizeof(::grpc::LoginAbortRequest)}, - { 25, -1, -1, sizeof(::grpc::ChangeLocalCacheRequest)}, - { 33, -1, -1, sizeof(::grpc::ChangePortsRequest)}, - { 41, -1, -1, sizeof(::grpc::AvailableKeychainsResponse)}, - { 48, -1, -1, sizeof(::grpc::User)}, - { 64, -1, -1, sizeof(::grpc::UserSplitModeRequest)}, - { 72, -1, -1, sizeof(::grpc::UserListResponse)}, - { 79, -1, -1, sizeof(::grpc::ConfigureAppleMailRequest)}, - { 87, -1, -1, sizeof(::grpc::StreamEvent)}, - { 102, -1, -1, sizeof(::grpc::AppEvent)}, - { 116, -1, -1, sizeof(::grpc::InternetStatusEvent)}, - { 123, -1, -1, sizeof(::grpc::ToggleAutostartFinishedEvent)}, - { 129, -1, -1, sizeof(::grpc::ResetFinishedEvent)}, - { 135, -1, -1, sizeof(::grpc::ReportBugFinishedEvent)}, - { 141, -1, -1, sizeof(::grpc::ReportBugSuccessEvent)}, - { 147, -1, -1, sizeof(::grpc::ReportBugErrorEvent)}, - { 153, -1, -1, sizeof(::grpc::ShowMainWindowEvent)}, - { 159, -1, -1, sizeof(::grpc::LoginEvent)}, - { 171, -1, -1, sizeof(::grpc::LoginErrorEvent)}, - { 179, -1, -1, sizeof(::grpc::LoginTfaRequestedEvent)}, - { 186, -1, -1, sizeof(::grpc::LoginTwoPasswordsRequestedEvent)}, - { 192, -1, -1, sizeof(::grpc::LoginFinishedEvent)}, - { 199, -1, -1, sizeof(::grpc::UpdateEvent)}, - { 213, -1, -1, sizeof(::grpc::UpdateErrorEvent)}, - { 220, -1, -1, sizeof(::grpc::UpdateManualReadyEvent)}, - { 227, -1, -1, sizeof(::grpc::UpdateManualRestartNeededEvent)}, - { 233, -1, -1, sizeof(::grpc::UpdateForceEvent)}, - { 240, -1, -1, sizeof(::grpc::UpdateSilentRestartNeeded)}, - { 246, -1, -1, sizeof(::grpc::UpdateIsLatestVersion)}, - { 252, -1, -1, sizeof(::grpc::UpdateCheckFinished)}, - { 258, -1, -1, sizeof(::grpc::CacheEvent)}, - { 270, -1, -1, sizeof(::grpc::CacheErrorEvent)}, - { 277, -1, -1, sizeof(::grpc::CacheLocationChangeSuccessEvent)}, - { 283, -1, -1, sizeof(::grpc::ChangeLocalCacheFinishedEvent)}, - { 289, -1, -1, sizeof(::grpc::IsCacheOnDiskEnabledChanged)}, - { 296, -1, -1, sizeof(::grpc::DiskCachePathChanged)}, - { 303, -1, -1, sizeof(::grpc::MailSettingsEvent)}, - { 313, -1, -1, sizeof(::grpc::MailSettingsErrorEvent)}, - { 320, -1, -1, sizeof(::grpc::UseSslForSmtpFinishedEvent)}, - { 326, -1, -1, sizeof(::grpc::ChangePortsFinishedEvent)}, - { 332, -1, -1, sizeof(::grpc::KeychainEvent)}, - { 342, -1, -1, sizeof(::grpc::ChangeKeychainFinishedEvent)}, - { 348, -1, -1, sizeof(::grpc::HasNoKeychainEvent)}, - { 354, -1, -1, sizeof(::grpc::RebuildKeychainEvent)}, - { 360, -1, -1, sizeof(::grpc::MailEvent)}, - { 371, -1, -1, sizeof(::grpc::NoActiveKeyForRecipientEvent)}, - { 378, -1, -1, sizeof(::grpc::AddressChangedEvent)}, - { 385, -1, -1, sizeof(::grpc::AddressChangedLogoutEvent)}, - { 392, -1, -1, sizeof(::grpc::ApiCertIssueEvent)}, - { 398, -1, -1, sizeof(::grpc::UserEvent)}, - { 408, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)}, - { 415, -1, -1, sizeof(::grpc::UserDisconnectedEvent)}, - { 422, -1, -1, sizeof(::grpc::UserChangedEvent)}, + { 12, -1, -1, sizeof(::grpc::LoginRequest)}, + { 20, -1, -1, sizeof(::grpc::LoginAbortRequest)}, + { 27, -1, -1, sizeof(::grpc::ChangeLocalCacheRequest)}, + { 35, -1, -1, sizeof(::grpc::ChangePortsRequest)}, + { 43, -1, -1, sizeof(::grpc::AvailableKeychainsResponse)}, + { 50, -1, -1, sizeof(::grpc::User)}, + { 66, -1, -1, sizeof(::grpc::UserSplitModeRequest)}, + { 74, -1, -1, sizeof(::grpc::UserListResponse)}, + { 81, -1, -1, sizeof(::grpc::ConfigureAppleMailRequest)}, + { 89, -1, -1, sizeof(::grpc::EventStreamRequest)}, + { 96, -1, -1, sizeof(::grpc::StreamEvent)}, + { 111, -1, -1, sizeof(::grpc::AppEvent)}, + { 125, -1, -1, sizeof(::grpc::InternetStatusEvent)}, + { 132, -1, -1, sizeof(::grpc::ToggleAutostartFinishedEvent)}, + { 138, -1, -1, sizeof(::grpc::ResetFinishedEvent)}, + { 144, -1, -1, sizeof(::grpc::ReportBugFinishedEvent)}, + { 150, -1, -1, sizeof(::grpc::ReportBugSuccessEvent)}, + { 156, -1, -1, sizeof(::grpc::ReportBugErrorEvent)}, + { 162, -1, -1, sizeof(::grpc::ShowMainWindowEvent)}, + { 168, -1, -1, sizeof(::grpc::LoginEvent)}, + { 180, -1, -1, sizeof(::grpc::LoginErrorEvent)}, + { 188, -1, -1, sizeof(::grpc::LoginTfaRequestedEvent)}, + { 195, -1, -1, sizeof(::grpc::LoginTwoPasswordsRequestedEvent)}, + { 201, -1, -1, sizeof(::grpc::LoginFinishedEvent)}, + { 208, -1, -1, sizeof(::grpc::UpdateEvent)}, + { 222, -1, -1, sizeof(::grpc::UpdateErrorEvent)}, + { 229, -1, -1, sizeof(::grpc::UpdateManualReadyEvent)}, + { 236, -1, -1, sizeof(::grpc::UpdateManualRestartNeededEvent)}, + { 242, -1, -1, sizeof(::grpc::UpdateForceEvent)}, + { 249, -1, -1, sizeof(::grpc::UpdateSilentRestartNeeded)}, + { 255, -1, -1, sizeof(::grpc::UpdateIsLatestVersion)}, + { 261, -1, -1, sizeof(::grpc::UpdateCheckFinished)}, + { 267, -1, -1, sizeof(::grpc::CacheEvent)}, + { 279, -1, -1, sizeof(::grpc::CacheErrorEvent)}, + { 286, -1, -1, sizeof(::grpc::CacheLocationChangeSuccessEvent)}, + { 292, -1, -1, sizeof(::grpc::ChangeLocalCacheFinishedEvent)}, + { 298, -1, -1, sizeof(::grpc::IsCacheOnDiskEnabledChanged)}, + { 305, -1, -1, sizeof(::grpc::DiskCachePathChanged)}, + { 312, -1, -1, sizeof(::grpc::MailSettingsEvent)}, + { 322, -1, -1, sizeof(::grpc::MailSettingsErrorEvent)}, + { 329, -1, -1, sizeof(::grpc::UseSslForSmtpFinishedEvent)}, + { 335, -1, -1, sizeof(::grpc::ChangePortsFinishedEvent)}, + { 341, -1, -1, sizeof(::grpc::KeychainEvent)}, + { 351, -1, -1, sizeof(::grpc::ChangeKeychainFinishedEvent)}, + { 357, -1, -1, sizeof(::grpc::HasNoKeychainEvent)}, + { 363, -1, -1, sizeof(::grpc::RebuildKeychainEvent)}, + { 369, -1, -1, sizeof(::grpc::MailEvent)}, + { 380, -1, -1, sizeof(::grpc::NoActiveKeyForRecipientEvent)}, + { 387, -1, -1, sizeof(::grpc::AddressChangedEvent)}, + { 394, -1, -1, sizeof(::grpc::AddressChangedLogoutEvent)}, + { 401, -1, -1, sizeof(::grpc::ApiCertIssueEvent)}, + { 407, -1, -1, sizeof(::grpc::UserEvent)}, + { 417, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)}, + { 424, -1, -1, sizeof(::grpc::UserDisconnectedEvent)}, + { 431, -1, -1, sizeof(::grpc::UserChangedEvent)}, }; static const ::_pb::Message* const file_default_instances[] = { @@ -1230,6 +1255,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::grpc::_UserSplitModeRequest_default_instance_._instance, &::grpc::_UserListResponse_default_instance_._instance, &::grpc::_ConfigureAppleMailRequest_default_instance_._instance, + &::grpc::_EventStreamRequest_default_instance_._instance, &::grpc::_StreamEvent_default_instance_._instance, &::grpc::_AppEvent_default_instance_._instance, &::grpc::_InternetStatusEvent_default_instance_._instance, @@ -1280,223 +1306,225 @@ static const ::_pb::Message* const file_default_instances[] = { const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = "\n\014bridge.proto\022\004grpc\032\033google/protobuf/em" "pty.proto\032\036google/protobuf/wrappers.prot" - "o\"b\n\020ReportBugRequest\022\023\n\013description\030\001 \001" - "(\t\022\017\n\007address\030\002 \001(\t\022\023\n\013emailClient\030\003 \001(\t" - "\022\023\n\013includeLogs\030\004 \001(\010\"2\n\014LoginRequest\022\020\n" - "\010username\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\"%\n\021Log" - "inAbortRequest\022\020\n\010username\030\001 \001(\t\"I\n\027Chan" - "geLocalCacheRequest\022\027\n\017enableDiskCache\030\001" - " \001(\010\022\025\n\rdiskCachePath\030\002 \001(\t\"8\n\022ChangePor" - "tsRequest\022\020\n\010imapPort\030\001 \001(\005\022\020\n\010smtpPort\030" - "\002 \001(\005\"/\n\032AvailableKeychainsResponse\022\021\n\tk" - "eychains\030\001 \003(\t\"\301\001\n\004User\022\n\n\002id\030\001 \001(\t\022\020\n\010u" - "sername\030\002 \001(\t\022\022\n\navatarText\030\003 \001(\t\022\020\n\010log" - "gedIn\030\004 \001(\010\022\021\n\tsplitMode\030\005 \001(\010\022\026\n\016setupG" - "uideSeen\030\006 \001(\010\022\021\n\tusedBytes\030\007 \001(\003\022\022\n\ntot" - "alBytes\030\010 \001(\003\022\020\n\010password\030\t \001(\t\022\021\n\taddre" - "sses\030\n \003(\t\"6\n\024UserSplitModeRequest\022\016\n\006us" - "erID\030\001 \001(\t\022\016\n\006active\030\002 \001(\010\"-\n\020UserListRe" - "sponse\022\031\n\005users\030\001 \003(\0132\n.grpc.User\"<\n\031Con" - "figureAppleMailRequest\022\016\n\006userID\030\001 \001(\t\022\017" - "\n\007address\030\002 \001(\t\"\274\002\n\013StreamEvent\022\035\n\003app\030\001" - " \001(\0132\016.grpc.AppEventH\000\022!\n\005login\030\002 \001(\0132\020." - "grpc.LoginEventH\000\022#\n\006update\030\003 \001(\0132\021.grpc" - ".UpdateEventH\000\022!\n\005cache\030\004 \001(\0132\020.grpc.Cac" - "heEventH\000\022/\n\014mailSettings\030\005 \001(\0132\027.grpc.M" - "ailSettingsEventH\000\022\'\n\010keychain\030\006 \001(\0132\023.g" - "rpc.KeychainEventH\000\022\037\n\004mail\030\007 \001(\0132\017.grpc" - ".MailEventH\000\022\037\n\004user\030\010 \001(\0132\017.grpc.UserEv" - "entH\000B\007\n\005event\"\240\003\n\010AppEvent\0223\n\016internetS" - "tatus\030\001 \001(\0132\031.grpc.InternetStatusEventH\000" - "\022E\n\027toggleAutostartFinished\030\002 \001(\0132\".grpc" - ".ToggleAutostartFinishedEventH\000\0221\n\rreset" - "Finished\030\003 \001(\0132\030.grpc.ResetFinishedEvent" - "H\000\0229\n\021reportBugFinished\030\004 \001(\0132\034.grpc.Rep" - "ortBugFinishedEventH\000\0227\n\020reportBugSucces" - "s\030\005 \001(\0132\033.grpc.ReportBugSuccessEventH\000\0223" - "\n\016reportBugError\030\006 \001(\0132\031.grpc.ReportBugE" - "rrorEventH\000\0223\n\016showMainWindow\030\007 \001(\0132\031.gr" - "pc.ShowMainWindowEventH\000B\007\n\005event\"(\n\023Int" - "ernetStatusEvent\022\021\n\tconnected\030\001 \001(\010\"\036\n\034T" - "oggleAutostartFinishedEvent\"\024\n\022ResetFini" - "shedEvent\"\030\n\026ReportBugFinishedEvent\"\027\n\025R" - "eportBugSuccessEvent\"\025\n\023ReportBugErrorEv" - "ent\"\025\n\023ShowMainWindowEvent\"\235\002\n\nLoginEven" - "t\022&\n\005error\030\001 \001(\0132\025.grpc.LoginErrorEventH" - "\000\0224\n\014tfaRequested\030\002 \001(\0132\034.grpc.LoginTfaR" - "equestedEventH\000\022E\n\024twoPasswordRequested\030" - "\003 \001(\0132%.grpc.LoginTwoPasswordsRequestedE" - "ventH\000\022,\n\010finished\030\004 \001(\0132\030.grpc.LoginFin" - "ishedEventH\000\0223\n\017alreadyLoggedIn\030\005 \001(\0132\030." - "grpc.LoginFinishedEventH\000B\007\n\005event\"F\n\017Lo" - "ginErrorEvent\022\"\n\004type\030\001 \001(\0162\024.grpc.Login" - "ErrorType\022\017\n\007message\030\002 \001(\t\"*\n\026LoginTfaRe" - "questedEvent\022\020\n\010username\030\001 \001(\t\"!\n\037LoginT" - "woPasswordsRequestedEvent\"$\n\022LoginFinish" - "edEvent\022\016\n\006userID\030\001 \001(\t\"\216\003\n\013UpdateEvent\022" - "\'\n\005error\030\001 \001(\0132\026.grpc.UpdateErrorEventH\000" - "\0223\n\013manualReady\030\002 \001(\0132\034.grpc.UpdateManua" - "lReadyEventH\000\022C\n\023manualRestartNeeded\030\003 \001" - "(\0132$.grpc.UpdateManualRestartNeededEvent" - "H\000\022\'\n\005force\030\004 \001(\0132\026.grpc.UpdateForceEven" - "tH\000\022>\n\023silentRestartNeeded\030\005 \001(\0132\037.grpc." - "UpdateSilentRestartNeededH\000\0226\n\017isLatestV" - "ersion\030\006 \001(\0132\033.grpc.UpdateIsLatestVersio" - "nH\000\0222\n\rcheckFinished\030\007 \001(\0132\031.grpc.Update" - "CheckFinishedH\000B\007\n\005event\"7\n\020UpdateErrorE" - "vent\022#\n\004type\030\001 \001(\0162\025.grpc.UpdateErrorTyp" - "e\")\n\026UpdateManualReadyEvent\022\017\n\007version\030\001" - " \001(\t\" \n\036UpdateManualRestartNeededEvent\"#" - "\n\020UpdateForceEvent\022\017\n\007version\030\001 \001(\t\"\033\n\031U" - "pdateSilentRestartNeeded\"\027\n\025UpdateIsLate" - "stVersion\"\025\n\023UpdateCheckFinished\"\325\002\n\nCac" - "heEvent\022&\n\005error\030\001 \001(\0132\025.grpc.CacheError" - "EventH\000\022G\n\026locationChangedSuccess\030\002 \001(\0132" - "%.grpc.CacheLocationChangeSuccessEventH\000" - "\022G\n\030changeLocalCacheFinished\030\003 \001(\0132#.grp" - "c.ChangeLocalCacheFinishedEventH\000\022H\n\033isC" - "acheOnDiskEnabledChanged\030\004 \001(\0132!.grpc.Is" - "CacheOnDiskEnabledChangedH\000\022:\n\024diskCache" - "PathChanged\030\005 \001(\0132\032.grpc.DiskCachePathCh" - "angedH\000B\007\n\005event\"5\n\017CacheErrorEvent\022\"\n\004t" - "ype\030\001 \001(\0162\024.grpc.CacheErrorType\"!\n\037Cache" - "LocationChangeSuccessEvent\"\037\n\035ChangeLoca" - "lCacheFinishedEvent\".\n\033IsCacheOnDiskEnab" - "ledChanged\022\017\n\007enabled\030\001 \001(\010\"$\n\024DiskCache" - "PathChanged\022\014\n\004path\030\001 \001(\t\"\315\001\n\021MailSettin" - "gsEvent\022-\n\005error\030\001 \001(\0132\034.grpc.MailSettin" - "gsErrorEventH\000\022A\n\025useSslForSmtpFinished\030" - "\002 \001(\0132 .grpc.UseSslForSmtpFinishedEventH" - "\000\022=\n\023changePortsFinished\030\003 \001(\0132\036.grpc.Ch" - "angePortsFinishedEventH\000B\007\n\005event\"C\n\026Mai" - "lSettingsErrorEvent\022)\n\004type\030\001 \001(\0162\033.grpc" - ".MailSettingsErrorType\"\034\n\032UseSslForSmtpF" - "inishedEvent\"\032\n\030ChangePortsFinishedEvent" - "\"\307\001\n\rKeychainEvent\022C\n\026changeKeychainFini" - "shed\030\001 \001(\0132!.grpc.ChangeKeychainFinished" - "EventH\000\0221\n\rhasNoKeychain\030\002 \001(\0132\030.grpc.Ha" - "sNoKeychainEventH\000\0225\n\017rebuildKeychain\030\003 " - "\001(\0132\032.grpc.RebuildKeychainEventH\000B\007\n\005eve" - "nt\"\035\n\033ChangeKeychainFinishedEvent\"\024\n\022Has" - "NoKeychainEvent\"\026\n\024RebuildKeychainEvent\"" - "\207\002\n\tMailEvent\022J\n\034noActiveKeyForRecipient" - "Event\030\001 \001(\0132\".grpc.NoActiveKeyForRecipie" - "ntEventH\000\0223\n\016addressChanged\030\002 \001(\0132\031.grpc" - ".AddressChangedEventH\000\022\?\n\024addressChanged" - "Logout\030\003 \001(\0132\037.grpc.AddressChangedLogout" - "EventH\000\022/\n\014apiCertIssue\030\006 \001(\0132\027.grpc.Api" - "CertIssueEventH\000B\007\n\005event\"-\n\034NoActiveKey" - "ForRecipientEvent\022\r\n\005email\030\001 \001(\t\"&\n\023Addr" - "essChangedEvent\022\017\n\007address\030\001 \001(\t\",\n\031Addr" - "essChangedLogoutEvent\022\017\n\007address\030\001 \001(\t\"\023" - "\n\021ApiCertIssueEvent\"\303\001\n\tUserEvent\022E\n\027tog" - "gleSplitModeFinished\030\001 \001(\0132\".grpc.Toggle" - "SplitModeFinishedEventH\000\0227\n\020userDisconne" - "cted\030\002 \001(\0132\033.grpc.UserDisconnectedEventH" - "\000\022-\n\013userChanged\030\003 \001(\0132\026.grpc.UserChange" - "dEventH\000B\007\n\005event\".\n\034ToggleSplitModeFini" - "shedEvent\022\016\n\006userID\030\001 \001(\t\")\n\025UserDisconn" - "ectedEvent\022\020\n\010username\030\001 \001(\t\"\"\n\020UserChan" - "gedEvent\022\016\n\006userID\030\001 \001(\t*\242\001\n\016LoginErrorT" - "ype\022\033\n\027USERNAME_PASSWORD_ERROR\020\000\022\r\n\tFREE" - "_USER\020\001\022\024\n\020CONNECTION_ERROR\020\002\022\r\n\tTFA_ERR" - "OR\020\003\022\r\n\tTFA_ABORT\020\004\022\027\n\023TWO_PASSWORDS_ERR" - "OR\020\005\022\027\n\023TWO_PASSWORDS_ABORT\020\006*[\n\017UpdateE" - "rrorType\022\027\n\023UPDATE_MANUAL_ERROR\020\000\022\026\n\022UPD" - "ATE_FORCE_ERROR\020\001\022\027\n\023UPDATE_SILENT_ERROR" - "\020\002*W\n\016CacheErrorType\022\033\n\027CACHE_UNAVAILABL" - "E_ERROR\020\000\022\031\n\025CACHE_CANT_MOVE_ERROR\020\001\022\r\n\t" - "DISK_FULL\020\002*A\n\025MailSettingsErrorType\022\023\n\017" - "IMAP_PORT_ISSUE\020\000\022\023\n\017SMTP_PORT_ISSUE\020\0012\237" - "\033\n\006Bridge\022:\n\010GuiReady\022\026.google.protobuf." - "Empty\032\026.google.protobuf.Empty\0226\n\004Quit\022\026." - "google.protobuf.Empty\032\026.google.protobuf." - "Empty\0229\n\007Restart\022\026.google.protobuf.Empty" - "\032\026.google.protobuf.Empty\022C\n\rShowOnStartu" - "p\022\026.google.protobuf.Empty\032\032.google.proto" - "buf.BoolValue\022F\n\020ShowSplashScreen\022\026.goog" - "le.protobuf.Empty\032\032.google.protobuf.Bool" - "Value\022E\n\017IsFirstGuiStart\022\026.google.protob" - "uf.Empty\032\032.google.protobuf.BoolValue\022F\n\020" - "SetIsAutostartOn\022\032.google.protobuf.BoolV" - "alue\032\026.google.protobuf.Empty\022C\n\rIsAutost" - "artOn\022\026.google.protobuf.Empty\032\032.google.p" - "rotobuf.BoolValue\022F\n\020SetIsBetaEnabled\022\032." - "google.protobuf.BoolValue\032\026.google.proto" - "buf.Empty\022C\n\rIsBetaEnabled\022\026.google.prot" - "obuf.Empty\032\032.google.protobuf.BoolValue\022<" - "\n\004GoOs\022\026.google.protobuf.Empty\032\034.google." - "protobuf.StringValue\022>\n\014TriggerReset\022\026.g" - "oogle.protobuf.Empty\032\026.google.protobuf.E" - "mpty\022\?\n\007Version\022\026.google.protobuf.Empty\032" - "\034.google.protobuf.StringValue\022@\n\010LogsPat" - "h\022\026.google.protobuf.Empty\032\034.google.proto" - "buf.StringValue\022C\n\013LicensePath\022\026.google." - "protobuf.Empty\032\034.google.protobuf.StringV" - "alue\022N\n\026DependencyLicensesLink\022\026.google." - "protobuf.Empty\032\034.google.protobuf.StringV" - "alue\022J\n\022SetColorSchemeName\022\034.google.prot" - "obuf.StringValue\032\026.google.protobuf.Empty" - "\022G\n\017ColorSchemeName\022\026.google.protobuf.Em" - "pty\032\034.google.protobuf.StringValue\022J\n\022Cur" - "rentEmailClient\022\026.google.protobuf.Empty\032" - "\034.google.protobuf.StringValue\022;\n\tReportB" - "ug\022\026.grpc.ReportBugRequest\032\026.google.prot" - "obuf.Empty\0223\n\005Login\022\022.grpc.LoginRequest\032" - "\026.google.protobuf.Empty\0226\n\010Login2FA\022\022.gr" - "pc.LoginRequest\032\026.google.protobuf.Empty\022" - "=\n\017Login2Passwords\022\022.grpc.LoginRequest\032\026" - ".google.protobuf.Empty\022=\n\nLoginAbort\022\027.g" - "rpc.LoginAbortRequest\032\026.google.protobuf." - "Empty\022=\n\013CheckUpdate\022\026.google.protobuf.E" - "mpty\032\026.google.protobuf.Empty\022\?\n\rInstallU" - "pdate\022\026.google.protobuf.Empty\032\026.google.p" - "rotobuf.Empty\022L\n\026SetIsAutomaticUpdateOn\022" - "\032.google.protobuf.BoolValue\032\026.google.pro" - "tobuf.Empty\022I\n\023IsAutomaticUpdateOn\022\026.goo" - "gle.protobuf.Empty\032\032.google.protobuf.Boo" - "lValue\022J\n\024IsCacheOnDiskEnabled\022\026.google." - "protobuf.Empty\032\032.google.protobuf.BoolVal" - "ue\022E\n\rDiskCachePath\022\026.google.protobuf.Em" - "pty\032\034.google.protobuf.StringValue\022I\n\020Cha" - "ngeLocalCache\022\035.grpc.ChangeLocalCacheReq" - "uest\032\026.google.protobuf.Empty\022E\n\017SetIsDoH" - "Enabled\022\032.google.protobuf.BoolValue\032\026.go" - "ogle.protobuf.Empty\022B\n\014IsDoHEnabled\022\026.go" + "o\"\205\001\n\020ReportBugRequest\022\016\n\006osType\030\001 \001(\t\022\021" + "\n\tosVersion\030\002 \001(\t\022\023\n\013description\030\003 \001(\t\022\017" + "\n\007address\030\004 \001(\t\022\023\n\013emailClient\030\005 \001(\t\022\023\n\013" + "includeLogs\030\006 \001(\010\"2\n\014LoginRequest\022\020\n\010use" + "rname\030\001 \001(\t\022\020\n\010password\030\002 \001(\t\"%\n\021LoginAb" + "ortRequest\022\020\n\010username\030\001 \001(\t\"I\n\027ChangeLo" + "calCacheRequest\022\027\n\017enableDiskCache\030\001 \001(\010" + "\022\025\n\rdiskCachePath\030\002 \001(\t\"8\n\022ChangePortsRe" + "quest\022\020\n\010imapPort\030\001 \001(\005\022\020\n\010smtpPort\030\002 \001(" + "\005\"/\n\032AvailableKeychainsResponse\022\021\n\tkeych" + "ains\030\001 \003(\t\"\301\001\n\004User\022\n\n\002id\030\001 \001(\t\022\020\n\010usern" + "ame\030\002 \001(\t\022\022\n\navatarText\030\003 \001(\t\022\020\n\010loggedI" + "n\030\004 \001(\010\022\021\n\tsplitMode\030\005 \001(\010\022\026\n\016setupGuide" + "Seen\030\006 \001(\010\022\021\n\tusedBytes\030\007 \001(\003\022\022\n\ntotalBy" + "tes\030\010 \001(\003\022\020\n\010password\030\t \001(\t\022\021\n\taddresses" + "\030\n \003(\t\"6\n\024UserSplitModeRequest\022\016\n\006userID" + "\030\001 \001(\t\022\016\n\006active\030\002 \001(\010\"-\n\020UserListRespon" + "se\022\031\n\005users\030\001 \003(\0132\n.grpc.User\"<\n\031Configu" + "reAppleMailRequest\022\016\n\006userID\030\001 \001(\t\022\017\n\007ad" + "dress\030\002 \001(\t\",\n\022EventStreamRequest\022\026\n\016Cli" + "entPlatform\030\001 \001(\t\"\274\002\n\013StreamEvent\022\035\n\003app" + "\030\001 \001(\0132\016.grpc.AppEventH\000\022!\n\005login\030\002 \001(\0132" + "\020.grpc.LoginEventH\000\022#\n\006update\030\003 \001(\0132\021.gr" + "pc.UpdateEventH\000\022!\n\005cache\030\004 \001(\0132\020.grpc.C" + "acheEventH\000\022/\n\014mailSettings\030\005 \001(\0132\027.grpc" + ".MailSettingsEventH\000\022\'\n\010keychain\030\006 \001(\0132\023" + ".grpc.KeychainEventH\000\022\037\n\004mail\030\007 \001(\0132\017.gr" + "pc.MailEventH\000\022\037\n\004user\030\010 \001(\0132\017.grpc.User" + "EventH\000B\007\n\005event\"\240\003\n\010AppEvent\0223\n\016interne" + "tStatus\030\001 \001(\0132\031.grpc.InternetStatusEvent" + "H\000\022E\n\027toggleAutostartFinished\030\002 \001(\0132\".gr" + "pc.ToggleAutostartFinishedEventH\000\0221\n\rres" + "etFinished\030\003 \001(\0132\030.grpc.ResetFinishedEve" + "ntH\000\0229\n\021reportBugFinished\030\004 \001(\0132\034.grpc.R" + "eportBugFinishedEventH\000\0227\n\020reportBugSucc" + "ess\030\005 \001(\0132\033.grpc.ReportBugSuccessEventH\000" + "\0223\n\016reportBugError\030\006 \001(\0132\031.grpc.ReportBu" + "gErrorEventH\000\0223\n\016showMainWindow\030\007 \001(\0132\031." + "grpc.ShowMainWindowEventH\000B\007\n\005event\"(\n\023I" + "nternetStatusEvent\022\021\n\tconnected\030\001 \001(\010\"\036\n" + "\034ToggleAutostartFinishedEvent\"\024\n\022ResetFi" + "nishedEvent\"\030\n\026ReportBugFinishedEvent\"\027\n" + "\025ReportBugSuccessEvent\"\025\n\023ReportBugError" + "Event\"\025\n\023ShowMainWindowEvent\"\235\002\n\nLoginEv" + "ent\022&\n\005error\030\001 \001(\0132\025.grpc.LoginErrorEven" + "tH\000\0224\n\014tfaRequested\030\002 \001(\0132\034.grpc.LoginTf" + "aRequestedEventH\000\022E\n\024twoPasswordRequeste" + "d\030\003 \001(\0132%.grpc.LoginTwoPasswordsRequeste" + "dEventH\000\022,\n\010finished\030\004 \001(\0132\030.grpc.LoginF" + "inishedEventH\000\0223\n\017alreadyLoggedIn\030\005 \001(\0132" + "\030.grpc.LoginFinishedEventH\000B\007\n\005event\"F\n\017" + "LoginErrorEvent\022\"\n\004type\030\001 \001(\0162\024.grpc.Log" + "inErrorType\022\017\n\007message\030\002 \001(\t\"*\n\026LoginTfa" + "RequestedEvent\022\020\n\010username\030\001 \001(\t\"!\n\037Logi" + "nTwoPasswordsRequestedEvent\"$\n\022LoginFini" + "shedEvent\022\016\n\006userID\030\001 \001(\t\"\216\003\n\013UpdateEven" + "t\022\'\n\005error\030\001 \001(\0132\026.grpc.UpdateErrorEvent" + "H\000\0223\n\013manualReady\030\002 \001(\0132\034.grpc.UpdateMan" + "ualReadyEventH\000\022C\n\023manualRestartNeeded\030\003" + " \001(\0132$.grpc.UpdateManualRestartNeededEve" + "ntH\000\022\'\n\005force\030\004 \001(\0132\026.grpc.UpdateForceEv" + "entH\000\022>\n\023silentRestartNeeded\030\005 \001(\0132\037.grp" + "c.UpdateSilentRestartNeededH\000\0226\n\017isLates" + "tVersion\030\006 \001(\0132\033.grpc.UpdateIsLatestVers" + "ionH\000\0222\n\rcheckFinished\030\007 \001(\0132\031.grpc.Upda" + "teCheckFinishedH\000B\007\n\005event\"7\n\020UpdateErro" + "rEvent\022#\n\004type\030\001 \001(\0162\025.grpc.UpdateErrorT" + "ype\")\n\026UpdateManualReadyEvent\022\017\n\007version" + "\030\001 \001(\t\" \n\036UpdateManualRestartNeededEvent" + "\"#\n\020UpdateForceEvent\022\017\n\007version\030\001 \001(\t\"\033\n" + "\031UpdateSilentRestartNeeded\"\027\n\025UpdateIsLa" + "testVersion\"\025\n\023UpdateCheckFinished\"\325\002\n\nC" + "acheEvent\022&\n\005error\030\001 \001(\0132\025.grpc.CacheErr" + "orEventH\000\022G\n\026locationChangedSuccess\030\002 \001(" + "\0132%.grpc.CacheLocationChangeSuccessEvent" + "H\000\022G\n\030changeLocalCacheFinished\030\003 \001(\0132#.g" + "rpc.ChangeLocalCacheFinishedEventH\000\022H\n\033i" + "sCacheOnDiskEnabledChanged\030\004 \001(\0132!.grpc." + "IsCacheOnDiskEnabledChangedH\000\022:\n\024diskCac" + "hePathChanged\030\005 \001(\0132\032.grpc.DiskCachePath" + "ChangedH\000B\007\n\005event\"5\n\017CacheErrorEvent\022\"\n" + "\004type\030\001 \001(\0162\024.grpc.CacheErrorType\"!\n\037Cac" + "heLocationChangeSuccessEvent\"\037\n\035ChangeLo" + "calCacheFinishedEvent\".\n\033IsCacheOnDiskEn" + "abledChanged\022\017\n\007enabled\030\001 \001(\010\"$\n\024DiskCac" + "hePathChanged\022\014\n\004path\030\001 \001(\t\"\315\001\n\021MailSett" + "ingsEvent\022-\n\005error\030\001 \001(\0132\034.grpc.MailSett" + "ingsErrorEventH\000\022A\n\025useSslForSmtpFinishe" + "d\030\002 \001(\0132 .grpc.UseSslForSmtpFinishedEven" + "tH\000\022=\n\023changePortsFinished\030\003 \001(\0132\036.grpc." + "ChangePortsFinishedEventH\000B\007\n\005event\"C\n\026M" + "ailSettingsErrorEvent\022)\n\004type\030\001 \001(\0162\033.gr" + "pc.MailSettingsErrorType\"\034\n\032UseSslForSmt" + "pFinishedEvent\"\032\n\030ChangePortsFinishedEve" + "nt\"\307\001\n\rKeychainEvent\022C\n\026changeKeychainFi" + "nished\030\001 \001(\0132!.grpc.ChangeKeychainFinish" + "edEventH\000\0221\n\rhasNoKeychain\030\002 \001(\0132\030.grpc." + "HasNoKeychainEventH\000\0225\n\017rebuildKeychain\030" + "\003 \001(\0132\032.grpc.RebuildKeychainEventH\000B\007\n\005e" + "vent\"\035\n\033ChangeKeychainFinishedEvent\"\024\n\022H" + "asNoKeychainEvent\"\026\n\024RebuildKeychainEven" + "t\"\207\002\n\tMailEvent\022J\n\034noActiveKeyForRecipie" + "ntEvent\030\001 \001(\0132\".grpc.NoActiveKeyForRecip" + "ientEventH\000\0223\n\016addressChanged\030\002 \001(\0132\031.gr" + "pc.AddressChangedEventH\000\022\?\n\024addressChang" + "edLogout\030\003 \001(\0132\037.grpc.AddressChangedLogo" + "utEventH\000\022/\n\014apiCertIssue\030\006 \001(\0132\027.grpc.A" + "piCertIssueEventH\000B\007\n\005event\"-\n\034NoActiveK" + "eyForRecipientEvent\022\r\n\005email\030\001 \001(\t\"&\n\023Ad" + "dressChangedEvent\022\017\n\007address\030\001 \001(\t\",\n\031Ad" + "dressChangedLogoutEvent\022\017\n\007address\030\001 \001(\t" + "\"\023\n\021ApiCertIssueEvent\"\303\001\n\tUserEvent\022E\n\027t" + "oggleSplitModeFinished\030\001 \001(\0132\".grpc.Togg" + "leSplitModeFinishedEventH\000\0227\n\020userDiscon" + "nected\030\002 \001(\0132\033.grpc.UserDisconnectedEven" + "tH\000\022-\n\013userChanged\030\003 \001(\0132\026.grpc.UserChan" + "gedEventH\000B\007\n\005event\".\n\034ToggleSplitModeFi" + "nishedEvent\022\016\n\006userID\030\001 \001(\t\")\n\025UserDisco" + "nnectedEvent\022\020\n\010username\030\001 \001(\t\"\"\n\020UserCh" + "angedEvent\022\016\n\006userID\030\001 \001(\t*\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\241\033\n\006Bridge\022:\n\010GuiReady\022\026.google.protobu" + "f.Empty\032\026.google.protobuf.Empty\0226\n\004Quit\022" + "\026.google.protobuf.Empty\032\026.google.protobu" + "f.Empty\0229\n\007Restart\022\026.google.protobuf.Emp" + "ty\032\026.google.protobuf.Empty\022C\n\rShowOnStar" + "tup\022\026.google.protobuf.Empty\032\032.google.pro" + "tobuf.BoolValue\022F\n\020ShowSplashScreen\022\026.go" "ogle.protobuf.Empty\032\032.google.protobuf.Bo" - "olValue\022F\n\020SetUseSslForSmtp\022\032.google.pro" - "tobuf.BoolValue\032\026.google.protobuf.Empty\022" - "C\n\rUseSslForSmtp\022\026.google.protobuf.Empty" - "\032\032.google.protobuf.BoolValue\022@\n\010Hostname" - "\022\026.google.protobuf.Empty\032\034.google.protob" - "uf.StringValue\022\?\n\010ImapPort\022\026.google.prot" - "obuf.Empty\032\033.google.protobuf.Int32Value\022" - "\?\n\010SmtpPort\022\026.google.protobuf.Empty\032\033.go" - "ogle.protobuf.Int32Value\022\?\n\013ChangePorts\022" - "\030.grpc.ChangePortsRequest\032\026.google.proto" - "buf.Empty\022E\n\nIsPortFree\022\033.google.protobu" - "f.Int32Value\032\032.google.protobuf.BoolValue" - "\022N\n\022AvailableKeychains\022\026.google.protobuf" - ".Empty\032 .grpc.AvailableKeychainsResponse" - "\022J\n\022SetCurrentKeychain\022\034.google.protobuf" - ".StringValue\032\026.google.protobuf.Empty\022G\n\017" - "CurrentKeychain\022\026.google.protobuf.Empty\032" - "\034.google.protobuf.StringValue\022=\n\013GetUser" - "List\022\026.google.protobuf.Empty\032\026.grpc.User" - "ListResponse\0223\n\007GetUser\022\034.google.protobu" - "f.StringValue\032\n.grpc.User\022F\n\020SetUserSpli" - "tMode\022\032.grpc.UserSplitModeRequest\032\026.goog" - "le.protobuf.Empty\022B\n\nLogoutUser\022\034.google" - ".protobuf.StringValue\032\026.google.protobuf." - "Empty\022B\n\nRemoveUser\022\034.google.protobuf.St" - "ringValue\032\026.google.protobuf.Empty\022Q\n\026Con" - "figureUserAppleMail\022\037.grpc.ConfigureAppl" - "eMailRequest\032\026.google.protobuf.Empty\022\?\n\020" - "StartEventStream\022\026.google.protobuf.Empty" - "\032\021.grpc.StreamEvent0\001\022A\n\017StopEventStream" - "\022\026.google.protobuf.Empty\032\026.google.protob" - "uf.EmptyB6Z4github.com/ProtonMail/proton" - "-bridge/v2/internal/grpcb\006proto3" + "olValue\022E\n\017IsFirstGuiStart\022\026.google.prot" + "obuf.Empty\032\032.google.protobuf.BoolValue\022F" + "\n\020SetIsAutostartOn\022\032.google.protobuf.Boo" + "lValue\032\026.google.protobuf.Empty\022C\n\rIsAuto" + "startOn\022\026.google.protobuf.Empty\032\032.google" + ".protobuf.BoolValue\022F\n\020SetIsBetaEnabled\022" + "\032.google.protobuf.BoolValue\032\026.google.pro" + "tobuf.Empty\022C\n\rIsBetaEnabled\022\026.google.pr" + "otobuf.Empty\032\032.google.protobuf.BoolValue" + "\022<\n\004GoOs\022\026.google.protobuf.Empty\032\034.googl" + "e.protobuf.StringValue\022>\n\014TriggerReset\022\026" + ".google.protobuf.Empty\032\026.google.protobuf" + ".Empty\022\?\n\007Version\022\026.google.protobuf.Empt" + "y\032\034.google.protobuf.StringValue\022@\n\010LogsP" + "ath\022\026.google.protobuf.Empty\032\034.google.pro" + "tobuf.StringValue\022C\n\013LicensePath\022\026.googl" + "e.protobuf.Empty\032\034.google.protobuf.Strin" + "gValue\022N\n\026DependencyLicensesLink\022\026.googl" + "e.protobuf.Empty\032\034.google.protobuf.Strin" + "gValue\022J\n\022SetColorSchemeName\022\034.google.pr" + "otobuf.StringValue\032\026.google.protobuf.Emp" + "ty\022G\n\017ColorSchemeName\022\026.google.protobuf." + "Empty\032\034.google.protobuf.StringValue\022J\n\022C" + "urrentEmailClient\022\026.google.protobuf.Empt" + "y\032\034.google.protobuf.StringValue\022;\n\tRepor" + "tBug\022\026.grpc.ReportBugRequest\032\026.google.pr" + "otobuf.Empty\0223\n\005Login\022\022.grpc.LoginReques" + "t\032\026.google.protobuf.Empty\0226\n\010Login2FA\022\022." + "grpc.LoginRequest\032\026.google.protobuf.Empt" + "y\022=\n\017Login2Passwords\022\022.grpc.LoginRequest" + "\032\026.google.protobuf.Empty\022=\n\nLoginAbort\022\027" + ".grpc.LoginAbortRequest\032\026.google.protobu" + "f.Empty\022=\n\013CheckUpdate\022\026.google.protobuf" + ".Empty\032\026.google.protobuf.Empty\022\?\n\rInstal" + "lUpdate\022\026.google.protobuf.Empty\032\026.google" + ".protobuf.Empty\022L\n\026SetIsAutomaticUpdateO" + "n\022\032.google.protobuf.BoolValue\032\026.google.p" + "rotobuf.Empty\022I\n\023IsAutomaticUpdateOn\022\026.g" + "oogle.protobuf.Empty\032\032.google.protobuf.B" + "oolValue\022J\n\024IsCacheOnDiskEnabled\022\026.googl" + "e.protobuf.Empty\032\032.google.protobuf.BoolV" + "alue\022E\n\rDiskCachePath\022\026.google.protobuf." + "Empty\032\034.google.protobuf.StringValue\022I\n\020C" + "hangeLocalCache\022\035.grpc.ChangeLocalCacheR" + "equest\032\026.google.protobuf.Empty\022E\n\017SetIsD" + "oHEnabled\022\032.google.protobuf.BoolValue\032\026." + "google.protobuf.Empty\022B\n\014IsDoHEnabled\022\026." + "google.protobuf.Empty\032\032.google.protobuf." + "BoolValue\022F\n\020SetUseSslForSmtp\022\032.google.p" + "rotobuf.BoolValue\032\026.google.protobuf.Empt" + "y\022C\n\rUseSslForSmtp\022\026.google.protobuf.Emp" + "ty\032\032.google.protobuf.BoolValue\022@\n\010Hostna" + "me\022\026.google.protobuf.Empty\032\034.google.prot" + "obuf.StringValue\022\?\n\010ImapPort\022\026.google.pr" + "otobuf.Empty\032\033.google.protobuf.Int32Valu" + "e\022\?\n\010SmtpPort\022\026.google.protobuf.Empty\032\033." + "google.protobuf.Int32Value\022\?\n\013ChangePort" + "s\022\030.grpc.ChangePortsRequest\032\026.google.pro" + "tobuf.Empty\022E\n\nIsPortFree\022\033.google.proto" + "buf.Int32Value\032\032.google.protobuf.BoolVal" + "ue\022N\n\022AvailableKeychains\022\026.google.protob" + "uf.Empty\032 .grpc.AvailableKeychainsRespon" + "se\022J\n\022SetCurrentKeychain\022\034.google.protob" + "uf.StringValue\032\026.google.protobuf.Empty\022G" + "\n\017CurrentKeychain\022\026.google.protobuf.Empt" + "y\032\034.google.protobuf.StringValue\022=\n\013GetUs" + "erList\022\026.google.protobuf.Empty\032\026.grpc.Us" + "erListResponse\0223\n\007GetUser\022\034.google.proto" + "buf.StringValue\032\n.grpc.User\022F\n\020SetUserSp" + "litMode\022\032.grpc.UserSplitModeRequest\032\026.go" + "ogle.protobuf.Empty\022B\n\nLogoutUser\022\034.goog" + "le.protobuf.StringValue\032\026.google.protobu" + "f.Empty\022B\n\nRemoveUser\022\034.google.protobuf." + "StringValue\032\026.google.protobuf.Empty\022Q\n\026C" + "onfigureUserAppleMail\022\037.grpc.ConfigureAp" + "pleMailRequest\032\026.google.protobuf.Empty\022A" + "\n\020StartEventStream\022\030.grpc.EventStreamReq" + "uest\032\021.grpc.StreamEvent0\001\022A\n\017StopEventSt" + "ream\022\026.google.protobuf.Empty\032\026.google.pr" + "otobuf.EmptyB6Z4github.com/ProtonMail/pr" + "oton-bridge/v2/internal/grpcb\006proto3" ; static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps[2] = { &::descriptor_table_google_2fprotobuf_2fempty_2eproto, @@ -1504,9 +1532,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, 8752, descriptor_table_protodef_bridge_2eproto, + false, false, 8836, descriptor_table_protodef_bridge_2eproto, "bridge.proto", - &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 55, + &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 56, 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, @@ -1598,13 +1626,31 @@ ReportBugRequest::ReportBugRequest(const ReportBugRequest& from) : ::PROTOBUF_NAMESPACE_ID::Message() { ReportBugRequest* const _this = this; (void)_this; new (&_impl_) Impl_{ - decltype(_impl_.description_){} + decltype(_impl_.ostype_){} + , decltype(_impl_.osversion_){} + , decltype(_impl_.description_){} , decltype(_impl_.address_){} , decltype(_impl_.emailclient_){} , decltype(_impl_.includelogs_){} , /*decltype(_impl_._cached_size_)*/{}}; _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.ostype_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ostype_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_ostype().empty()) { + _this->_impl_.ostype_.Set(from._internal_ostype(), + _this->GetArenaForAllocation()); + } + _impl_.osversion_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.osversion_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_osversion().empty()) { + _this->_impl_.osversion_.Set(from._internal_osversion(), + _this->GetArenaForAllocation()); + } _impl_.description_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.description_.Set("", GetArenaForAllocation()); @@ -1638,12 +1684,22 @@ inline void ReportBugRequest::SharedCtor( (void)arena; (void)is_message_owned; new (&_impl_) Impl_{ - decltype(_impl_.description_){} + decltype(_impl_.ostype_){} + , decltype(_impl_.osversion_){} + , decltype(_impl_.description_){} , decltype(_impl_.address_){} , decltype(_impl_.emailclient_){} , decltype(_impl_.includelogs_){false} , /*decltype(_impl_._cached_size_)*/{} }; + _impl_.ostype_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.ostype_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.osversion_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.osversion_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.description_.InitDefault(); #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING _impl_.description_.Set("", GetArenaForAllocation()); @@ -1669,6 +1725,8 @@ ReportBugRequest::~ReportBugRequest() { inline void ReportBugRequest::SharedDtor() { GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.ostype_.Destroy(); + _impl_.osversion_.Destroy(); _impl_.description_.Destroy(); _impl_.address_.Destroy(); _impl_.emailclient_.Destroy(); @@ -1684,6 +1742,8 @@ void ReportBugRequest::Clear() { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; + _impl_.ostype_.ClearToEmpty(); + _impl_.osversion_.ClearToEmpty(); _impl_.description_.ClearToEmpty(); _impl_.address_.ClearToEmpty(); _impl_.emailclient_.ClearToEmpty(); @@ -1697,9 +1757,29 @@ const char* ReportBugRequest::_InternalParse(const char* ptr, ::_pbi::ParseConte uint32_t tag; ptr = ::_pbi::ReadTag(ptr, &tag); switch (tag >> 3) { - // string description = 1; + // string osType = 1; case 1: if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_ostype(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "grpc.ReportBugRequest.osType")); + } else + goto handle_unusual; + continue; + // string osVersion = 2; + case 2: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + auto str = _internal_mutable_osversion(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "grpc.ReportBugRequest.osVersion")); + } else + goto handle_unusual; + continue; + // string description = 3; + case 3: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { auto str = _internal_mutable_description(); ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); CHK_(ptr); @@ -1707,9 +1787,9 @@ const char* ReportBugRequest::_InternalParse(const char* ptr, ::_pbi::ParseConte } else goto handle_unusual; continue; - // string address = 2; - case 2: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 18)) { + // string address = 4; + case 4: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 34)) { auto str = _internal_mutable_address(); ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); CHK_(ptr); @@ -1717,9 +1797,9 @@ const char* ReportBugRequest::_InternalParse(const char* ptr, ::_pbi::ParseConte } else goto handle_unusual; continue; - // string emailClient = 3; - case 3: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 26)) { + // string emailClient = 5; + case 5: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) { auto str = _internal_mutable_emailclient(); ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); CHK_(ptr); @@ -1727,9 +1807,9 @@ const char* ReportBugRequest::_InternalParse(const char* ptr, ::_pbi::ParseConte } else goto handle_unusual; continue; - // bool includeLogs = 4; - case 4: - if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 32)) { + // bool includeLogs = 6; + case 6: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 48)) { _impl_.includelogs_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr); CHK_(ptr); } else @@ -1764,40 +1844,60 @@ uint8_t* ReportBugRequest::_InternalSerialize( uint32_t cached_has_bits = 0; (void) cached_has_bits; - // string description = 1; + // string osType = 1; + if (!this->_internal_ostype().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_ostype().data(), static_cast(this->_internal_ostype().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "grpc.ReportBugRequest.osType"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_ostype(), target); + } + + // string osVersion = 2; + if (!this->_internal_osversion().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_osversion().data(), static_cast(this->_internal_osversion().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "grpc.ReportBugRequest.osVersion"); + target = stream->WriteStringMaybeAliased( + 2, this->_internal_osversion(), target); + } + + // string description = 3; if (!this->_internal_description().empty()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->_internal_description().data(), static_cast(this->_internal_description().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "grpc.ReportBugRequest.description"); target = stream->WriteStringMaybeAliased( - 1, this->_internal_description(), target); + 3, this->_internal_description(), target); } - // string address = 2; + // string address = 4; if (!this->_internal_address().empty()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->_internal_address().data(), static_cast(this->_internal_address().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "grpc.ReportBugRequest.address"); target = stream->WriteStringMaybeAliased( - 2, this->_internal_address(), target); + 4, this->_internal_address(), target); } - // string emailClient = 3; + // string emailClient = 5; if (!this->_internal_emailclient().empty()) { ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( this->_internal_emailclient().data(), static_cast(this->_internal_emailclient().length()), ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, "grpc.ReportBugRequest.emailClient"); target = stream->WriteStringMaybeAliased( - 3, this->_internal_emailclient(), target); + 5, this->_internal_emailclient(), target); } - // bool includeLogs = 4; + // bool includeLogs = 6; if (this->_internal_includelogs() != 0) { target = stream->EnsureSpace(target); - target = ::_pbi::WireFormatLite::WriteBoolToArray(4, this->_internal_includelogs(), target); + target = ::_pbi::WireFormatLite::WriteBoolToArray(6, this->_internal_includelogs(), target); } if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) { @@ -1816,28 +1916,42 @@ size_t ReportBugRequest::ByteSizeLong() const { // Prevent compiler warnings about cached_has_bits being unused (void) cached_has_bits; - // string description = 1; + // string osType = 1; + if (!this->_internal_ostype().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_ostype()); + } + + // string osVersion = 2; + if (!this->_internal_osversion().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_osversion()); + } + + // string description = 3; if (!this->_internal_description().empty()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( this->_internal_description()); } - // string address = 2; + // string address = 4; if (!this->_internal_address().empty()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( this->_internal_address()); } - // string emailClient = 3; + // string emailClient = 5; if (!this->_internal_emailclient().empty()) { total_size += 1 + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( this->_internal_emailclient()); } - // bool includeLogs = 4; + // bool includeLogs = 6; if (this->_internal_includelogs() != 0) { total_size += 1 + 1; } @@ -1860,6 +1974,12 @@ void ReportBugRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const uint32_t cached_has_bits = 0; (void) cached_has_bits; + if (!from._internal_ostype().empty()) { + _this->_internal_set_ostype(from._internal_ostype()); + } + if (!from._internal_osversion().empty()) { + _this->_internal_set_osversion(from._internal_osversion()); + } if (!from._internal_description().empty()) { _this->_internal_set_description(from._internal_description()); } @@ -1891,6 +2011,14 @@ void ReportBugRequest::InternalSwap(ReportBugRequest* other) { auto* lhs_arena = GetArenaForAllocation(); auto* rhs_arena = other->GetArenaForAllocation(); _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.ostype_, lhs_arena, + &other->_impl_.ostype_, rhs_arena + ); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.osversion_, lhs_arena, + &other->_impl_.osversion_, rhs_arena + ); ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( &_impl_.description_, lhs_arena, &other->_impl_.description_, rhs_arena @@ -4193,6 +4321,209 @@ void ConfigureAppleMailRequest::InternalSwap(ConfigureAppleMailRequest* other) { // =================================================================== +class EventStreamRequest::_Internal { + public: +}; + +EventStreamRequest::EventStreamRequest(::PROTOBUF_NAMESPACE_ID::Arena* arena, + bool is_message_owned) + : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) { + SharedCtor(arena, is_message_owned); + // @@protoc_insertion_point(arena_constructor:grpc.EventStreamRequest) +} +EventStreamRequest::EventStreamRequest(const EventStreamRequest& from) + : ::PROTOBUF_NAMESPACE_ID::Message() { + EventStreamRequest* const _this = this; (void)_this; + new (&_impl_) Impl_{ + decltype(_impl_.clientplatform_){} + , /*decltype(_impl_._cached_size_)*/{}}; + + _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); + _impl_.clientplatform_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.clientplatform_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (!from._internal_clientplatform().empty()) { + _this->_impl_.clientplatform_.Set(from._internal_clientplatform(), + _this->GetArenaForAllocation()); + } + // @@protoc_insertion_point(copy_constructor:grpc.EventStreamRequest) +} + +inline void EventStreamRequest::SharedCtor( + ::_pb::Arena* arena, bool is_message_owned) { + (void)arena; + (void)is_message_owned; + new (&_impl_) Impl_{ + decltype(_impl_.clientplatform_){} + , /*decltype(_impl_._cached_size_)*/{} + }; + _impl_.clientplatform_.InitDefault(); + #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + _impl_.clientplatform_.Set("", GetArenaForAllocation()); + #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING +} + +EventStreamRequest::~EventStreamRequest() { + // @@protoc_insertion_point(destructor:grpc.EventStreamRequest) + if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) { + (void)arena; + return; + } + SharedDtor(); +} + +inline void EventStreamRequest::SharedDtor() { + GOOGLE_DCHECK(GetArenaForAllocation() == nullptr); + _impl_.clientplatform_.Destroy(); +} + +void EventStreamRequest::SetCachedSize(int size) const { + _impl_._cached_size_.Set(size); +} + +void EventStreamRequest::Clear() { +// @@protoc_insertion_point(message_clear_start:grpc.EventStreamRequest) + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + _impl_.clientplatform_.ClearToEmpty(); + _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(); +} + +const char* EventStreamRequest::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) { +#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure + while (!ctx->Done(&ptr)) { + uint32_t tag; + ptr = ::_pbi::ReadTag(ptr, &tag); + switch (tag >> 3) { + // string ClientPlatform = 1; + case 1: + if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) { + auto str = _internal_mutable_clientplatform(); + ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx); + CHK_(ptr); + CHK_(::_pbi::VerifyUTF8(str, "grpc.EventStreamRequest.ClientPlatform")); + } else + goto handle_unusual; + continue; + default: + goto handle_unusual; + } // switch + handle_unusual: + if ((tag == 0) || ((tag & 7) == 4)) { + CHK_(ptr); + ctx->SetLastTag(tag); + goto message_done; + } + ptr = UnknownFieldParse( + tag, + _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(), + ptr, ctx); + CHK_(ptr != nullptr); + } // while +message_done: + return ptr; +failure: + ptr = nullptr; + goto message_done; +#undef CHK_ +} + +uint8_t* EventStreamRequest::_InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const { + // @@protoc_insertion_point(serialize_to_array_start:grpc.EventStreamRequest) + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + // string ClientPlatform = 1; + if (!this->_internal_clientplatform().empty()) { + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String( + this->_internal_clientplatform().data(), static_cast(this->_internal_clientplatform().length()), + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE, + "grpc.EventStreamRequest.ClientPlatform"); + target = stream->WriteStringMaybeAliased( + 1, this->_internal_clientplatform(), target); + } + + 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); + } + // @@protoc_insertion_point(serialize_to_array_end:grpc.EventStreamRequest) + return target; +} + +size_t EventStreamRequest::ByteSizeLong() const { +// @@protoc_insertion_point(message_byte_size_start:grpc.EventStreamRequest) + size_t total_size = 0; + + uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + // string ClientPlatform = 1; + if (!this->_internal_clientplatform().empty()) { + total_size += 1 + + ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize( + this->_internal_clientplatform()); + } + + return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_); +} + +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData EventStreamRequest::_class_data_ = { + ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck, + EventStreamRequest::MergeImpl +}; +const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*EventStreamRequest::GetClassData() const { return &_class_data_; } + + +void EventStreamRequest::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + // @@protoc_insertion_point(class_specific_merge_from_start:grpc.EventStreamRequest) + GOOGLE_DCHECK_NE(&from, _this); + uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + if (!from._internal_clientplatform().empty()) { + _this->_internal_set_clientplatform(from._internal_clientplatform()); + } + _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_); +} + +void EventStreamRequest::CopyFrom(const EventStreamRequest& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:grpc.EventStreamRequest) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool EventStreamRequest::IsInitialized() const { + return true; +} + +void EventStreamRequest::InternalSwap(EventStreamRequest* other) { + using std::swap; + auto* lhs_arena = GetArenaForAllocation(); + auto* rhs_arena = other->GetArenaForAllocation(); + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap( + &_impl_.clientplatform_, lhs_arena, + &other->_impl_.clientplatform_, rhs_arena + ); +} + +::PROTOBUF_NAMESPACE_ID::Metadata EventStreamRequest::GetMetadata() const { + return ::_pbi::AssignDescriptors( + &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, + file_level_metadata_bridge_2eproto[10]); +} + +// =================================================================== + class StreamEvent::_Internal { public: static const ::grpc::AppEvent& app(const StreamEvent* msg); @@ -4841,7 +5172,7 @@ void StreamEvent::InternalSwap(StreamEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata StreamEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[10]); + file_level_metadata_bridge_2eproto[11]); } // =================================================================== @@ -5436,7 +5767,7 @@ void AppEvent::InternalSwap(AppEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata AppEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[11]); + file_level_metadata_bridge_2eproto[12]); } // =================================================================== @@ -5614,7 +5945,7 @@ void InternetStatusEvent::InternalSwap(InternetStatusEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata InternetStatusEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[12]); + file_level_metadata_bridge_2eproto[13]); } // =================================================================== @@ -5654,7 +5985,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ToggleAutostartFinishedEvent:: ::PROTOBUF_NAMESPACE_ID::Metadata ToggleAutostartFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[13]); + file_level_metadata_bridge_2eproto[14]); } // =================================================================== @@ -5694,7 +6025,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ResetFinishedEvent::GetClassDa ::PROTOBUF_NAMESPACE_ID::Metadata ResetFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[14]); + file_level_metadata_bridge_2eproto[15]); } // =================================================================== @@ -5734,7 +6065,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReportBugFinishedEvent::GetCla ::PROTOBUF_NAMESPACE_ID::Metadata ReportBugFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[15]); + file_level_metadata_bridge_2eproto[16]); } // =================================================================== @@ -5774,7 +6105,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReportBugSuccessEvent::GetClas ::PROTOBUF_NAMESPACE_ID::Metadata ReportBugSuccessEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[16]); + file_level_metadata_bridge_2eproto[17]); } // =================================================================== @@ -5814,7 +6145,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReportBugErrorEvent::GetClassD ::PROTOBUF_NAMESPACE_ID::Metadata ReportBugErrorEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[17]); + file_level_metadata_bridge_2eproto[18]); } // =================================================================== @@ -5854,7 +6185,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ShowMainWindowEvent::GetClassD ::PROTOBUF_NAMESPACE_ID::Metadata ShowMainWindowEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[18]); + file_level_metadata_bridge_2eproto[19]); } // =================================================================== @@ -6333,7 +6664,7 @@ void LoginEvent::InternalSwap(LoginEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LoginEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[19]); + file_level_metadata_bridge_2eproto[20]); } // =================================================================== @@ -6566,7 +6897,7 @@ void LoginErrorEvent::InternalSwap(LoginErrorEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LoginErrorEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[20]); + file_level_metadata_bridge_2eproto[21]); } // =================================================================== @@ -6769,7 +7100,7 @@ void LoginTfaRequestedEvent::InternalSwap(LoginTfaRequestedEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LoginTfaRequestedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[21]); + file_level_metadata_bridge_2eproto[22]); } // =================================================================== @@ -6809,7 +7140,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LoginTwoPasswordsRequestedEven ::PROTOBUF_NAMESPACE_ID::Metadata LoginTwoPasswordsRequestedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[22]); + file_level_metadata_bridge_2eproto[23]); } // =================================================================== @@ -7012,7 +7343,7 @@ void LoginFinishedEvent::InternalSwap(LoginFinishedEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata LoginFinishedEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[23]); + file_level_metadata_bridge_2eproto[24]); } // =================================================================== @@ -7607,7 +7938,7 @@ void UpdateEvent::InternalSwap(UpdateEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UpdateEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[24]); + file_level_metadata_bridge_2eproto[25]); } // =================================================================== @@ -7788,7 +8119,7 @@ void UpdateErrorEvent::InternalSwap(UpdateErrorEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UpdateErrorEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[25]); + file_level_metadata_bridge_2eproto[26]); } // =================================================================== @@ -7991,7 +8322,7 @@ void UpdateManualReadyEvent::InternalSwap(UpdateManualReadyEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UpdateManualReadyEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[26]); + file_level_metadata_bridge_2eproto[27]); } // =================================================================== @@ -8031,7 +8362,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateManualRestartNeededEvent ::PROTOBUF_NAMESPACE_ID::Metadata UpdateManualRestartNeededEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[27]); + file_level_metadata_bridge_2eproto[28]); } // =================================================================== @@ -8234,7 +8565,7 @@ void UpdateForceEvent::InternalSwap(UpdateForceEvent* other) { ::PROTOBUF_NAMESPACE_ID::Metadata UpdateForceEvent::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[28]); + file_level_metadata_bridge_2eproto[29]); } // =================================================================== @@ -8274,7 +8605,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateSilentRestartNeeded::Get ::PROTOBUF_NAMESPACE_ID::Metadata UpdateSilentRestartNeeded::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[29]); + file_level_metadata_bridge_2eproto[30]); } // =================================================================== @@ -8314,7 +8645,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateIsLatestVersion::GetClas ::PROTOBUF_NAMESPACE_ID::Metadata UpdateIsLatestVersion::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[30]); + file_level_metadata_bridge_2eproto[31]); } // =================================================================== @@ -8354,7 +8685,7 @@ const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UpdateCheckFinished::GetClassD ::PROTOBUF_NAMESPACE_ID::Metadata UpdateCheckFinished::GetMetadata() const { return ::_pbi::AssignDescriptors( &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once, - file_level_metadata_bridge_2eproto[31]); + file_level_metadata_bridge_2eproto[32]); } // =================================================================== @@ -8833,7 +9164,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[32]); + file_level_metadata_bridge_2eproto[33]); } // =================================================================== @@ -9014,7 +9345,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[33]); + file_level_metadata_bridge_2eproto[34]); } // =================================================================== @@ -9054,7 +9385,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[34]); + file_level_metadata_bridge_2eproto[35]); } // =================================================================== @@ -9094,7 +9425,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[35]); + file_level_metadata_bridge_2eproto[36]); } // =================================================================== @@ -9272,7 +9603,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[36]); + file_level_metadata_bridge_2eproto[37]); } // =================================================================== @@ -9475,7 +9806,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[37]); + file_level_metadata_bridge_2eproto[38]); } // =================================================================== @@ -9838,7 +10169,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[38]); + file_level_metadata_bridge_2eproto[39]); } // =================================================================== @@ -10019,7 +10350,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[39]); + file_level_metadata_bridge_2eproto[40]); } // =================================================================== @@ -10059,7 +10390,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[40]); + file_level_metadata_bridge_2eproto[41]); } // =================================================================== @@ -10099,7 +10430,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[41]); + file_level_metadata_bridge_2eproto[42]); } // =================================================================== @@ -10462,7 +10793,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[42]); + file_level_metadata_bridge_2eproto[43]); } // =================================================================== @@ -10502,7 +10833,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[43]); + file_level_metadata_bridge_2eproto[44]); } // =================================================================== @@ -10542,7 +10873,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[44]); + file_level_metadata_bridge_2eproto[45]); } // =================================================================== @@ -10582,7 +10913,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[45]); + file_level_metadata_bridge_2eproto[46]); } // =================================================================== @@ -11003,7 +11334,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[46]); + file_level_metadata_bridge_2eproto[47]); } // =================================================================== @@ -11206,7 +11537,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[47]); + file_level_metadata_bridge_2eproto[48]); } // =================================================================== @@ -11409,7 +11740,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[48]); + file_level_metadata_bridge_2eproto[49]); } // =================================================================== @@ -11612,7 +11943,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[49]); + file_level_metadata_bridge_2eproto[50]); } // =================================================================== @@ -11652,7 +11983,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[50]); + file_level_metadata_bridge_2eproto[51]); } // =================================================================== @@ -12015,7 +12346,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[51]); + file_level_metadata_bridge_2eproto[52]); } // =================================================================== @@ -12218,7 +12549,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[52]); + file_level_metadata_bridge_2eproto[53]); } // =================================================================== @@ -12421,7 +12752,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[53]); + file_level_metadata_bridge_2eproto[54]); } // =================================================================== @@ -12624,7 +12955,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[54]); + file_level_metadata_bridge_2eproto[55]); } // @@protoc_insertion_point(namespace_scope) @@ -12670,6 +13001,10 @@ template<> PROTOBUF_NOINLINE ::grpc::ConfigureAppleMailRequest* Arena::CreateMaybeMessage< ::grpc::ConfigureAppleMailRequest >(Arena* arena) { return Arena::CreateMessageInternal< ::grpc::ConfigureAppleMailRequest >(arena); } +template<> PROTOBUF_NOINLINE ::grpc::EventStreamRequest* +Arena::CreateMaybeMessage< ::grpc::EventStreamRequest >(Arena* arena) { + return Arena::CreateMessageInternal< ::grpc::EventStreamRequest >(arena); +} template<> PROTOBUF_NOINLINE ::grpc::StreamEvent* Arena::CreateMaybeMessage< ::grpc::StreamEvent >(Arena* arena) { return Arena::CreateMessageInternal< ::grpc::StreamEvent >(arena); diff --git a/internal/frontend/bridge-gui/GRPC/bridge.pb.h b/internal/frontend/bridge-gui/GRPC/bridge.pb.h index d0dc2b9b..72259885 100644 --- a/internal/frontend/bridge-gui/GRPC/bridge.pb.h +++ b/internal/frontend/bridge-gui/GRPC/bridge.pb.h @@ -94,6 +94,9 @@ extern ConfigureAppleMailRequestDefaultTypeInternal _ConfigureAppleMailRequest_d class DiskCachePathChanged; struct DiskCachePathChangedDefaultTypeInternal; extern DiskCachePathChangedDefaultTypeInternal _DiskCachePathChanged_default_instance_; +class EventStreamRequest; +struct EventStreamRequestDefaultTypeInternal; +extern EventStreamRequestDefaultTypeInternal _EventStreamRequest_default_instance_; class HasNoKeychainEvent; struct HasNoKeychainEventDefaultTypeInternal; extern HasNoKeychainEventDefaultTypeInternal _HasNoKeychainEvent_default_instance_; @@ -231,6 +234,7 @@ template<> ::grpc::ChangePortsFinishedEvent* Arena::CreateMaybeMessage<::grpc::C template<> ::grpc::ChangePortsRequest* Arena::CreateMaybeMessage<::grpc::ChangePortsRequest>(Arena*); template<> ::grpc::ConfigureAppleMailRequest* Arena::CreateMaybeMessage<::grpc::ConfigureAppleMailRequest>(Arena*); template<> ::grpc::DiskCachePathChanged* Arena::CreateMaybeMessage<::grpc::DiskCachePathChanged>(Arena*); +template<> ::grpc::EventStreamRequest* Arena::CreateMaybeMessage<::grpc::EventStreamRequest>(Arena*); template<> ::grpc::HasNoKeychainEvent* Arena::CreateMaybeMessage<::grpc::HasNoKeychainEvent>(Arena*); template<> ::grpc::InternetStatusEvent* Arena::CreateMaybeMessage<::grpc::InternetStatusEvent>(Arena*); template<> ::grpc::IsCacheOnDiskEnabledChanged* Arena::CreateMaybeMessage<::grpc::IsCacheOnDiskEnabledChanged>(Arena*); @@ -504,12 +508,42 @@ class ReportBugRequest final : // accessors ------------------------------------------------------- enum : int { - kDescriptionFieldNumber = 1, - kAddressFieldNumber = 2, - kEmailClientFieldNumber = 3, - kIncludeLogsFieldNumber = 4, + kOsTypeFieldNumber = 1, + kOsVersionFieldNumber = 2, + kDescriptionFieldNumber = 3, + kAddressFieldNumber = 4, + kEmailClientFieldNumber = 5, + kIncludeLogsFieldNumber = 6, }; - // string description = 1; + // string osType = 1; + void clear_ostype(); + const std::string& ostype() const; + template + void set_ostype(ArgT0&& arg0, ArgT... args); + std::string* mutable_ostype(); + PROTOBUF_NODISCARD std::string* release_ostype(); + void set_allocated_ostype(std::string* ostype); + private: + const std::string& _internal_ostype() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_ostype(const std::string& value); + std::string* _internal_mutable_ostype(); + public: + + // string osVersion = 2; + void clear_osversion(); + const std::string& osversion() const; + template + void set_osversion(ArgT0&& arg0, ArgT... args); + std::string* mutable_osversion(); + PROTOBUF_NODISCARD std::string* release_osversion(); + void set_allocated_osversion(std::string* osversion); + private: + const std::string& _internal_osversion() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_osversion(const std::string& value); + std::string* _internal_mutable_osversion(); + public: + + // string description = 3; void clear_description(); const std::string& description() const; template @@ -523,7 +557,7 @@ class ReportBugRequest final : std::string* _internal_mutable_description(); public: - // string address = 2; + // string address = 4; void clear_address(); const std::string& address() const; template @@ -537,7 +571,7 @@ class ReportBugRequest final : std::string* _internal_mutable_address(); public: - // string emailClient = 3; + // string emailClient = 5; void clear_emailclient(); const std::string& emailclient() const; template @@ -551,7 +585,7 @@ class ReportBugRequest final : std::string* _internal_mutable_emailclient(); public: - // bool includeLogs = 4; + // bool includeLogs = 6; void clear_includelogs(); bool includelogs() const; void set_includelogs(bool value); @@ -568,6 +602,8 @@ class ReportBugRequest final : typedef void InternalArenaConstructable_; typedef void DestructorSkippable_; struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr ostype_; + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr osversion_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr description_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr address_; ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr emailclient_; @@ -2159,6 +2195,159 @@ class ConfigureAppleMailRequest final : }; // ------------------------------------------------------------------- +class EventStreamRequest final : + public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.EventStreamRequest) */ { + public: + inline EventStreamRequest() : EventStreamRequest(nullptr) {} + ~EventStreamRequest() override; + explicit PROTOBUF_CONSTEXPR EventStreamRequest(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized); + + EventStreamRequest(const EventStreamRequest& from); + EventStreamRequest(EventStreamRequest&& from) noexcept + : EventStreamRequest() { + *this = ::std::move(from); + } + + inline EventStreamRequest& operator=(const EventStreamRequest& from) { + CopyFrom(from); + return *this; + } + inline EventStreamRequest& operator=(EventStreamRequest&& 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 EventStreamRequest& default_instance() { + return *internal_default_instance(); + } + static inline const EventStreamRequest* internal_default_instance() { + return reinterpret_cast( + &_EventStreamRequest_default_instance_); + } + static constexpr int kIndexInFileMessages = + 10; + + friend void swap(EventStreamRequest& a, EventStreamRequest& b) { + a.Swap(&b); + } + inline void Swap(EventStreamRequest* 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(EventStreamRequest* other) { + if (other == this) return; + GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + EventStreamRequest* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final { + return CreateMaybeMessage(arena); + } + using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom; + void CopyFrom(const EventStreamRequest& from); + using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom; + void MergeFrom( const EventStreamRequest& from) { + EventStreamRequest::MergeImpl(*this, from); + } + private: + static void MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROTOBUF_NAMESPACE_ID::Message& from_msg); + public: + PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final; + bool IsInitialized() const final; + + size_t ByteSizeLong() const final; + const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final; + uint8_t* _InternalSerialize( + uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final; + int GetCachedSize() const final { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned); + void SharedDtor(); + void SetCachedSize(int size) const final; + void InternalSwap(EventStreamRequest* other); + + private: + friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata; + static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() { + return "grpc.EventStreamRequest"; + } + protected: + explicit EventStreamRequest(::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 ------------------------------------------------------- + + enum : int { + kClientPlatformFieldNumber = 1, + }; + // string ClientPlatform = 1; + void clear_clientplatform(); + const std::string& clientplatform() const; + template + void set_clientplatform(ArgT0&& arg0, ArgT... args); + std::string* mutable_clientplatform(); + PROTOBUF_NODISCARD std::string* release_clientplatform(); + void set_allocated_clientplatform(std::string* clientplatform); + private: + const std::string& _internal_clientplatform() const; + inline PROTOBUF_ALWAYS_INLINE void _internal_set_clientplatform(const std::string& value); + std::string* _internal_mutable_clientplatform(); + public: + + // @@protoc_insertion_point(class_scope:grpc.EventStreamRequest) + private: + class _Internal; + + template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper; + typedef void InternalArenaConstructable_; + typedef void DestructorSkippable_; + struct Impl_ { + ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr clientplatform_; + mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_; + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_bridge_2eproto; +}; +// ------------------------------------------------------------------- + class StreamEvent final : public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.StreamEvent) */ { public: @@ -2219,7 +2408,7 @@ class StreamEvent final : &_StreamEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 10; + 11; friend void swap(StreamEvent& a, StreamEvent& b) { a.Swap(&b); @@ -2546,7 +2735,7 @@ class AppEvent final : &_AppEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 11; + 12; friend void swap(AppEvent& a, AppEvent& b) { a.Swap(&b); @@ -2841,7 +3030,7 @@ class InternetStatusEvent final : &_InternetStatusEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 12; + 13; friend void swap(InternetStatusEvent& a, InternetStatusEvent& b) { a.Swap(&b); @@ -2988,7 +3177,7 @@ class ToggleAutostartFinishedEvent final : &_ToggleAutostartFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 13; + 14; friend void swap(ToggleAutostartFinishedEvent& a, ToggleAutostartFinishedEvent& b) { a.Swap(&b); @@ -3106,7 +3295,7 @@ class ResetFinishedEvent final : &_ResetFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 14; + 15; friend void swap(ResetFinishedEvent& a, ResetFinishedEvent& b) { a.Swap(&b); @@ -3224,7 +3413,7 @@ class ReportBugFinishedEvent final : &_ReportBugFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 15; + 16; friend void swap(ReportBugFinishedEvent& a, ReportBugFinishedEvent& b) { a.Swap(&b); @@ -3342,7 +3531,7 @@ class ReportBugSuccessEvent final : &_ReportBugSuccessEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 16; + 17; friend void swap(ReportBugSuccessEvent& a, ReportBugSuccessEvent& b) { a.Swap(&b); @@ -3460,7 +3649,7 @@ class ReportBugErrorEvent final : &_ReportBugErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 17; + 18; friend void swap(ReportBugErrorEvent& a, ReportBugErrorEvent& b) { a.Swap(&b); @@ -3578,7 +3767,7 @@ class ShowMainWindowEvent final : &_ShowMainWindowEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 18; + 19; friend void swap(ShowMainWindowEvent& a, ShowMainWindowEvent& b) { a.Swap(&b); @@ -3706,7 +3895,7 @@ class LoginEvent final : &_LoginEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 19; + 20; friend void swap(LoginEvent& a, LoginEvent& b) { a.Swap(&b); @@ -3959,7 +4148,7 @@ class LoginErrorEvent final : &_LoginErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 20; + 21; friend void swap(LoginErrorEvent& a, LoginErrorEvent& b) { a.Swap(&b); @@ -4123,7 +4312,7 @@ class LoginTfaRequestedEvent final : &_LoginTfaRequestedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 21; + 22; friend void swap(LoginTfaRequestedEvent& a, LoginTfaRequestedEvent& b) { a.Swap(&b); @@ -4275,7 +4464,7 @@ class LoginTwoPasswordsRequestedEvent final : &_LoginTwoPasswordsRequestedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 22; + 23; friend void swap(LoginTwoPasswordsRequestedEvent& a, LoginTwoPasswordsRequestedEvent& b) { a.Swap(&b); @@ -4394,7 +4583,7 @@ class LoginFinishedEvent final : &_LoginFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 23; + 24; friend void swap(LoginFinishedEvent& a, LoginFinishedEvent& b) { a.Swap(&b); @@ -4558,7 +4747,7 @@ class UpdateEvent final : &_UpdateEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 24; + 25; friend void swap(UpdateEvent& a, UpdateEvent& b) { a.Swap(&b); @@ -4853,7 +5042,7 @@ class UpdateErrorEvent final : &_UpdateErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 25; + 26; friend void swap(UpdateErrorEvent& a, UpdateErrorEvent& b) { a.Swap(&b); @@ -5001,7 +5190,7 @@ class UpdateManualReadyEvent final : &_UpdateManualReadyEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 26; + 27; friend void swap(UpdateManualReadyEvent& a, UpdateManualReadyEvent& b) { a.Swap(&b); @@ -5153,7 +5342,7 @@ class UpdateManualRestartNeededEvent final : &_UpdateManualRestartNeededEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 27; + 28; friend void swap(UpdateManualRestartNeededEvent& a, UpdateManualRestartNeededEvent& b) { a.Swap(&b); @@ -5272,7 +5461,7 @@ class UpdateForceEvent final : &_UpdateForceEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 28; + 29; friend void swap(UpdateForceEvent& a, UpdateForceEvent& b) { a.Swap(&b); @@ -5424,7 +5613,7 @@ class UpdateSilentRestartNeeded final : &_UpdateSilentRestartNeeded_default_instance_); } static constexpr int kIndexInFileMessages = - 29; + 30; friend void swap(UpdateSilentRestartNeeded& a, UpdateSilentRestartNeeded& b) { a.Swap(&b); @@ -5542,7 +5731,7 @@ class UpdateIsLatestVersion final : &_UpdateIsLatestVersion_default_instance_); } static constexpr int kIndexInFileMessages = - 30; + 31; friend void swap(UpdateIsLatestVersion& a, UpdateIsLatestVersion& b) { a.Swap(&b); @@ -5660,7 +5849,7 @@ class UpdateCheckFinished final : &_UpdateCheckFinished_default_instance_); } static constexpr int kIndexInFileMessages = - 31; + 32; friend void swap(UpdateCheckFinished& a, UpdateCheckFinished& b) { a.Swap(&b); @@ -5788,7 +5977,7 @@ class CacheEvent final : &_CacheEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 32; + 33; friend void swap(CacheEvent& a, CacheEvent& b) { a.Swap(&b); @@ -6041,7 +6230,7 @@ class CacheErrorEvent final : &_CacheErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 33; + 34; friend void swap(CacheErrorEvent& a, CacheErrorEvent& b) { a.Swap(&b); @@ -6188,7 +6377,7 @@ class CacheLocationChangeSuccessEvent final : &_CacheLocationChangeSuccessEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 34; + 35; friend void swap(CacheLocationChangeSuccessEvent& a, CacheLocationChangeSuccessEvent& b) { a.Swap(&b); @@ -6306,7 +6495,7 @@ class ChangeLocalCacheFinishedEvent final : &_ChangeLocalCacheFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 35; + 36; friend void swap(ChangeLocalCacheFinishedEvent& a, ChangeLocalCacheFinishedEvent& b) { a.Swap(&b); @@ -6425,7 +6614,7 @@ class IsCacheOnDiskEnabledChanged final : &_IsCacheOnDiskEnabledChanged_default_instance_); } static constexpr int kIndexInFileMessages = - 36; + 37; friend void swap(IsCacheOnDiskEnabledChanged& a, IsCacheOnDiskEnabledChanged& b) { a.Swap(&b); @@ -6573,7 +6762,7 @@ class DiskCachePathChanged final : &_DiskCachePathChanged_default_instance_); } static constexpr int kIndexInFileMessages = - 37; + 38; friend void swap(DiskCachePathChanged& a, DiskCachePathChanged& b) { a.Swap(&b); @@ -6733,7 +6922,7 @@ class MailSettingsEvent final : &_MailSettingsEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 38; + 39; friend void swap(MailSettingsEvent& a, MailSettingsEvent& b) { a.Swap(&b); @@ -6944,7 +7133,7 @@ class MailSettingsErrorEvent final : &_MailSettingsErrorEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 39; + 40; friend void swap(MailSettingsErrorEvent& a, MailSettingsErrorEvent& b) { a.Swap(&b); @@ -7091,7 +7280,7 @@ class UseSslForSmtpFinishedEvent final : &_UseSslForSmtpFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 40; + 41; friend void swap(UseSslForSmtpFinishedEvent& a, UseSslForSmtpFinishedEvent& b) { a.Swap(&b); @@ -7209,7 +7398,7 @@ class ChangePortsFinishedEvent final : &_ChangePortsFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 41; + 42; friend void swap(ChangePortsFinishedEvent& a, ChangePortsFinishedEvent& b) { a.Swap(&b); @@ -7335,7 +7524,7 @@ class KeychainEvent final : &_KeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 42; + 43; friend void swap(KeychainEvent& a, KeychainEvent& b) { a.Swap(&b); @@ -7545,7 +7734,7 @@ class ChangeKeychainFinishedEvent final : &_ChangeKeychainFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 43; + 44; friend void swap(ChangeKeychainFinishedEvent& a, ChangeKeychainFinishedEvent& b) { a.Swap(&b); @@ -7663,7 +7852,7 @@ class HasNoKeychainEvent final : &_HasNoKeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 44; + 45; friend void swap(HasNoKeychainEvent& a, HasNoKeychainEvent& b) { a.Swap(&b); @@ -7781,7 +7970,7 @@ class RebuildKeychainEvent final : &_RebuildKeychainEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 45; + 46; friend void swap(RebuildKeychainEvent& a, RebuildKeychainEvent& b) { a.Swap(&b); @@ -7908,7 +8097,7 @@ class MailEvent final : &_MailEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 46; + 47; friend void swap(MailEvent& a, MailEvent& b) { a.Swap(&b); @@ -8140,7 +8329,7 @@ class NoActiveKeyForRecipientEvent final : &_NoActiveKeyForRecipientEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 47; + 48; friend void swap(NoActiveKeyForRecipientEvent& a, NoActiveKeyForRecipientEvent& b) { a.Swap(&b); @@ -8293,7 +8482,7 @@ class AddressChangedEvent final : &_AddressChangedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 48; + 49; friend void swap(AddressChangedEvent& a, AddressChangedEvent& b) { a.Swap(&b); @@ -8446,7 +8635,7 @@ class AddressChangedLogoutEvent final : &_AddressChangedLogoutEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 49; + 50; friend void swap(AddressChangedLogoutEvent& a, AddressChangedLogoutEvent& b) { a.Swap(&b); @@ -8598,7 +8787,7 @@ class ApiCertIssueEvent final : &_ApiCertIssueEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 50; + 51; friend void swap(ApiCertIssueEvent& a, ApiCertIssueEvent& b) { a.Swap(&b); @@ -8724,7 +8913,7 @@ class UserEvent final : &_UserEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 51; + 52; friend void swap(UserEvent& a, UserEvent& b) { a.Swap(&b); @@ -8935,7 +9124,7 @@ class ToggleSplitModeFinishedEvent final : &_ToggleSplitModeFinishedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 52; + 53; friend void swap(ToggleSplitModeFinishedEvent& a, ToggleSplitModeFinishedEvent& b) { a.Swap(&b); @@ -9088,7 +9277,7 @@ class UserDisconnectedEvent final : &_UserDisconnectedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 53; + 54; friend void swap(UserDisconnectedEvent& a, UserDisconnectedEvent& b) { a.Swap(&b); @@ -9241,7 +9430,7 @@ class UserChangedEvent final : &_UserChangedEvent_default_instance_); } static constexpr int kIndexInFileMessages = - 54; + 55; friend void swap(UserChangedEvent& a, UserChangedEvent& b) { a.Swap(&b); @@ -9355,7 +9544,107 @@ class UserChangedEvent final : #endif // __GNUC__ // ReportBugRequest -// string description = 1; +// string osType = 1; +inline void ReportBugRequest::clear_ostype() { + _impl_.ostype_.ClearToEmpty(); +} +inline const std::string& ReportBugRequest::ostype() const { + // @@protoc_insertion_point(field_get:grpc.ReportBugRequest.osType) + return _internal_ostype(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void ReportBugRequest::set_ostype(ArgT0&& arg0, ArgT... args) { + + _impl_.ostype_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:grpc.ReportBugRequest.osType) +} +inline std::string* ReportBugRequest::mutable_ostype() { + std::string* _s = _internal_mutable_ostype(); + // @@protoc_insertion_point(field_mutable:grpc.ReportBugRequest.osType) + return _s; +} +inline const std::string& ReportBugRequest::_internal_ostype() const { + return _impl_.ostype_.Get(); +} +inline void ReportBugRequest::_internal_set_ostype(const std::string& value) { + + _impl_.ostype_.Set(value, GetArenaForAllocation()); +} +inline std::string* ReportBugRequest::_internal_mutable_ostype() { + + return _impl_.ostype_.Mutable(GetArenaForAllocation()); +} +inline std::string* ReportBugRequest::release_ostype() { + // @@protoc_insertion_point(field_release:grpc.ReportBugRequest.osType) + return _impl_.ostype_.Release(); +} +inline void ReportBugRequest::set_allocated_ostype(std::string* ostype) { + if (ostype != nullptr) { + + } else { + + } + _impl_.ostype_.SetAllocated(ostype, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.ostype_.IsDefault()) { + _impl_.ostype_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:grpc.ReportBugRequest.osType) +} + +// string osVersion = 2; +inline void ReportBugRequest::clear_osversion() { + _impl_.osversion_.ClearToEmpty(); +} +inline const std::string& ReportBugRequest::osversion() const { + // @@protoc_insertion_point(field_get:grpc.ReportBugRequest.osVersion) + return _internal_osversion(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void ReportBugRequest::set_osversion(ArgT0&& arg0, ArgT... args) { + + _impl_.osversion_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:grpc.ReportBugRequest.osVersion) +} +inline std::string* ReportBugRequest::mutable_osversion() { + std::string* _s = _internal_mutable_osversion(); + // @@protoc_insertion_point(field_mutable:grpc.ReportBugRequest.osVersion) + return _s; +} +inline const std::string& ReportBugRequest::_internal_osversion() const { + return _impl_.osversion_.Get(); +} +inline void ReportBugRequest::_internal_set_osversion(const std::string& value) { + + _impl_.osversion_.Set(value, GetArenaForAllocation()); +} +inline std::string* ReportBugRequest::_internal_mutable_osversion() { + + return _impl_.osversion_.Mutable(GetArenaForAllocation()); +} +inline std::string* ReportBugRequest::release_osversion() { + // @@protoc_insertion_point(field_release:grpc.ReportBugRequest.osVersion) + return _impl_.osversion_.Release(); +} +inline void ReportBugRequest::set_allocated_osversion(std::string* osversion) { + if (osversion != nullptr) { + + } else { + + } + _impl_.osversion_.SetAllocated(osversion, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.osversion_.IsDefault()) { + _impl_.osversion_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:grpc.ReportBugRequest.osVersion) +} + +// string description = 3; inline void ReportBugRequest::clear_description() { _impl_.description_.ClearToEmpty(); } @@ -9405,7 +9694,7 @@ inline void ReportBugRequest::set_allocated_description(std::string* description // @@protoc_insertion_point(field_set_allocated:grpc.ReportBugRequest.description) } -// string address = 2; +// string address = 4; inline void ReportBugRequest::clear_address() { _impl_.address_.ClearToEmpty(); } @@ -9455,7 +9744,7 @@ inline void ReportBugRequest::set_allocated_address(std::string* address) { // @@protoc_insertion_point(field_set_allocated:grpc.ReportBugRequest.address) } -// string emailClient = 3; +// string emailClient = 5; inline void ReportBugRequest::clear_emailclient() { _impl_.emailclient_.ClearToEmpty(); } @@ -9505,7 +9794,7 @@ inline void ReportBugRequest::set_allocated_emailclient(std::string* emailclient // @@protoc_insertion_point(field_set_allocated:grpc.ReportBugRequest.emailClient) } -// bool includeLogs = 4; +// bool includeLogs = 6; inline void ReportBugRequest::clear_includelogs() { _impl_.includelogs_ = false; } @@ -10483,6 +10772,60 @@ inline void ConfigureAppleMailRequest::set_allocated_address(std::string* addres // ------------------------------------------------------------------- +// EventStreamRequest + +// string ClientPlatform = 1; +inline void EventStreamRequest::clear_clientplatform() { + _impl_.clientplatform_.ClearToEmpty(); +} +inline const std::string& EventStreamRequest::clientplatform() const { + // @@protoc_insertion_point(field_get:grpc.EventStreamRequest.ClientPlatform) + return _internal_clientplatform(); +} +template +inline PROTOBUF_ALWAYS_INLINE +void EventStreamRequest::set_clientplatform(ArgT0&& arg0, ArgT... args) { + + _impl_.clientplatform_.Set(static_cast(arg0), args..., GetArenaForAllocation()); + // @@protoc_insertion_point(field_set:grpc.EventStreamRequest.ClientPlatform) +} +inline std::string* EventStreamRequest::mutable_clientplatform() { + std::string* _s = _internal_mutable_clientplatform(); + // @@protoc_insertion_point(field_mutable:grpc.EventStreamRequest.ClientPlatform) + return _s; +} +inline const std::string& EventStreamRequest::_internal_clientplatform() const { + return _impl_.clientplatform_.Get(); +} +inline void EventStreamRequest::_internal_set_clientplatform(const std::string& value) { + + _impl_.clientplatform_.Set(value, GetArenaForAllocation()); +} +inline std::string* EventStreamRequest::_internal_mutable_clientplatform() { + + return _impl_.clientplatform_.Mutable(GetArenaForAllocation()); +} +inline std::string* EventStreamRequest::release_clientplatform() { + // @@protoc_insertion_point(field_release:grpc.EventStreamRequest.ClientPlatform) + return _impl_.clientplatform_.Release(); +} +inline void EventStreamRequest::set_allocated_clientplatform(std::string* clientplatform) { + if (clientplatform != nullptr) { + + } else { + + } + _impl_.clientplatform_.SetAllocated(clientplatform, GetArenaForAllocation()); +#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING + if (_impl_.clientplatform_.IsDefault()) { + _impl_.clientplatform_.Set("", GetArenaForAllocation()); + } +#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING + // @@protoc_insertion_point(field_set_allocated:grpc.EventStreamRequest.ClientPlatform) +} + +// ------------------------------------------------------------------- + // StreamEvent // .grpc.AppEvent app = 1; @@ -14903,6 +15246,8 @@ inline void UserChangedEvent::set_allocated_userid(std::string* userid) { // ------------------------------------------------------------------- +// ------------------------------------------------------------------- + // @@protoc_insertion_point(namespace_scope) diff --git a/internal/frontend/bridge-gui/QMLBackend.cpp b/internal/frontend/bridge-gui/QMLBackend.cpp index 095aa38d..a15fb484 100644 --- a/internal/frontend/bridge-gui/QMLBackend.cpp +++ b/internal/frontend/bridge-gui/QMLBackend.cpp @@ -310,13 +310,3 @@ void QMLBackend::triggerReset() { app().log().error(QString("%1() is not implemented.").arg(__FUNCTION__)); } - -//**************************************************************************************************************************************************** -// -//**************************************************************************************************************************************************** -void QMLBackend::reportBug(QString const &description, QString const &address, QString const &emailClient, - bool includeLogs) -{ - Q_UNUSED(includeLogs) - app().log().error(QString("%1() is not implemented.").arg(__FUNCTION__)); -} diff --git a/internal/frontend/bridge-gui/QMLBackend.h b/internal/frontend/bridge-gui/QMLBackend.h index 2e0fa866..1ab664c1 100644 --- a/internal/frontend/bridge-gui/QMLBackend.h +++ b/internal/frontend/bridge-gui/QMLBackend.h @@ -157,7 +157,8 @@ public slots: // slot for signals received from QML -> To be forwarded to Bridge void checkUpdates(); // _ func() `slot:"checkUpdates"` void installUpdate(); // _ func() `slot:"installUpdate"` void triggerReset(); // _ func() `slot:"triggerReset"` - void reportBug(QString const &description, QString const& address, QString const &emailClient, bool includeLogs); // _ func(description, address, emailClient string, includeLogs bool) `slot:"reportBug"` + void reportBug(QString const &description, QString const& address, QString const &emailClient, bool includeLogs) { + logGRPCCallStatus(app().grpc().reportBug(description, address, emailClient, includeLogs), "reportBug"); } // _ func(description, address, emailClient string, includeLogs bool) `slot:"reportBug"` signals: // Signals received from the Go backend, to be forwarded to QML void toggleAutostartFinished(); // _ func() `signal:"toggleAutostartFinished"` diff --git a/internal/frontend/grpc/bridge.pb.go b/internal/frontend/grpc/bridge.pb.go index 177bfbf7..983340b5 100644 --- a/internal/frontend/grpc/bridge.pb.go +++ b/internal/frontend/grpc/bridge.pb.go @@ -249,10 +249,12 @@ type ReportBugRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"` - Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` - EmailClient string `protobuf:"bytes,3,opt,name=emailClient,proto3" json:"emailClient,omitempty"` - IncludeLogs bool `protobuf:"varint,4,opt,name=includeLogs,proto3" json:"includeLogs,omitempty"` + OsType string `protobuf:"bytes,1,opt,name=osType,proto3" json:"osType,omitempty"` + OsVersion string `protobuf:"bytes,2,opt,name=osVersion,proto3" json:"osVersion,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + Address string `protobuf:"bytes,4,opt,name=address,proto3" json:"address,omitempty"` + EmailClient string `protobuf:"bytes,5,opt,name=emailClient,proto3" json:"emailClient,omitempty"` + IncludeLogs bool `protobuf:"varint,6,opt,name=includeLogs,proto3" json:"includeLogs,omitempty"` } func (x *ReportBugRequest) Reset() { @@ -287,6 +289,20 @@ func (*ReportBugRequest) Descriptor() ([]byte, []int) { return file_bridge_proto_rawDescGZIP(), []int{0} } +func (x *ReportBugRequest) GetOsType() string { + if x != nil { + return x.OsType + } + return "" +} + +func (x *ReportBugRequest) GetOsVersion() string { + if x != nil { + return x.OsVersion + } + return "" +} + func (x *ReportBugRequest) GetDescription() string { if x != nil { return x.Description @@ -862,9 +878,53 @@ func (x *ConfigureAppleMailRequest) GetAddress() string { return "" } -//********************************************************************************************************************** -// Event stream messages -//********************************************************************************************************************** +type EventStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClientPlatform string `protobuf:"bytes,1,opt,name=ClientPlatform,proto3" json:"ClientPlatform,omitempty"` +} + +func (x *EventStreamRequest) Reset() { + *x = EventStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_bridge_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventStreamRequest) ProtoMessage() {} + +func (x *EventStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_bridge_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EventStreamRequest.ProtoReflect.Descriptor instead. +func (*EventStreamRequest) Descriptor() ([]byte, []int) { + return file_bridge_proto_rawDescGZIP(), []int{10} +} + +func (x *EventStreamRequest) GetClientPlatform() string { + if x != nil { + return x.ClientPlatform + } + return "" +} + type StreamEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -885,7 +945,7 @@ type StreamEvent struct { func (x *StreamEvent) Reset() { *x = StreamEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[10] + mi := &file_bridge_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -898,7 +958,7 @@ func (x *StreamEvent) String() string { func (*StreamEvent) ProtoMessage() {} func (x *StreamEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[10] + mi := &file_bridge_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -911,7 +971,7 @@ func (x *StreamEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamEvent.ProtoReflect.Descriptor instead. func (*StreamEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{10} + return file_bridge_proto_rawDescGZIP(), []int{11} } func (m *StreamEvent) GetEvent() isStreamEvent_Event { @@ -1051,7 +1111,7 @@ type AppEvent struct { func (x *AppEvent) Reset() { *x = AppEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[11] + mi := &file_bridge_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1064,7 +1124,7 @@ func (x *AppEvent) String() string { func (*AppEvent) ProtoMessage() {} func (x *AppEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[11] + mi := &file_bridge_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1077,7 +1137,7 @@ func (x *AppEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AppEvent.ProtoReflect.Descriptor instead. func (*AppEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{11} + return file_bridge_proto_rawDescGZIP(), []int{12} } func (m *AppEvent) GetEvent() isAppEvent_Event { @@ -1193,7 +1253,7 @@ type InternetStatusEvent struct { func (x *InternetStatusEvent) Reset() { *x = InternetStatusEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[12] + mi := &file_bridge_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1206,7 +1266,7 @@ func (x *InternetStatusEvent) String() string { func (*InternetStatusEvent) ProtoMessage() {} func (x *InternetStatusEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[12] + mi := &file_bridge_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1219,7 +1279,7 @@ func (x *InternetStatusEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use InternetStatusEvent.ProtoReflect.Descriptor instead. func (*InternetStatusEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{12} + return file_bridge_proto_rawDescGZIP(), []int{13} } func (x *InternetStatusEvent) GetConnected() bool { @@ -1238,7 +1298,7 @@ type ToggleAutostartFinishedEvent struct { func (x *ToggleAutostartFinishedEvent) Reset() { *x = ToggleAutostartFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[13] + mi := &file_bridge_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1251,7 +1311,7 @@ func (x *ToggleAutostartFinishedEvent) String() string { func (*ToggleAutostartFinishedEvent) ProtoMessage() {} func (x *ToggleAutostartFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[13] + mi := &file_bridge_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1264,7 +1324,7 @@ func (x *ToggleAutostartFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ToggleAutostartFinishedEvent.ProtoReflect.Descriptor instead. func (*ToggleAutostartFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{13} + return file_bridge_proto_rawDescGZIP(), []int{14} } type ResetFinishedEvent struct { @@ -1276,7 +1336,7 @@ type ResetFinishedEvent struct { func (x *ResetFinishedEvent) Reset() { *x = ResetFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[14] + mi := &file_bridge_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1289,7 +1349,7 @@ func (x *ResetFinishedEvent) String() string { func (*ResetFinishedEvent) ProtoMessage() {} func (x *ResetFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[14] + mi := &file_bridge_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1302,7 +1362,7 @@ func (x *ResetFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetFinishedEvent.ProtoReflect.Descriptor instead. func (*ResetFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{14} + return file_bridge_proto_rawDescGZIP(), []int{15} } type ReportBugFinishedEvent struct { @@ -1314,7 +1374,7 @@ type ReportBugFinishedEvent struct { func (x *ReportBugFinishedEvent) Reset() { *x = ReportBugFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[15] + mi := &file_bridge_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1327,7 +1387,7 @@ func (x *ReportBugFinishedEvent) String() string { func (*ReportBugFinishedEvent) ProtoMessage() {} func (x *ReportBugFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[15] + mi := &file_bridge_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1340,7 +1400,7 @@ func (x *ReportBugFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportBugFinishedEvent.ProtoReflect.Descriptor instead. func (*ReportBugFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{15} + return file_bridge_proto_rawDescGZIP(), []int{16} } type ReportBugSuccessEvent struct { @@ -1352,7 +1412,7 @@ type ReportBugSuccessEvent struct { func (x *ReportBugSuccessEvent) Reset() { *x = ReportBugSuccessEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[16] + mi := &file_bridge_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1365,7 +1425,7 @@ func (x *ReportBugSuccessEvent) String() string { func (*ReportBugSuccessEvent) ProtoMessage() {} func (x *ReportBugSuccessEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[16] + mi := &file_bridge_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1378,7 +1438,7 @@ func (x *ReportBugSuccessEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportBugSuccessEvent.ProtoReflect.Descriptor instead. func (*ReportBugSuccessEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{16} + return file_bridge_proto_rawDescGZIP(), []int{17} } type ReportBugErrorEvent struct { @@ -1390,7 +1450,7 @@ type ReportBugErrorEvent struct { func (x *ReportBugErrorEvent) Reset() { *x = ReportBugErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[17] + mi := &file_bridge_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +1463,7 @@ func (x *ReportBugErrorEvent) String() string { func (*ReportBugErrorEvent) ProtoMessage() {} func (x *ReportBugErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[17] + mi := &file_bridge_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +1476,7 @@ func (x *ReportBugErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportBugErrorEvent.ProtoReflect.Descriptor instead. func (*ReportBugErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{17} + return file_bridge_proto_rawDescGZIP(), []int{18} } type ShowMainWindowEvent struct { @@ -1428,7 +1488,7 @@ type ShowMainWindowEvent struct { func (x *ShowMainWindowEvent) Reset() { *x = ShowMainWindowEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[18] + mi := &file_bridge_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1441,7 +1501,7 @@ func (x *ShowMainWindowEvent) String() string { func (*ShowMainWindowEvent) ProtoMessage() {} func (x *ShowMainWindowEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[18] + mi := &file_bridge_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1454,7 +1514,7 @@ func (x *ShowMainWindowEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ShowMainWindowEvent.ProtoReflect.Descriptor instead. func (*ShowMainWindowEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{18} + return file_bridge_proto_rawDescGZIP(), []int{19} } //********************************************************** @@ -1477,7 +1537,7 @@ type LoginEvent struct { func (x *LoginEvent) Reset() { *x = LoginEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[19] + mi := &file_bridge_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1490,7 +1550,7 @@ func (x *LoginEvent) String() string { func (*LoginEvent) ProtoMessage() {} func (x *LoginEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[19] + mi := &file_bridge_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1503,7 +1563,7 @@ func (x *LoginEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginEvent.ProtoReflect.Descriptor instead. func (*LoginEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{19} + return file_bridge_proto_rawDescGZIP(), []int{20} } func (m *LoginEvent) GetEvent() isLoginEvent_Event { @@ -1594,7 +1654,7 @@ type LoginErrorEvent struct { func (x *LoginErrorEvent) Reset() { *x = LoginErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[20] + mi := &file_bridge_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1607,7 +1667,7 @@ func (x *LoginErrorEvent) String() string { func (*LoginErrorEvent) ProtoMessage() {} func (x *LoginErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[20] + mi := &file_bridge_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1620,7 +1680,7 @@ func (x *LoginErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginErrorEvent.ProtoReflect.Descriptor instead. func (*LoginErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{20} + return file_bridge_proto_rawDescGZIP(), []int{21} } func (x *LoginErrorEvent) GetType() LoginErrorType { @@ -1648,7 +1708,7 @@ type LoginTfaRequestedEvent struct { func (x *LoginTfaRequestedEvent) Reset() { *x = LoginTfaRequestedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[21] + mi := &file_bridge_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1661,7 +1721,7 @@ func (x *LoginTfaRequestedEvent) String() string { func (*LoginTfaRequestedEvent) ProtoMessage() {} func (x *LoginTfaRequestedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[21] + mi := &file_bridge_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1674,7 +1734,7 @@ func (x *LoginTfaRequestedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginTfaRequestedEvent.ProtoReflect.Descriptor instead. func (*LoginTfaRequestedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{21} + return file_bridge_proto_rawDescGZIP(), []int{22} } func (x *LoginTfaRequestedEvent) GetUsername() string { @@ -1693,7 +1753,7 @@ type LoginTwoPasswordsRequestedEvent struct { func (x *LoginTwoPasswordsRequestedEvent) Reset() { *x = LoginTwoPasswordsRequestedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[22] + mi := &file_bridge_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1706,7 +1766,7 @@ func (x *LoginTwoPasswordsRequestedEvent) String() string { func (*LoginTwoPasswordsRequestedEvent) ProtoMessage() {} func (x *LoginTwoPasswordsRequestedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[22] + mi := &file_bridge_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1719,7 +1779,7 @@ func (x *LoginTwoPasswordsRequestedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginTwoPasswordsRequestedEvent.ProtoReflect.Descriptor instead. func (*LoginTwoPasswordsRequestedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{22} + return file_bridge_proto_rawDescGZIP(), []int{23} } type LoginFinishedEvent struct { @@ -1733,7 +1793,7 @@ type LoginFinishedEvent struct { func (x *LoginFinishedEvent) Reset() { *x = LoginFinishedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[23] + mi := &file_bridge_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1746,7 +1806,7 @@ func (x *LoginFinishedEvent) String() string { func (*LoginFinishedEvent) ProtoMessage() {} func (x *LoginFinishedEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[23] + mi := &file_bridge_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1759,7 +1819,7 @@ func (x *LoginFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use LoginFinishedEvent.ProtoReflect.Descriptor instead. func (*LoginFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{23} + return file_bridge_proto_rawDescGZIP(), []int{24} } func (x *LoginFinishedEvent) GetUserID() string { @@ -1791,7 +1851,7 @@ type UpdateEvent struct { func (x *UpdateEvent) Reset() { *x = UpdateEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[24] + mi := &file_bridge_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1804,7 +1864,7 @@ func (x *UpdateEvent) String() string { func (*UpdateEvent) ProtoMessage() {} func (x *UpdateEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[24] + mi := &file_bridge_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1817,7 +1877,7 @@ func (x *UpdateEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateEvent.ProtoReflect.Descriptor instead. func (*UpdateEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{24} + return file_bridge_proto_rawDescGZIP(), []int{25} } func (m *UpdateEvent) GetEvent() isUpdateEvent_Event { @@ -1933,7 +1993,7 @@ type UpdateErrorEvent struct { func (x *UpdateErrorEvent) Reset() { *x = UpdateErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[25] + mi := &file_bridge_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1946,7 +2006,7 @@ func (x *UpdateErrorEvent) String() string { func (*UpdateErrorEvent) ProtoMessage() {} func (x *UpdateErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[25] + mi := &file_bridge_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1959,7 +2019,7 @@ func (x *UpdateErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateErrorEvent.ProtoReflect.Descriptor instead. func (*UpdateErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{25} + return file_bridge_proto_rawDescGZIP(), []int{26} } func (x *UpdateErrorEvent) GetType() UpdateErrorType { @@ -1980,7 +2040,7 @@ type UpdateManualReadyEvent struct { func (x *UpdateManualReadyEvent) Reset() { *x = UpdateManualReadyEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[26] + mi := &file_bridge_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1993,7 +2053,7 @@ func (x *UpdateManualReadyEvent) String() string { func (*UpdateManualReadyEvent) ProtoMessage() {} func (x *UpdateManualReadyEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[26] + mi := &file_bridge_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2006,7 +2066,7 @@ func (x *UpdateManualReadyEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateManualReadyEvent.ProtoReflect.Descriptor instead. func (*UpdateManualReadyEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{26} + return file_bridge_proto_rawDescGZIP(), []int{27} } func (x *UpdateManualReadyEvent) GetVersion() string { @@ -2025,7 +2085,7 @@ type UpdateManualRestartNeededEvent struct { func (x *UpdateManualRestartNeededEvent) Reset() { *x = UpdateManualRestartNeededEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[27] + mi := &file_bridge_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2038,7 +2098,7 @@ func (x *UpdateManualRestartNeededEvent) String() string { func (*UpdateManualRestartNeededEvent) ProtoMessage() {} func (x *UpdateManualRestartNeededEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[27] + mi := &file_bridge_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2051,7 +2111,7 @@ func (x *UpdateManualRestartNeededEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateManualRestartNeededEvent.ProtoReflect.Descriptor instead. func (*UpdateManualRestartNeededEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{27} + return file_bridge_proto_rawDescGZIP(), []int{28} } type UpdateForceEvent struct { @@ -2065,7 +2125,7 @@ type UpdateForceEvent struct { func (x *UpdateForceEvent) Reset() { *x = UpdateForceEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[28] + mi := &file_bridge_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2078,7 +2138,7 @@ func (x *UpdateForceEvent) String() string { func (*UpdateForceEvent) ProtoMessage() {} func (x *UpdateForceEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[28] + mi := &file_bridge_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2091,7 +2151,7 @@ func (x *UpdateForceEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateForceEvent.ProtoReflect.Descriptor instead. func (*UpdateForceEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{28} + return file_bridge_proto_rawDescGZIP(), []int{29} } func (x *UpdateForceEvent) GetVersion() string { @@ -2110,7 +2170,7 @@ type UpdateSilentRestartNeeded struct { func (x *UpdateSilentRestartNeeded) Reset() { *x = UpdateSilentRestartNeeded{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[29] + mi := &file_bridge_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2123,7 +2183,7 @@ func (x *UpdateSilentRestartNeeded) String() string { func (*UpdateSilentRestartNeeded) ProtoMessage() {} func (x *UpdateSilentRestartNeeded) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[29] + mi := &file_bridge_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2136,7 +2196,7 @@ func (x *UpdateSilentRestartNeeded) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSilentRestartNeeded.ProtoReflect.Descriptor instead. func (*UpdateSilentRestartNeeded) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{29} + return file_bridge_proto_rawDescGZIP(), []int{30} } type UpdateIsLatestVersion struct { @@ -2148,7 +2208,7 @@ type UpdateIsLatestVersion struct { func (x *UpdateIsLatestVersion) Reset() { *x = UpdateIsLatestVersion{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[30] + mi := &file_bridge_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2161,7 +2221,7 @@ func (x *UpdateIsLatestVersion) String() string { func (*UpdateIsLatestVersion) ProtoMessage() {} func (x *UpdateIsLatestVersion) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[30] + mi := &file_bridge_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2174,7 +2234,7 @@ func (x *UpdateIsLatestVersion) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateIsLatestVersion.ProtoReflect.Descriptor instead. func (*UpdateIsLatestVersion) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{30} + return file_bridge_proto_rawDescGZIP(), []int{31} } type UpdateCheckFinished struct { @@ -2186,7 +2246,7 @@ type UpdateCheckFinished struct { func (x *UpdateCheckFinished) Reset() { *x = UpdateCheckFinished{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[31] + mi := &file_bridge_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2199,7 +2259,7 @@ func (x *UpdateCheckFinished) String() string { func (*UpdateCheckFinished) ProtoMessage() {} func (x *UpdateCheckFinished) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[31] + mi := &file_bridge_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2212,7 +2272,7 @@ func (x *UpdateCheckFinished) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateCheckFinished.ProtoReflect.Descriptor instead. func (*UpdateCheckFinished) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{31} + return file_bridge_proto_rawDescGZIP(), []int{32} } //********************************************************** @@ -2235,7 +2295,7 @@ type CacheEvent struct { func (x *CacheEvent) Reset() { *x = CacheEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[32] + mi := &file_bridge_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2248,7 +2308,7 @@ func (x *CacheEvent) String() string { func (*CacheEvent) ProtoMessage() {} func (x *CacheEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[32] + mi := &file_bridge_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2261,7 +2321,7 @@ func (x *CacheEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheEvent.ProtoReflect.Descriptor instead. func (*CacheEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{32} + return file_bridge_proto_rawDescGZIP(), []int{33} } func (m *CacheEvent) GetEvent() isCacheEvent_Event { @@ -2351,7 +2411,7 @@ type CacheErrorEvent struct { func (x *CacheErrorEvent) Reset() { *x = CacheErrorEvent{} if protoimpl.UnsafeEnabled { - mi := &file_bridge_proto_msgTypes[33] + mi := &file_bridge_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2364,7 +2424,7 @@ func (x *CacheErrorEvent) String() string { func (*CacheErrorEvent) ProtoMessage() {} func (x *CacheErrorEvent) ProtoReflect() protoreflect.Message { - mi := &file_bridge_proto_msgTypes[33] + mi := &file_bridge_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2377,7 +2437,7 @@ func (x *CacheErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheErrorEvent.ProtoReflect.Descriptor instead. func (*CacheErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{33} + return file_bridge_proto_rawDescGZIP(), []int{34} } func (x *CacheErrorEvent) GetType() CacheErrorType { @@ -2396,7 +2456,7 @@ type CacheLocationChangeSuccessEvent struct { func (x *CacheLocationChangeSuccessEvent) Reset() { *x = CacheLocationChangeSuccessEvent{} 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) } @@ -2409,7 +2469,7 @@ func (x *CacheLocationChangeSuccessEvent) String() string { func (*CacheLocationChangeSuccessEvent) ProtoMessage() {} func (x *CacheLocationChangeSuccessEvent) 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 { @@ -2422,7 +2482,7 @@ func (x *CacheLocationChangeSuccessEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use CacheLocationChangeSuccessEvent.ProtoReflect.Descriptor instead. func (*CacheLocationChangeSuccessEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{34} + return file_bridge_proto_rawDescGZIP(), []int{35} } type ChangeLocalCacheFinishedEvent struct { @@ -2434,7 +2494,7 @@ type ChangeLocalCacheFinishedEvent struct { func (x *ChangeLocalCacheFinishedEvent) Reset() { *x = ChangeLocalCacheFinishedEvent{} 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) } @@ -2447,7 +2507,7 @@ func (x *ChangeLocalCacheFinishedEvent) String() string { func (*ChangeLocalCacheFinishedEvent) ProtoMessage() {} func (x *ChangeLocalCacheFinishedEvent) 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 { @@ -2460,7 +2520,7 @@ func (x *ChangeLocalCacheFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeLocalCacheFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangeLocalCacheFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{35} + return file_bridge_proto_rawDescGZIP(), []int{36} } type IsCacheOnDiskEnabledChanged struct { @@ -2474,7 +2534,7 @@ type IsCacheOnDiskEnabledChanged struct { func (x *IsCacheOnDiskEnabledChanged) Reset() { *x = IsCacheOnDiskEnabledChanged{} 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) } @@ -2487,7 +2547,7 @@ func (x *IsCacheOnDiskEnabledChanged) String() string { func (*IsCacheOnDiskEnabledChanged) ProtoMessage() {} func (x *IsCacheOnDiskEnabledChanged) 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 { @@ -2500,7 +2560,7 @@ func (x *IsCacheOnDiskEnabledChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use IsCacheOnDiskEnabledChanged.ProtoReflect.Descriptor instead. func (*IsCacheOnDiskEnabledChanged) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{36} + return file_bridge_proto_rawDescGZIP(), []int{37} } func (x *IsCacheOnDiskEnabledChanged) GetEnabled() bool { @@ -2521,7 +2581,7 @@ type DiskCachePathChanged struct { func (x *DiskCachePathChanged) Reset() { *x = DiskCachePathChanged{} 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) } @@ -2534,7 +2594,7 @@ func (x *DiskCachePathChanged) String() string { func (*DiskCachePathChanged) ProtoMessage() {} func (x *DiskCachePathChanged) 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 { @@ -2547,7 +2607,7 @@ func (x *DiskCachePathChanged) ProtoReflect() protoreflect.Message { // Deprecated: Use DiskCachePathChanged.ProtoReflect.Descriptor instead. func (*DiskCachePathChanged) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{37} + return file_bridge_proto_rawDescGZIP(), []int{38} } func (x *DiskCachePathChanged) GetPath() string { @@ -2575,7 +2635,7 @@ type MailSettingsEvent struct { func (x *MailSettingsEvent) Reset() { *x = MailSettingsEvent{} 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) } @@ -2588,7 +2648,7 @@ func (x *MailSettingsEvent) String() string { func (*MailSettingsEvent) ProtoMessage() {} func (x *MailSettingsEvent) 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 { @@ -2601,7 +2661,7 @@ func (x *MailSettingsEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailSettingsEvent.ProtoReflect.Descriptor instead. func (*MailSettingsEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{38} + return file_bridge_proto_rawDescGZIP(), []int{39} } func (m *MailSettingsEvent) GetEvent() isMailSettingsEvent_Event { @@ -2665,7 +2725,7 @@ type MailSettingsErrorEvent struct { func (x *MailSettingsErrorEvent) Reset() { *x = MailSettingsErrorEvent{} 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) } @@ -2678,7 +2738,7 @@ func (x *MailSettingsErrorEvent) String() string { func (*MailSettingsErrorEvent) ProtoMessage() {} func (x *MailSettingsErrorEvent) 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 { @@ -2691,7 +2751,7 @@ func (x *MailSettingsErrorEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailSettingsErrorEvent.ProtoReflect.Descriptor instead. func (*MailSettingsErrorEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{39} + return file_bridge_proto_rawDescGZIP(), []int{40} } func (x *MailSettingsErrorEvent) GetType() MailSettingsErrorType { @@ -2710,7 +2770,7 @@ type UseSslForSmtpFinishedEvent struct { func (x *UseSslForSmtpFinishedEvent) Reset() { *x = UseSslForSmtpFinishedEvent{} 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) } @@ -2723,7 +2783,7 @@ func (x *UseSslForSmtpFinishedEvent) String() string { func (*UseSslForSmtpFinishedEvent) ProtoMessage() {} func (x *UseSslForSmtpFinishedEvent) 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 { @@ -2736,7 +2796,7 @@ func (x *UseSslForSmtpFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UseSslForSmtpFinishedEvent.ProtoReflect.Descriptor instead. func (*UseSslForSmtpFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{40} + return file_bridge_proto_rawDescGZIP(), []int{41} } type ChangePortsFinishedEvent struct { @@ -2748,7 +2808,7 @@ type ChangePortsFinishedEvent struct { func (x *ChangePortsFinishedEvent) Reset() { *x = ChangePortsFinishedEvent{} 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) } @@ -2761,7 +2821,7 @@ func (x *ChangePortsFinishedEvent) String() string { func (*ChangePortsFinishedEvent) ProtoMessage() {} func (x *ChangePortsFinishedEvent) 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 { @@ -2774,7 +2834,7 @@ func (x *ChangePortsFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangePortsFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangePortsFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{41} + return file_bridge_proto_rawDescGZIP(), []int{42} } //********************************************************** @@ -2795,7 +2855,7 @@ type KeychainEvent struct { func (x *KeychainEvent) Reset() { *x = KeychainEvent{} 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) } @@ -2808,7 +2868,7 @@ func (x *KeychainEvent) String() string { func (*KeychainEvent) ProtoMessage() {} func (x *KeychainEvent) 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 { @@ -2821,7 +2881,7 @@ func (x *KeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use KeychainEvent.ProtoReflect.Descriptor instead. func (*KeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{42} + return file_bridge_proto_rawDescGZIP(), []int{43} } func (m *KeychainEvent) GetEvent() isKeychainEvent_Event { @@ -2883,7 +2943,7 @@ type ChangeKeychainFinishedEvent struct { func (x *ChangeKeychainFinishedEvent) Reset() { *x = ChangeKeychainFinishedEvent{} 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) } @@ -2896,7 +2956,7 @@ func (x *ChangeKeychainFinishedEvent) String() string { func (*ChangeKeychainFinishedEvent) ProtoMessage() {} func (x *ChangeKeychainFinishedEvent) 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 { @@ -2909,7 +2969,7 @@ func (x *ChangeKeychainFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ChangeKeychainFinishedEvent.ProtoReflect.Descriptor instead. func (*ChangeKeychainFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{43} + return file_bridge_proto_rawDescGZIP(), []int{44} } type HasNoKeychainEvent struct { @@ -2921,7 +2981,7 @@ type HasNoKeychainEvent struct { func (x *HasNoKeychainEvent) Reset() { *x = HasNoKeychainEvent{} 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) } @@ -2934,7 +2994,7 @@ func (x *HasNoKeychainEvent) String() string { func (*HasNoKeychainEvent) ProtoMessage() {} func (x *HasNoKeychainEvent) 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 { @@ -2947,7 +3007,7 @@ func (x *HasNoKeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use HasNoKeychainEvent.ProtoReflect.Descriptor instead. func (*HasNoKeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{44} + return file_bridge_proto_rawDescGZIP(), []int{45} } type RebuildKeychainEvent struct { @@ -2959,7 +3019,7 @@ type RebuildKeychainEvent struct { func (x *RebuildKeychainEvent) Reset() { *x = RebuildKeychainEvent{} 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) } @@ -2972,7 +3032,7 @@ func (x *RebuildKeychainEvent) String() string { func (*RebuildKeychainEvent) ProtoMessage() {} func (x *RebuildKeychainEvent) 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 { @@ -2985,7 +3045,7 @@ func (x *RebuildKeychainEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use RebuildKeychainEvent.ProtoReflect.Descriptor instead. func (*RebuildKeychainEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{45} + return file_bridge_proto_rawDescGZIP(), []int{46} } //********************************************************** @@ -3007,7 +3067,7 @@ type MailEvent struct { func (x *MailEvent) Reset() { *x = MailEvent{} 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) } @@ -3020,7 +3080,7 @@ func (x *MailEvent) String() string { func (*MailEvent) ProtoMessage() {} func (x *MailEvent) 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 { @@ -3033,7 +3093,7 @@ func (x *MailEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use MailEvent.ProtoReflect.Descriptor instead. func (*MailEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{46} + return file_bridge_proto_rawDescGZIP(), []int{47} } func (m *MailEvent) GetEvent() isMailEvent_Event { @@ -3110,7 +3170,7 @@ type NoActiveKeyForRecipientEvent struct { func (x *NoActiveKeyForRecipientEvent) Reset() { *x = NoActiveKeyForRecipientEvent{} 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) } @@ -3123,7 +3183,7 @@ func (x *NoActiveKeyForRecipientEvent) String() string { func (*NoActiveKeyForRecipientEvent) ProtoMessage() {} func (x *NoActiveKeyForRecipientEvent) 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 { @@ -3136,7 +3196,7 @@ func (x *NoActiveKeyForRecipientEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use NoActiveKeyForRecipientEvent.ProtoReflect.Descriptor instead. func (*NoActiveKeyForRecipientEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{47} + return file_bridge_proto_rawDescGZIP(), []int{48} } func (x *NoActiveKeyForRecipientEvent) GetEmail() string { @@ -3157,7 +3217,7 @@ type AddressChangedEvent struct { func (x *AddressChangedEvent) Reset() { *x = AddressChangedEvent{} 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) } @@ -3170,7 +3230,7 @@ func (x *AddressChangedEvent) String() string { func (*AddressChangedEvent) ProtoMessage() {} func (x *AddressChangedEvent) 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 { @@ -3183,7 +3243,7 @@ func (x *AddressChangedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressChangedEvent.ProtoReflect.Descriptor instead. func (*AddressChangedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{48} + return file_bridge_proto_rawDescGZIP(), []int{49} } func (x *AddressChangedEvent) GetAddress() string { @@ -3204,7 +3264,7 @@ type AddressChangedLogoutEvent struct { func (x *AddressChangedLogoutEvent) Reset() { *x = AddressChangedLogoutEvent{} 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) } @@ -3217,7 +3277,7 @@ func (x *AddressChangedLogoutEvent) String() string { func (*AddressChangedLogoutEvent) ProtoMessage() {} func (x *AddressChangedLogoutEvent) 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 { @@ -3230,7 +3290,7 @@ func (x *AddressChangedLogoutEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use AddressChangedLogoutEvent.ProtoReflect.Descriptor instead. func (*AddressChangedLogoutEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{49} + return file_bridge_proto_rawDescGZIP(), []int{50} } func (x *AddressChangedLogoutEvent) GetAddress() string { @@ -3249,7 +3309,7 @@ type ApiCertIssueEvent struct { func (x *ApiCertIssueEvent) Reset() { *x = ApiCertIssueEvent{} 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) } @@ -3262,7 +3322,7 @@ func (x *ApiCertIssueEvent) String() string { func (*ApiCertIssueEvent) ProtoMessage() {} func (x *ApiCertIssueEvent) 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 { @@ -3275,7 +3335,7 @@ func (x *ApiCertIssueEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ApiCertIssueEvent.ProtoReflect.Descriptor instead. func (*ApiCertIssueEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{50} + return file_bridge_proto_rawDescGZIP(), []int{51} } type UserEvent struct { @@ -3293,7 +3353,7 @@ type UserEvent struct { func (x *UserEvent) Reset() { *x = UserEvent{} 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) } @@ -3306,7 +3366,7 @@ func (x *UserEvent) String() string { func (*UserEvent) ProtoMessage() {} func (x *UserEvent) 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 { @@ -3319,7 +3379,7 @@ func (x *UserEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserEvent.ProtoReflect.Descriptor instead. func (*UserEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{51} + return file_bridge_proto_rawDescGZIP(), []int{52} } func (m *UserEvent) GetEvent() isUserEvent_Event { @@ -3383,7 +3443,7 @@ type ToggleSplitModeFinishedEvent struct { func (x *ToggleSplitModeFinishedEvent) Reset() { *x = ToggleSplitModeFinishedEvent{} 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) } @@ -3396,7 +3456,7 @@ func (x *ToggleSplitModeFinishedEvent) String() string { func (*ToggleSplitModeFinishedEvent) ProtoMessage() {} func (x *ToggleSplitModeFinishedEvent) 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 { @@ -3409,7 +3469,7 @@ func (x *ToggleSplitModeFinishedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use ToggleSplitModeFinishedEvent.ProtoReflect.Descriptor instead. func (*ToggleSplitModeFinishedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{52} + return file_bridge_proto_rawDescGZIP(), []int{53} } func (x *ToggleSplitModeFinishedEvent) GetUserID() string { @@ -3430,7 +3490,7 @@ type UserDisconnectedEvent struct { func (x *UserDisconnectedEvent) Reset() { *x = UserDisconnectedEvent{} 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) } @@ -3443,7 +3503,7 @@ func (x *UserDisconnectedEvent) String() string { func (*UserDisconnectedEvent) ProtoMessage() {} func (x *UserDisconnectedEvent) 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 { @@ -3456,7 +3516,7 @@ func (x *UserDisconnectedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserDisconnectedEvent.ProtoReflect.Descriptor instead. func (*UserDisconnectedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{53} + return file_bridge_proto_rawDescGZIP(), []int{54} } func (x *UserDisconnectedEvent) GetUsername() string { @@ -3477,7 +3537,7 @@ type UserChangedEvent struct { func (x *UserChangedEvent) Reset() { *x = UserChangedEvent{} 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) } @@ -3490,7 +3550,7 @@ func (x *UserChangedEvent) String() string { func (*UserChangedEvent) ProtoMessage() {} func (x *UserChangedEvent) 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 { @@ -3503,7 +3563,7 @@ func (x *UserChangedEvent) ProtoReflect() protoreflect.Message { // Deprecated: Use UserChangedEvent.ProtoReflect.Descriptor instead. func (*UserChangedEvent) Descriptor() ([]byte, []int) { - return file_bridge_proto_rawDescGZIP(), []int{54} + return file_bridge_proto_rawDescGZIP(), []int{55} } func (x *UserChangedEvent) GetUserID() string { @@ -3521,620 +3581,628 @@ var file_bridge_proto_rawDesc = []byte{ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x92, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, - 0x6f, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x46, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2f, - 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 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, - 0x69, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, - 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x4c, 0x0a, 0x12, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, - 0x73, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x3a, 0x0a, 0x1a, 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, 0x1c, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, - 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x63, 0x68, - 0x61, 0x69, 0x6e, 0x73, 0x22, 0xac, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x76, 0x61, - 0x74, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, - 0x67, 0x65, 0x64, 0x49, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6c, 0x6f, 0x67, - 0x67, 0x65, 0x64, 0x49, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, - 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x47, 0x75, 0x69, 0x64, - 0x65, 0x53, 0x65, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x65, 0x74, - 0x75, 0x70, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x65, 0x65, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x75, - 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, - 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x22, 0x46, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x22, 0x34, 0x0a, 0x10, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x22, 0x4d, 0x0a, 0x19, 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, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xfb, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x12, 0x22, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x03, 0x61, 0x70, 0x70, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x2b, - 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x63, - 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4b, 0x65, - 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x6b, - 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x04, 0x6d, 0x61, 0x69, 0x6c, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, - 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x25, - 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, - 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x9d, - 0x04, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x0e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x5e, 0x0a, 0x17, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, - 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, - 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x40, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, - 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, - 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, - 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, 0x69, - 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x11, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x12, 0x49, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x53, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x75, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x0e, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x43, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x33, - 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, - 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x69, - 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, - 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xe3, 0x02, 0x0a, 0x0a, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 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, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, - 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0c, 0x74, 0x66, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x66, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, - 0x74, 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x5b, 0x0a, 0x14, - 0x74, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x14, 0x74, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x08, 0x66, 0x69, 0x6e, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, - 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, - 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4c, 0x6f, 0x67, 0x67, - 0x65, 0x64, 0x49, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, 0x70, - 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x4c, - 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x22, 0x55, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x4c, 0x6f, 0x67, 0x69, 0x6e, - 0x54, 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x21, 0x0a, - 0x1f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 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, 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, 0x6f, 0x72, 0x12, 0x40, - 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, - 0x12, 0x58, 0x0a, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x67, 0x72, 0x70, 0x63, 0x2e, 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, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x13, 0x73, 0x69, - 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 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, 0x48, 0x00, 0x52, 0x13, 0x73, 0x69, 0x6c, 0x65, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, - 0x47, 0x0a, 0x0f, 0x69, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, 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, + 0x6f, 0x22, 0xc8, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x67, 0x73, 0x22, 0x46, 0x0a, 0x0c, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2f, 0x0a, 0x11, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x69, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x69, + 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, + 0x22, 0x4c, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x70, 0x50, 0x6f, + 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x6d, 0x74, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x3a, + 0x0a, 0x1a, 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, 0x1c, 0x0a, 0x09, + 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x22, 0xac, 0x02, 0x0a, 0x04, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x73, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x74, + 0x75, 0x70, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x65, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x47, 0x75, 0x69, 0x64, 0x65, 0x53, 0x65, 0x65, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0x46, 0x0a, 0x14, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 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, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x22, 0x34, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, 0x4d, 0x0a, 0x19, 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, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x22, 0xfb, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x70, 0x70, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x03, 0x61, 0x70, 0x70, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x6f, 0x67, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x12, 0x2b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x28, 0x0a, 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x6d, 0x61, 0x69, + 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x6d, 0x61, 0x69, 0x6c, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x63, + 0x68, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x72, 0x70, + 0x63, 0x2e, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x04, 0x6d, + 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x4d, 0x61, 0x69, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x25, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0x9d, 0x04, 0x0a, 0x08, 0x41, 0x70, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, + 0x43, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, 0x0a, 0x17, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x41, 0x75, + 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x17, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x46, 0x69, + 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, + 0x00, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x12, 0x49, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, + 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x53, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x10, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x43, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, + 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x68, 0x6f, 0x77, 0x4d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x4d, + 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x22, 0x33, 0x0a, 0x13, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x54, 0x6f, 0x67, 0x67, 0x6c, + 0x65, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x18, 0x0a, + 0x16, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, + 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x42, 0x75, 0x67, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x22, 0x15, 0x0a, 0x13, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x75, 0x67, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x68, 0x6f, 0x77, 0x4d, + 0x61, 0x69, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x22, 0xe3, + 0x02, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x0c, + 0x74, 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, + 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x48, 0x00, 0x52, 0x0c, 0x74, 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x12, 0x5b, 0x0a, 0x14, 0x74, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x77, 0x6f, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x14, 0x74, 0x77, 0x6f, 0x50, 0x61, 0x73, 0x73, + 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x36, 0x0a, + 0x08, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, + 0x73, 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6e, + 0x69, 0x73, 0x68, 0x65, 0x64, 0x12, 0x44, 0x0a, 0x0f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, + 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x46, 0x69, 0x6e, 0x69, 0x73, + 0x68, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6c, 0x72, 0x65, + 0x61, 0x64, 0x79, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 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, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x34, 0x0a, 0x16, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x66, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0x21, 0x0a, 0x1f, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x77, 0x6f, 0x50, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x45, + 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, + 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, - 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, + 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x64, 0x79, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, + 0x65, 0x61, 0x64, 0x79, 0x12, 0x58, 0x0a, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 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, 0x48, 0x00, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x2e, + 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x53, + 0x0a, 0x13, 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 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, 0x48, 0x00, 0x52, 0x13, + 0x73, 0x69, 0x6c, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x65, 0x65, + 0x64, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0f, 0x69, 0x73, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x73, 0x4c, 0x61, 0x74, 0x65, + 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x69, 0x73, 0x4c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0d, + 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, 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, 0x65, 0x4b, 0x65, 0x79, + 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, 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, + 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, 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, 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, 0x9f, 0x1b, 0x0a, 0x06, 0x42, 0x72, - 0x69, 0x64, 0x67, 0x65, 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, + 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, + 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, 0xa1, 0x1b, + 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67, 0x65, 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, 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, + 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, 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, 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, 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, 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, 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, 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, + 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, 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, 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, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 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, 0x3d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 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, 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, 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, + 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, 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, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, + 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, 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, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, - 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, 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, + 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, 0x41, 0x0a, 0x10, 0x53, + 0x74, 0x61, 0x72, 0x74, 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 ( @@ -4150,7 +4218,7 @@ func file_bridge_proto_rawDescGZIP() []byte { } var file_bridge_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 55) +var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 56) var file_bridge_proto_goTypes = []interface{}{ (LoginErrorType)(0), // 0: grpc.LoginErrorType (UpdateErrorType)(0), // 1: grpc.UpdateErrorType @@ -4166,209 +4234,210 @@ var file_bridge_proto_goTypes = []interface{}{ (*UserSplitModeRequest)(nil), // 11: grpc.UserSplitModeRequest (*UserListResponse)(nil), // 12: grpc.UserListResponse (*ConfigureAppleMailRequest)(nil), // 13: grpc.ConfigureAppleMailRequest - (*StreamEvent)(nil), // 14: grpc.StreamEvent - (*AppEvent)(nil), // 15: grpc.AppEvent - (*InternetStatusEvent)(nil), // 16: grpc.InternetStatusEvent - (*ToggleAutostartFinishedEvent)(nil), // 17: grpc.ToggleAutostartFinishedEvent - (*ResetFinishedEvent)(nil), // 18: grpc.ResetFinishedEvent - (*ReportBugFinishedEvent)(nil), // 19: grpc.ReportBugFinishedEvent - (*ReportBugSuccessEvent)(nil), // 20: grpc.ReportBugSuccessEvent - (*ReportBugErrorEvent)(nil), // 21: grpc.ReportBugErrorEvent - (*ShowMainWindowEvent)(nil), // 22: grpc.ShowMainWindowEvent - (*LoginEvent)(nil), // 23: grpc.LoginEvent - (*LoginErrorEvent)(nil), // 24: grpc.LoginErrorEvent - (*LoginTfaRequestedEvent)(nil), // 25: grpc.LoginTfaRequestedEvent - (*LoginTwoPasswordsRequestedEvent)(nil), // 26: grpc.LoginTwoPasswordsRequestedEvent - (*LoginFinishedEvent)(nil), // 27: grpc.LoginFinishedEvent - (*UpdateEvent)(nil), // 28: grpc.UpdateEvent - (*UpdateErrorEvent)(nil), // 29: grpc.UpdateErrorEvent - (*UpdateManualReadyEvent)(nil), // 30: grpc.UpdateManualReadyEvent - (*UpdateManualRestartNeededEvent)(nil), // 31: grpc.UpdateManualRestartNeededEvent - (*UpdateForceEvent)(nil), // 32: grpc.UpdateForceEvent - (*UpdateSilentRestartNeeded)(nil), // 33: grpc.UpdateSilentRestartNeeded - (*UpdateIsLatestVersion)(nil), // 34: grpc.UpdateIsLatestVersion - (*UpdateCheckFinished)(nil), // 35: grpc.UpdateCheckFinished - (*CacheEvent)(nil), // 36: grpc.CacheEvent - (*CacheErrorEvent)(nil), // 37: grpc.CacheErrorEvent - (*CacheLocationChangeSuccessEvent)(nil), // 38: grpc.CacheLocationChangeSuccessEvent - (*ChangeLocalCacheFinishedEvent)(nil), // 39: grpc.ChangeLocalCacheFinishedEvent - (*IsCacheOnDiskEnabledChanged)(nil), // 40: grpc.IsCacheOnDiskEnabledChanged - (*DiskCachePathChanged)(nil), // 41: grpc.DiskCachePathChanged - (*MailSettingsEvent)(nil), // 42: grpc.MailSettingsEvent - (*MailSettingsErrorEvent)(nil), // 43: grpc.MailSettingsErrorEvent - (*UseSslForSmtpFinishedEvent)(nil), // 44: grpc.UseSslForSmtpFinishedEvent - (*ChangePortsFinishedEvent)(nil), // 45: grpc.ChangePortsFinishedEvent - (*KeychainEvent)(nil), // 46: grpc.KeychainEvent - (*ChangeKeychainFinishedEvent)(nil), // 47: grpc.ChangeKeychainFinishedEvent - (*HasNoKeychainEvent)(nil), // 48: grpc.HasNoKeychainEvent - (*RebuildKeychainEvent)(nil), // 49: grpc.RebuildKeychainEvent - (*MailEvent)(nil), // 50: grpc.MailEvent - (*NoActiveKeyForRecipientEvent)(nil), // 51: grpc.NoActiveKeyForRecipientEvent - (*AddressChangedEvent)(nil), // 52: grpc.AddressChangedEvent - (*AddressChangedLogoutEvent)(nil), // 53: grpc.AddressChangedLogoutEvent - (*ApiCertIssueEvent)(nil), // 54: grpc.ApiCertIssueEvent - (*UserEvent)(nil), // 55: grpc.UserEvent - (*ToggleSplitModeFinishedEvent)(nil), // 56: grpc.ToggleSplitModeFinishedEvent - (*UserDisconnectedEvent)(nil), // 57: grpc.UserDisconnectedEvent - (*UserChangedEvent)(nil), // 58: grpc.UserChangedEvent - (*emptypb.Empty)(nil), // 59: google.protobuf.Empty - (*wrapperspb.BoolValue)(nil), // 60: google.protobuf.BoolValue - (*wrapperspb.StringValue)(nil), // 61: google.protobuf.StringValue - (*wrapperspb.Int32Value)(nil), // 62: google.protobuf.Int32Value + (*EventStreamRequest)(nil), // 14: grpc.EventStreamRequest + (*StreamEvent)(nil), // 15: grpc.StreamEvent + (*AppEvent)(nil), // 16: grpc.AppEvent + (*InternetStatusEvent)(nil), // 17: grpc.InternetStatusEvent + (*ToggleAutostartFinishedEvent)(nil), // 18: grpc.ToggleAutostartFinishedEvent + (*ResetFinishedEvent)(nil), // 19: grpc.ResetFinishedEvent + (*ReportBugFinishedEvent)(nil), // 20: grpc.ReportBugFinishedEvent + (*ReportBugSuccessEvent)(nil), // 21: grpc.ReportBugSuccessEvent + (*ReportBugErrorEvent)(nil), // 22: grpc.ReportBugErrorEvent + (*ShowMainWindowEvent)(nil), // 23: grpc.ShowMainWindowEvent + (*LoginEvent)(nil), // 24: grpc.LoginEvent + (*LoginErrorEvent)(nil), // 25: grpc.LoginErrorEvent + (*LoginTfaRequestedEvent)(nil), // 26: grpc.LoginTfaRequestedEvent + (*LoginTwoPasswordsRequestedEvent)(nil), // 27: grpc.LoginTwoPasswordsRequestedEvent + (*LoginFinishedEvent)(nil), // 28: grpc.LoginFinishedEvent + (*UpdateEvent)(nil), // 29: grpc.UpdateEvent + (*UpdateErrorEvent)(nil), // 30: grpc.UpdateErrorEvent + (*UpdateManualReadyEvent)(nil), // 31: grpc.UpdateManualReadyEvent + (*UpdateManualRestartNeededEvent)(nil), // 32: grpc.UpdateManualRestartNeededEvent + (*UpdateForceEvent)(nil), // 33: grpc.UpdateForceEvent + (*UpdateSilentRestartNeeded)(nil), // 34: grpc.UpdateSilentRestartNeeded + (*UpdateIsLatestVersion)(nil), // 35: grpc.UpdateIsLatestVersion + (*UpdateCheckFinished)(nil), // 36: grpc.UpdateCheckFinished + (*CacheEvent)(nil), // 37: grpc.CacheEvent + (*CacheErrorEvent)(nil), // 38: grpc.CacheErrorEvent + (*CacheLocationChangeSuccessEvent)(nil), // 39: grpc.CacheLocationChangeSuccessEvent + (*ChangeLocalCacheFinishedEvent)(nil), // 40: grpc.ChangeLocalCacheFinishedEvent + (*IsCacheOnDiskEnabledChanged)(nil), // 41: grpc.IsCacheOnDiskEnabledChanged + (*DiskCachePathChanged)(nil), // 42: grpc.DiskCachePathChanged + (*MailSettingsEvent)(nil), // 43: grpc.MailSettingsEvent + (*MailSettingsErrorEvent)(nil), // 44: grpc.MailSettingsErrorEvent + (*UseSslForSmtpFinishedEvent)(nil), // 45: grpc.UseSslForSmtpFinishedEvent + (*ChangePortsFinishedEvent)(nil), // 46: grpc.ChangePortsFinishedEvent + (*KeychainEvent)(nil), // 47: grpc.KeychainEvent + (*ChangeKeychainFinishedEvent)(nil), // 48: grpc.ChangeKeychainFinishedEvent + (*HasNoKeychainEvent)(nil), // 49: grpc.HasNoKeychainEvent + (*RebuildKeychainEvent)(nil), // 50: grpc.RebuildKeychainEvent + (*MailEvent)(nil), // 51: grpc.MailEvent + (*NoActiveKeyForRecipientEvent)(nil), // 52: grpc.NoActiveKeyForRecipientEvent + (*AddressChangedEvent)(nil), // 53: grpc.AddressChangedEvent + (*AddressChangedLogoutEvent)(nil), // 54: grpc.AddressChangedLogoutEvent + (*ApiCertIssueEvent)(nil), // 55: grpc.ApiCertIssueEvent + (*UserEvent)(nil), // 56: grpc.UserEvent + (*ToggleSplitModeFinishedEvent)(nil), // 57: grpc.ToggleSplitModeFinishedEvent + (*UserDisconnectedEvent)(nil), // 58: grpc.UserDisconnectedEvent + (*UserChangedEvent)(nil), // 59: grpc.UserChangedEvent + (*emptypb.Empty)(nil), // 60: google.protobuf.Empty + (*wrapperspb.BoolValue)(nil), // 61: google.protobuf.BoolValue + (*wrapperspb.StringValue)(nil), // 62: google.protobuf.StringValue + (*wrapperspb.Int32Value)(nil), // 63: google.protobuf.Int32Value } var file_bridge_proto_depIdxs = []int32{ 10, // 0: grpc.UserListResponse.users:type_name -> grpc.User - 15, // 1: grpc.StreamEvent.app:type_name -> grpc.AppEvent - 23, // 2: grpc.StreamEvent.login:type_name -> grpc.LoginEvent - 28, // 3: grpc.StreamEvent.update:type_name -> grpc.UpdateEvent - 36, // 4: grpc.StreamEvent.cache:type_name -> grpc.CacheEvent - 42, // 5: grpc.StreamEvent.mailSettings:type_name -> grpc.MailSettingsEvent - 46, // 6: grpc.StreamEvent.keychain:type_name -> grpc.KeychainEvent - 50, // 7: grpc.StreamEvent.mail:type_name -> grpc.MailEvent - 55, // 8: grpc.StreamEvent.user:type_name -> grpc.UserEvent - 16, // 9: grpc.AppEvent.internetStatus:type_name -> grpc.InternetStatusEvent - 17, // 10: grpc.AppEvent.toggleAutostartFinished:type_name -> grpc.ToggleAutostartFinishedEvent - 18, // 11: grpc.AppEvent.resetFinished:type_name -> grpc.ResetFinishedEvent - 19, // 12: grpc.AppEvent.reportBugFinished:type_name -> grpc.ReportBugFinishedEvent - 20, // 13: grpc.AppEvent.reportBugSuccess:type_name -> grpc.ReportBugSuccessEvent - 21, // 14: grpc.AppEvent.reportBugError:type_name -> grpc.ReportBugErrorEvent - 22, // 15: grpc.AppEvent.showMainWindow:type_name -> grpc.ShowMainWindowEvent - 24, // 16: grpc.LoginEvent.error:type_name -> grpc.LoginErrorEvent - 25, // 17: grpc.LoginEvent.tfaRequested:type_name -> grpc.LoginTfaRequestedEvent - 26, // 18: grpc.LoginEvent.twoPasswordRequested:type_name -> grpc.LoginTwoPasswordsRequestedEvent - 27, // 19: grpc.LoginEvent.finished:type_name -> grpc.LoginFinishedEvent - 27, // 20: grpc.LoginEvent.alreadyLoggedIn:type_name -> grpc.LoginFinishedEvent + 16, // 1: grpc.StreamEvent.app:type_name -> grpc.AppEvent + 24, // 2: grpc.StreamEvent.login:type_name -> grpc.LoginEvent + 29, // 3: grpc.StreamEvent.update:type_name -> grpc.UpdateEvent + 37, // 4: grpc.StreamEvent.cache:type_name -> grpc.CacheEvent + 43, // 5: grpc.StreamEvent.mailSettings:type_name -> grpc.MailSettingsEvent + 47, // 6: grpc.StreamEvent.keychain:type_name -> grpc.KeychainEvent + 51, // 7: grpc.StreamEvent.mail:type_name -> grpc.MailEvent + 56, // 8: grpc.StreamEvent.user:type_name -> grpc.UserEvent + 17, // 9: grpc.AppEvent.internetStatus:type_name -> grpc.InternetStatusEvent + 18, // 10: grpc.AppEvent.toggleAutostartFinished:type_name -> grpc.ToggleAutostartFinishedEvent + 19, // 11: grpc.AppEvent.resetFinished:type_name -> grpc.ResetFinishedEvent + 20, // 12: grpc.AppEvent.reportBugFinished:type_name -> grpc.ReportBugFinishedEvent + 21, // 13: grpc.AppEvent.reportBugSuccess:type_name -> grpc.ReportBugSuccessEvent + 22, // 14: grpc.AppEvent.reportBugError:type_name -> grpc.ReportBugErrorEvent + 23, // 15: grpc.AppEvent.showMainWindow:type_name -> grpc.ShowMainWindowEvent + 25, // 16: grpc.LoginEvent.error:type_name -> grpc.LoginErrorEvent + 26, // 17: grpc.LoginEvent.tfaRequested:type_name -> grpc.LoginTfaRequestedEvent + 27, // 18: grpc.LoginEvent.twoPasswordRequested:type_name -> grpc.LoginTwoPasswordsRequestedEvent + 28, // 19: grpc.LoginEvent.finished:type_name -> grpc.LoginFinishedEvent + 28, // 20: grpc.LoginEvent.alreadyLoggedIn:type_name -> grpc.LoginFinishedEvent 0, // 21: grpc.LoginErrorEvent.type:type_name -> grpc.LoginErrorType - 29, // 22: grpc.UpdateEvent.error:type_name -> grpc.UpdateErrorEvent - 30, // 23: grpc.UpdateEvent.manualReady:type_name -> grpc.UpdateManualReadyEvent - 31, // 24: grpc.UpdateEvent.manualRestartNeeded:type_name -> grpc.UpdateManualRestartNeededEvent - 32, // 25: grpc.UpdateEvent.force:type_name -> grpc.UpdateForceEvent - 33, // 26: grpc.UpdateEvent.silentRestartNeeded:type_name -> grpc.UpdateSilentRestartNeeded - 34, // 27: grpc.UpdateEvent.isLatestVersion:type_name -> grpc.UpdateIsLatestVersion - 35, // 28: grpc.UpdateEvent.checkFinished:type_name -> grpc.UpdateCheckFinished + 30, // 22: grpc.UpdateEvent.error:type_name -> grpc.UpdateErrorEvent + 31, // 23: grpc.UpdateEvent.manualReady:type_name -> grpc.UpdateManualReadyEvent + 32, // 24: grpc.UpdateEvent.manualRestartNeeded:type_name -> grpc.UpdateManualRestartNeededEvent + 33, // 25: grpc.UpdateEvent.force:type_name -> grpc.UpdateForceEvent + 34, // 26: grpc.UpdateEvent.silentRestartNeeded:type_name -> grpc.UpdateSilentRestartNeeded + 35, // 27: grpc.UpdateEvent.isLatestVersion:type_name -> grpc.UpdateIsLatestVersion + 36, // 28: grpc.UpdateEvent.checkFinished:type_name -> grpc.UpdateCheckFinished 1, // 29: grpc.UpdateErrorEvent.type:type_name -> grpc.UpdateErrorType - 37, // 30: grpc.CacheEvent.error:type_name -> grpc.CacheErrorEvent - 38, // 31: grpc.CacheEvent.locationChangedSuccess:type_name -> grpc.CacheLocationChangeSuccessEvent - 39, // 32: grpc.CacheEvent.changeLocalCacheFinished:type_name -> grpc.ChangeLocalCacheFinishedEvent - 40, // 33: grpc.CacheEvent.isCacheOnDiskEnabledChanged:type_name -> grpc.IsCacheOnDiskEnabledChanged - 41, // 34: grpc.CacheEvent.diskCachePathChanged:type_name -> grpc.DiskCachePathChanged + 38, // 30: grpc.CacheEvent.error:type_name -> grpc.CacheErrorEvent + 39, // 31: grpc.CacheEvent.locationChangedSuccess:type_name -> grpc.CacheLocationChangeSuccessEvent + 40, // 32: grpc.CacheEvent.changeLocalCacheFinished:type_name -> grpc.ChangeLocalCacheFinishedEvent + 41, // 33: grpc.CacheEvent.isCacheOnDiskEnabledChanged:type_name -> grpc.IsCacheOnDiskEnabledChanged + 42, // 34: grpc.CacheEvent.diskCachePathChanged:type_name -> grpc.DiskCachePathChanged 2, // 35: grpc.CacheErrorEvent.type:type_name -> grpc.CacheErrorType - 43, // 36: grpc.MailSettingsEvent.error:type_name -> grpc.MailSettingsErrorEvent - 44, // 37: grpc.MailSettingsEvent.useSslForSmtpFinished:type_name -> grpc.UseSslForSmtpFinishedEvent - 45, // 38: grpc.MailSettingsEvent.changePortsFinished:type_name -> grpc.ChangePortsFinishedEvent + 44, // 36: grpc.MailSettingsEvent.error:type_name -> grpc.MailSettingsErrorEvent + 45, // 37: grpc.MailSettingsEvent.useSslForSmtpFinished:type_name -> grpc.UseSslForSmtpFinishedEvent + 46, // 38: grpc.MailSettingsEvent.changePortsFinished:type_name -> grpc.ChangePortsFinishedEvent 3, // 39: grpc.MailSettingsErrorEvent.type:type_name -> grpc.MailSettingsErrorType - 47, // 40: grpc.KeychainEvent.changeKeychainFinished:type_name -> grpc.ChangeKeychainFinishedEvent - 48, // 41: grpc.KeychainEvent.hasNoKeychain:type_name -> grpc.HasNoKeychainEvent - 49, // 42: grpc.KeychainEvent.rebuildKeychain:type_name -> grpc.RebuildKeychainEvent - 51, // 43: grpc.MailEvent.noActiveKeyForRecipientEvent:type_name -> grpc.NoActiveKeyForRecipientEvent - 52, // 44: grpc.MailEvent.addressChanged:type_name -> grpc.AddressChangedEvent - 53, // 45: grpc.MailEvent.addressChangedLogout:type_name -> grpc.AddressChangedLogoutEvent - 54, // 46: grpc.MailEvent.apiCertIssue:type_name -> grpc.ApiCertIssueEvent - 56, // 47: grpc.UserEvent.toggleSplitModeFinished:type_name -> grpc.ToggleSplitModeFinishedEvent - 57, // 48: grpc.UserEvent.userDisconnected:type_name -> grpc.UserDisconnectedEvent - 58, // 49: grpc.UserEvent.userChanged:type_name -> grpc.UserChangedEvent - 59, // 50: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty - 59, // 51: grpc.Bridge.Quit:input_type -> google.protobuf.Empty - 59, // 52: grpc.Bridge.Restart:input_type -> google.protobuf.Empty - 59, // 53: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty - 59, // 54: grpc.Bridge.ShowSplashScreen:input_type -> google.protobuf.Empty - 59, // 55: grpc.Bridge.IsFirstGuiStart:input_type -> google.protobuf.Empty - 60, // 56: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue - 59, // 57: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty - 60, // 58: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue - 59, // 59: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty - 59, // 60: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty - 59, // 61: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty - 59, // 62: grpc.Bridge.Version:input_type -> google.protobuf.Empty - 59, // 63: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty - 59, // 64: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty - 59, // 65: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty - 61, // 66: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue - 59, // 67: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty - 59, // 68: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty + 48, // 40: grpc.KeychainEvent.changeKeychainFinished:type_name -> grpc.ChangeKeychainFinishedEvent + 49, // 41: grpc.KeychainEvent.hasNoKeychain:type_name -> grpc.HasNoKeychainEvent + 50, // 42: grpc.KeychainEvent.rebuildKeychain:type_name -> grpc.RebuildKeychainEvent + 52, // 43: grpc.MailEvent.noActiveKeyForRecipientEvent:type_name -> grpc.NoActiveKeyForRecipientEvent + 53, // 44: grpc.MailEvent.addressChanged:type_name -> grpc.AddressChangedEvent + 54, // 45: grpc.MailEvent.addressChangedLogout:type_name -> grpc.AddressChangedLogoutEvent + 55, // 46: grpc.MailEvent.apiCertIssue:type_name -> grpc.ApiCertIssueEvent + 57, // 47: grpc.UserEvent.toggleSplitModeFinished:type_name -> grpc.ToggleSplitModeFinishedEvent + 58, // 48: grpc.UserEvent.userDisconnected:type_name -> grpc.UserDisconnectedEvent + 59, // 49: grpc.UserEvent.userChanged:type_name -> grpc.UserChangedEvent + 60, // 50: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty + 60, // 51: grpc.Bridge.Quit:input_type -> google.protobuf.Empty + 60, // 52: grpc.Bridge.Restart:input_type -> google.protobuf.Empty + 60, // 53: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty + 60, // 54: grpc.Bridge.ShowSplashScreen:input_type -> google.protobuf.Empty + 60, // 55: grpc.Bridge.IsFirstGuiStart:input_type -> google.protobuf.Empty + 61, // 56: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue + 60, // 57: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty + 61, // 58: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue + 60, // 59: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty + 60, // 60: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty + 60, // 61: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty + 60, // 62: grpc.Bridge.Version:input_type -> google.protobuf.Empty + 60, // 63: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty + 60, // 64: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty + 60, // 65: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty + 62, // 66: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue + 60, // 67: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty + 60, // 68: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty 4, // 69: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest 5, // 70: grpc.Bridge.Login:input_type -> grpc.LoginRequest 5, // 71: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest 5, // 72: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest 6, // 73: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest - 59, // 74: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty - 59, // 75: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty - 60, // 76: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue - 59, // 77: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty - 59, // 78: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty - 59, // 79: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty + 60, // 74: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty + 60, // 75: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty + 61, // 76: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue + 60, // 77: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty + 60, // 78: grpc.Bridge.IsCacheOnDiskEnabled:input_type -> google.protobuf.Empty + 60, // 79: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty 7, // 80: grpc.Bridge.ChangeLocalCache:input_type -> grpc.ChangeLocalCacheRequest - 60, // 81: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue - 59, // 82: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty - 60, // 83: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue - 59, // 84: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty - 59, // 85: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty - 59, // 86: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty - 59, // 87: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty + 61, // 81: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue + 60, // 82: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty + 61, // 83: grpc.Bridge.SetUseSslForSmtp:input_type -> google.protobuf.BoolValue + 60, // 84: grpc.Bridge.UseSslForSmtp:input_type -> google.protobuf.Empty + 60, // 85: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty + 60, // 86: grpc.Bridge.ImapPort:input_type -> google.protobuf.Empty + 60, // 87: grpc.Bridge.SmtpPort:input_type -> google.protobuf.Empty 8, // 88: grpc.Bridge.ChangePorts:input_type -> grpc.ChangePortsRequest - 62, // 89: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value - 59, // 90: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty - 61, // 91: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue - 59, // 92: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty - 59, // 93: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty - 61, // 94: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue + 63, // 89: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value + 60, // 90: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty + 62, // 91: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue + 60, // 92: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty + 60, // 93: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty + 62, // 94: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue 11, // 95: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest - 61, // 96: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue - 61, // 97: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue + 62, // 96: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue + 62, // 97: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue 13, // 98: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest - 59, // 99: grpc.Bridge.StartEventStream:input_type -> google.protobuf.Empty - 59, // 100: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty - 59, // 101: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty - 59, // 102: grpc.Bridge.Quit:output_type -> google.protobuf.Empty - 59, // 103: grpc.Bridge.Restart:output_type -> google.protobuf.Empty - 60, // 104: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue - 60, // 105: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue - 60, // 106: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue - 59, // 107: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty - 60, // 108: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue - 59, // 109: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty - 60, // 110: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue - 61, // 111: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue - 59, // 112: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty - 61, // 113: grpc.Bridge.Version:output_type -> google.protobuf.StringValue - 61, // 114: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue - 61, // 115: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue - 61, // 116: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue - 59, // 117: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty - 61, // 118: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue - 61, // 119: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue - 59, // 120: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty - 59, // 121: grpc.Bridge.Login:output_type -> google.protobuf.Empty - 59, // 122: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty - 59, // 123: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty - 59, // 124: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty - 59, // 125: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty - 59, // 126: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty - 59, // 127: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty - 60, // 128: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue - 60, // 129: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue - 61, // 130: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue - 59, // 131: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty - 59, // 132: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty - 60, // 133: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue - 59, // 134: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty - 60, // 135: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue - 61, // 136: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue - 62, // 137: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value - 62, // 138: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value - 59, // 139: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty - 60, // 140: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue + 14, // 99: grpc.Bridge.StartEventStream:input_type -> grpc.EventStreamRequest + 60, // 100: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty + 60, // 101: grpc.Bridge.GuiReady:output_type -> google.protobuf.Empty + 60, // 102: grpc.Bridge.Quit:output_type -> google.protobuf.Empty + 60, // 103: grpc.Bridge.Restart:output_type -> google.protobuf.Empty + 61, // 104: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue + 61, // 105: grpc.Bridge.ShowSplashScreen:output_type -> google.protobuf.BoolValue + 61, // 106: grpc.Bridge.IsFirstGuiStart:output_type -> google.protobuf.BoolValue + 60, // 107: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty + 61, // 108: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue + 60, // 109: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty + 61, // 110: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue + 62, // 111: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue + 60, // 112: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty + 62, // 113: grpc.Bridge.Version:output_type -> google.protobuf.StringValue + 62, // 114: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue + 62, // 115: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue + 62, // 116: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue + 60, // 117: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty + 62, // 118: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue + 62, // 119: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue + 60, // 120: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty + 60, // 121: grpc.Bridge.Login:output_type -> google.protobuf.Empty + 60, // 122: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty + 60, // 123: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty + 60, // 124: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty + 60, // 125: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty + 60, // 126: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty + 60, // 127: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty + 61, // 128: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue + 61, // 129: grpc.Bridge.IsCacheOnDiskEnabled:output_type -> google.protobuf.BoolValue + 62, // 130: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue + 60, // 131: grpc.Bridge.ChangeLocalCache:output_type -> google.protobuf.Empty + 60, // 132: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty + 61, // 133: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue + 60, // 134: grpc.Bridge.SetUseSslForSmtp:output_type -> google.protobuf.Empty + 61, // 135: grpc.Bridge.UseSslForSmtp:output_type -> google.protobuf.BoolValue + 62, // 136: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue + 63, // 137: grpc.Bridge.ImapPort:output_type -> google.protobuf.Int32Value + 63, // 138: grpc.Bridge.SmtpPort:output_type -> google.protobuf.Int32Value + 60, // 139: grpc.Bridge.ChangePorts:output_type -> google.protobuf.Empty + 61, // 140: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue 9, // 141: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse - 59, // 142: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty - 61, // 143: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue + 60, // 142: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty + 62, // 143: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue 12, // 144: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse 10, // 145: grpc.Bridge.GetUser:output_type -> grpc.User - 59, // 146: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty - 59, // 147: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty - 59, // 148: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty - 59, // 149: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty - 14, // 150: grpc.Bridge.StartEventStream:output_type -> grpc.StreamEvent - 59, // 151: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty + 60, // 146: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty + 60, // 147: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty + 60, // 148: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty + 60, // 149: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty + 15, // 150: grpc.Bridge.StartEventStream:output_type -> grpc.StreamEvent + 60, // 151: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty 101, // [101:152] is the sub-list for method output_type 50, // [50:101] is the sub-list for method input_type 50, // [50:50] is the sub-list for extension type_name @@ -4503,7 +4572,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamEvent); i { + switch v := v.(*EventStreamRequest); i { case 0: return &v.state case 1: @@ -4515,7 +4584,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppEvent); i { + switch v := v.(*StreamEvent); i { case 0: return &v.state case 1: @@ -4527,7 +4596,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InternetStatusEvent); i { + switch v := v.(*AppEvent); i { case 0: return &v.state case 1: @@ -4539,7 +4608,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ToggleAutostartFinishedEvent); i { + switch v := v.(*InternetStatusEvent); i { case 0: return &v.state case 1: @@ -4551,7 +4620,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResetFinishedEvent); i { + switch v := v.(*ToggleAutostartFinishedEvent); i { case 0: return &v.state case 1: @@ -4563,7 +4632,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportBugFinishedEvent); i { + switch v := v.(*ResetFinishedEvent); i { case 0: return &v.state case 1: @@ -4575,7 +4644,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportBugSuccessEvent); i { + switch v := v.(*ReportBugFinishedEvent); i { case 0: return &v.state case 1: @@ -4587,7 +4656,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReportBugErrorEvent); i { + switch v := v.(*ReportBugSuccessEvent); i { case 0: return &v.state case 1: @@ -4599,7 +4668,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ShowMainWindowEvent); i { + switch v := v.(*ReportBugErrorEvent); i { case 0: return &v.state case 1: @@ -4611,7 +4680,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginEvent); i { + switch v := v.(*ShowMainWindowEvent); i { case 0: return &v.state case 1: @@ -4623,7 +4692,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginErrorEvent); i { + switch v := v.(*LoginEvent); i { case 0: return &v.state case 1: @@ -4635,7 +4704,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginTfaRequestedEvent); i { + switch v := v.(*LoginErrorEvent); i { case 0: return &v.state case 1: @@ -4647,7 +4716,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginTwoPasswordsRequestedEvent); i { + switch v := v.(*LoginTfaRequestedEvent); i { case 0: return &v.state case 1: @@ -4659,7 +4728,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LoginFinishedEvent); i { + switch v := v.(*LoginTwoPasswordsRequestedEvent); i { case 0: return &v.state case 1: @@ -4671,7 +4740,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateEvent); i { + switch v := v.(*LoginFinishedEvent); i { case 0: return &v.state case 1: @@ -4683,7 +4752,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateErrorEvent); i { + switch v := v.(*UpdateEvent); i { case 0: return &v.state case 1: @@ -4695,7 +4764,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateManualReadyEvent); i { + switch v := v.(*UpdateErrorEvent); i { case 0: return &v.state case 1: @@ -4707,7 +4776,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateManualRestartNeededEvent); i { + switch v := v.(*UpdateManualReadyEvent); i { case 0: return &v.state case 1: @@ -4719,7 +4788,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateForceEvent); i { + switch v := v.(*UpdateManualRestartNeededEvent); i { case 0: return &v.state case 1: @@ -4731,7 +4800,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSilentRestartNeeded); i { + switch v := v.(*UpdateForceEvent); i { case 0: return &v.state case 1: @@ -4743,7 +4812,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateIsLatestVersion); i { + switch v := v.(*UpdateSilentRestartNeeded); i { case 0: return &v.state case 1: @@ -4755,7 +4824,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateCheckFinished); i { + switch v := v.(*UpdateIsLatestVersion); i { case 0: return &v.state case 1: @@ -4767,7 +4836,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheEvent); i { + switch v := v.(*UpdateCheckFinished); i { case 0: return &v.state case 1: @@ -4779,7 +4848,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheErrorEvent); i { + switch v := v.(*CacheEvent); i { case 0: return &v.state case 1: @@ -4791,7 +4860,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheLocationChangeSuccessEvent); i { + switch v := v.(*CacheErrorEvent); i { case 0: return &v.state case 1: @@ -4803,7 +4872,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeLocalCacheFinishedEvent); i { + switch v := v.(*CacheLocationChangeSuccessEvent); i { case 0: return &v.state case 1: @@ -4815,7 +4884,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsCacheOnDiskEnabledChanged); i { + switch v := v.(*ChangeLocalCacheFinishedEvent); i { case 0: return &v.state case 1: @@ -4827,7 +4896,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskCachePathChanged); i { + switch v := v.(*IsCacheOnDiskEnabledChanged); i { case 0: return &v.state case 1: @@ -4839,7 +4908,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailSettingsEvent); i { + switch v := v.(*DiskCachePathChanged); i { case 0: return &v.state case 1: @@ -4851,7 +4920,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailSettingsErrorEvent); i { + switch v := v.(*MailSettingsEvent); i { case 0: return &v.state case 1: @@ -4863,7 +4932,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UseSslForSmtpFinishedEvent); i { + switch v := v.(*MailSettingsErrorEvent); i { case 0: return &v.state case 1: @@ -4875,7 +4944,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangePortsFinishedEvent); i { + switch v := v.(*UseSslForSmtpFinishedEvent); i { case 0: return &v.state case 1: @@ -4887,7 +4956,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KeychainEvent); i { + switch v := v.(*ChangePortsFinishedEvent); i { case 0: return &v.state case 1: @@ -4899,7 +4968,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChangeKeychainFinishedEvent); i { + switch v := v.(*KeychainEvent); i { case 0: return &v.state case 1: @@ -4911,7 +4980,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HasNoKeychainEvent); i { + switch v := v.(*ChangeKeychainFinishedEvent); i { case 0: return &v.state case 1: @@ -4923,7 +4992,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RebuildKeychainEvent); i { + switch v := v.(*HasNoKeychainEvent); i { case 0: return &v.state case 1: @@ -4935,7 +5004,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MailEvent); i { + switch v := v.(*RebuildKeychainEvent); i { case 0: return &v.state case 1: @@ -4947,7 +5016,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NoActiveKeyForRecipientEvent); i { + switch v := v.(*MailEvent); i { case 0: return &v.state case 1: @@ -4959,7 +5028,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressChangedEvent); i { + switch v := v.(*NoActiveKeyForRecipientEvent); i { case 0: return &v.state case 1: @@ -4971,7 +5040,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddressChangedLogoutEvent); i { + switch v := v.(*AddressChangedEvent); i { case 0: return &v.state case 1: @@ -4983,7 +5052,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApiCertIssueEvent); i { + switch v := v.(*AddressChangedLogoutEvent); i { case 0: return &v.state case 1: @@ -4995,7 +5064,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserEvent); i { + switch v := v.(*ApiCertIssueEvent); i { case 0: return &v.state case 1: @@ -5007,7 +5076,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ToggleSplitModeFinishedEvent); i { + switch v := v.(*UserEvent); i { case 0: return &v.state case 1: @@ -5019,7 +5088,7 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserDisconnectedEvent); i { + switch v := v.(*ToggleSplitModeFinishedEvent); i { case 0: return &v.state case 1: @@ -5031,6 +5100,18 @@ func file_bridge_proto_init() { } } file_bridge_proto_msgTypes[54].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[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserChangedEvent); i { case 0: return &v.state @@ -5043,7 +5124,7 @@ func file_bridge_proto_init() { } } } - file_bridge_proto_msgTypes[10].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[11].OneofWrappers = []interface{}{ (*StreamEvent_App)(nil), (*StreamEvent_Login)(nil), (*StreamEvent_Update)(nil), @@ -5053,7 +5134,7 @@ func file_bridge_proto_init() { (*StreamEvent_Mail)(nil), (*StreamEvent_User)(nil), } - file_bridge_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[12].OneofWrappers = []interface{}{ (*AppEvent_InternetStatus)(nil), (*AppEvent_ToggleAutostartFinished)(nil), (*AppEvent_ResetFinished)(nil), @@ -5062,14 +5143,14 @@ func file_bridge_proto_init() { (*AppEvent_ReportBugError)(nil), (*AppEvent_ShowMainWindow)(nil), } - file_bridge_proto_msgTypes[19].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[20].OneofWrappers = []interface{}{ (*LoginEvent_Error)(nil), (*LoginEvent_TfaRequested)(nil), (*LoginEvent_TwoPasswordRequested)(nil), (*LoginEvent_Finished)(nil), (*LoginEvent_AlreadyLoggedIn)(nil), } - file_bridge_proto_msgTypes[24].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[25].OneofWrappers = []interface{}{ (*UpdateEvent_Error)(nil), (*UpdateEvent_ManualReady)(nil), (*UpdateEvent_ManualRestartNeeded)(nil), @@ -5078,30 +5159,30 @@ func file_bridge_proto_init() { (*UpdateEvent_IsLatestVersion)(nil), (*UpdateEvent_CheckFinished)(nil), } - file_bridge_proto_msgTypes[32].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[33].OneofWrappers = []interface{}{ (*CacheEvent_Error)(nil), (*CacheEvent_LocationChangedSuccess)(nil), (*CacheEvent_ChangeLocalCacheFinished)(nil), (*CacheEvent_IsCacheOnDiskEnabledChanged)(nil), (*CacheEvent_DiskCachePathChanged)(nil), } - file_bridge_proto_msgTypes[38].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[39].OneofWrappers = []interface{}{ (*MailSettingsEvent_Error)(nil), (*MailSettingsEvent_UseSslForSmtpFinished)(nil), (*MailSettingsEvent_ChangePortsFinished)(nil), } - file_bridge_proto_msgTypes[42].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[43].OneofWrappers = []interface{}{ (*KeychainEvent_ChangeKeychainFinished)(nil), (*KeychainEvent_HasNoKeychain)(nil), (*KeychainEvent_RebuildKeychain)(nil), } - file_bridge_proto_msgTypes[46].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[47].OneofWrappers = []interface{}{ (*MailEvent_NoActiveKeyForRecipientEvent)(nil), (*MailEvent_AddressChanged)(nil), (*MailEvent_AddressChangedLogout)(nil), (*MailEvent_ApiCertIssue)(nil), } - file_bridge_proto_msgTypes[51].OneofWrappers = []interface{}{ + file_bridge_proto_msgTypes[52].OneofWrappers = []interface{}{ (*UserEvent_ToggleSplitModeFinished)(nil), (*UserEvent_UserDisconnected)(nil), (*UserEvent_UserChanged)(nil), @@ -5112,7 +5193,7 @@ func file_bridge_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bridge_proto_rawDesc, NumEnums: 4, - NumMessages: 55, + NumMessages: 56, NumExtensions: 0, NumServices: 1, }, diff --git a/internal/frontend/grpc/bridge.proto b/internal/frontend/grpc/bridge.proto index 066e0d34..83f269e8 100644 --- a/internal/frontend/grpc/bridge.proto +++ b/internal/frontend/grpc/bridge.proto @@ -95,7 +95,7 @@ service Bridge { rpc ConfigureUserAppleMail(ConfigureAppleMailRequest) returns (google.protobuf.Empty); // Server -> Client event stream - rpc StartEventStream(google.protobuf.Empty) returns (stream StreamEvent); // Keep streaming until StopEventStream is called. + rpc StartEventStream(EventStreamRequest) returns (stream StreamEvent); // Keep streaming until StopEventStream is called. rpc StopEventStream(google.protobuf.Empty) returns (google.protobuf.Empty); } @@ -104,10 +104,12 @@ service Bridge { //********************************************************************************************************************** message ReportBugRequest { - string description = 1; - string address = 2; - string emailClient = 3; - bool includeLogs = 4; + string osType = 1; + string osVersion = 2; + string description = 3; + string address = 4; + string emailClient = 5; + bool includeLogs = 6; } @@ -178,6 +180,11 @@ message ConfigureAppleMailRequest { //********************************************************************************************************************** // Event stream messages //********************************************************************************************************************** + +message EventStreamRequest { + string ClientPlatform = 1; +} + message StreamEvent { oneof event { AppEvent app = 1; diff --git a/internal/frontend/grpc/bridge_grpc.pb.go b/internal/frontend/grpc/bridge_grpc.pb.go index e2b0688a..5dbf1a21 100644 --- a/internal/frontend/grpc/bridge_grpc.pb.go +++ b/internal/frontend/grpc/bridge_grpc.pb.go @@ -83,7 +83,7 @@ type BridgeClient interface { RemoveUser(ctx context.Context, in *wrapperspb.StringValue, opts ...grpc.CallOption) (*emptypb.Empty, error) ConfigureUserAppleMail(ctx context.Context, in *ConfigureAppleMailRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) // Server -> Client event stream - StartEventStream(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (Bridge_StartEventStreamClient, error) + StartEventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (Bridge_StartEventStreamClient, error) StopEventStream(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) } @@ -536,7 +536,7 @@ func (c *bridgeClient) ConfigureUserAppleMail(ctx context.Context, in *Configure return out, nil } -func (c *bridgeClient) StartEventStream(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (Bridge_StartEventStreamClient, error) { +func (c *bridgeClient) StartEventStream(ctx context.Context, in *EventStreamRequest, opts ...grpc.CallOption) (Bridge_StartEventStreamClient, error) { stream, err := c.cc.NewStream(ctx, &Bridge_ServiceDesc.Streams[0], "/grpc.Bridge/StartEventStream", opts...) if err != nil { return nil, err @@ -640,7 +640,7 @@ type BridgeServer interface { RemoveUser(context.Context, *wrapperspb.StringValue) (*emptypb.Empty, error) ConfigureUserAppleMail(context.Context, *ConfigureAppleMailRequest) (*emptypb.Empty, error) // Server -> Client event stream - StartEventStream(*emptypb.Empty, Bridge_StartEventStreamServer) error + StartEventStream(*EventStreamRequest, Bridge_StartEventStreamServer) error StopEventStream(context.Context, *emptypb.Empty) (*emptypb.Empty, error) mustEmbedUnimplementedBridgeServer() } @@ -796,7 +796,7 @@ func (UnimplementedBridgeServer) RemoveUser(context.Context, *wrapperspb.StringV func (UnimplementedBridgeServer) ConfigureUserAppleMail(context.Context, *ConfigureAppleMailRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method ConfigureUserAppleMail not implemented") } -func (UnimplementedBridgeServer) StartEventStream(*emptypb.Empty, Bridge_StartEventStreamServer) error { +func (UnimplementedBridgeServer) StartEventStream(*EventStreamRequest, Bridge_StartEventStreamServer) error { return status.Errorf(codes.Unimplemented, "method StartEventStream not implemented") } func (UnimplementedBridgeServer) StopEventStream(context.Context, *emptypb.Empty) (*emptypb.Empty, error) { @@ -1698,7 +1698,7 @@ func _Bridge_ConfigureUserAppleMail_Handler(srv interface{}, ctx context.Context } func _Bridge_StartEventStream_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(emptypb.Empty) + m := new(EventStreamRequest) if err := stream.RecvMsg(m); err != nil { return err } diff --git a/internal/frontend/grpc/service.go b/internal/frontend/grpc/service.go index d3400d2a..f6fd04e2 100644 --- a/internal/frontend/grpc/service.go +++ b/internal/frontend/grpc/service.go @@ -22,7 +22,6 @@ package grpc import ( cryptotls "crypto/tls" "net" - "runtime" "strings" "sync" "time" @@ -112,7 +111,6 @@ func NewService( firstTimeAutostart: sync.Once{}, } - s.userAgent.SetPlatform(runtime.GOOS) // TO-DO GODT-1672 In the previous Qt frontend, this routine used QSysInfo::PrettyProductName to return a more accurate description, e.g. "Windows 10" or "MacOS 10.12" config, err := tls.GetConfig() config.ClientAuth = cryptotls.NoClientCert // skip client auth if the certificate allow it. if err != nil { diff --git a/internal/frontend/grpc/service_methods.go b/internal/frontend/grpc/service_methods.go index 6cdf2beb..3e92e6a8 100644 --- a/internal/frontend/grpc/service_methods.go +++ b/internal/frontend/grpc/service_methods.go @@ -30,6 +30,7 @@ import ( "github.com/ProtonMail/proton-bridge/v2/pkg/keychain" "github.com/ProtonMail/proton-bridge/v2/pkg/pmapi" "github.com/ProtonMail/proton-bridge/v2/pkg/ports" + "github.com/sirupsen/logrus" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" @@ -218,11 +219,35 @@ func (s *Service) CurrentEmailClient(context.Context, *emptypb.Empty) (*wrappers } func (s *Service) ReportBug(_ context.Context, report *ReportBugRequest) (*emptypb.Empty, error) { - s.log.WithField("description", report.Description). - WithField("address", report.Address). - WithField("emailClient", report.EmailClient). - WithField("includeLogs", report.IncludeLogs). - Info("ReportBug") + s.log.WithFields(logrus.Fields{ + "osType": report.OsType, + "osVersion": report.OsVersion, + "description": report.Description, + "address": report.Address, + "emailClient": report.EmailClient, + "includeLogs": report.IncludeLogs, + }).Info("ReportBug") + + go func() { + defer func() { _ = s.SendEvent(NewReportBugFinishedEvent()) }() + + if err := s.bridge.ReportBug( + report.OsType, + report.OsVersion, + report.Description, + report.Address, + report.Address, + report.EmailClient, + report.IncludeLogs, + ); err != nil { + s.log.WithError(err).Error("Failed to report bug") + _ = s.SendEvent(NewReportBugErrorEvent()) + return + } + + _ = s.SendEvent(NewReportBugSuccessEvent()) + }() + return &emptypb.Empty{}, nil } diff --git a/internal/frontend/grpc/service_stream.go b/internal/frontend/grpc/service_stream.go index 8df66f13..645fba96 100644 --- a/internal/frontend/grpc/service_stream.go +++ b/internal/frontend/grpc/service_stream.go @@ -27,13 +27,15 @@ import ( ) // StartEventStream implement the gRPC server->Client event stream. -func (s *Service) StartEventStream(_ *emptypb.Empty, server Bridge_StartEventStreamServer) error { +func (s *Service) StartEventStream(request *EventStreamRequest, server Bridge_StartEventStreamServer) error { s.log.Info("Starting Event stream") if s.eventStreamCh != nil { return status.Errorf(codes.AlreadyExists, "the service is already streaming") // TO-DO GODT-1667 decide if we want to kill the existing stream. } + s.userAgent.SetPlatform(request.ClientPlatform) + s.eventStreamCh = make(chan *StreamEvent) s.eventStreamDoneCh = make(chan struct{})