diff --git a/go.mod b/go.mod
index 06393d87..e01a6075 100644
--- a/go.mod
+++ b/go.mod
@@ -7,7 +7,7 @@ require (
github.com/Masterminds/semver/v3 v3.1.1
github.com/ProtonMail/gluon v0.14.2-0.20230130104154-2c64e59b8f54
github.com/ProtonMail/go-autostart v0.0.0-20210130080809-00ed301c8e9a
- github.com/ProtonMail/go-proton-api v0.3.1-0.20230130093944-dd1190680368
+ github.com/ProtonMail/go-proton-api v0.3.1-0.20230130144605-4b05f1e5c427
github.com/ProtonMail/go-rfc5322 v0.11.0
github.com/ProtonMail/gopenpgp/v2 v2.4.10
github.com/PuerkitoBio/goquery v1.8.0
diff --git a/go.sum b/go.sum
index 7ed408bd..3e164c8b 100644
--- a/go.sum
+++ b/go.sum
@@ -41,8 +41,8 @@ github.com/ProtonMail/go-message v0.0.0-20210611055058-fabeff2ec753/go.mod h1:NB
github.com/ProtonMail/go-mime v0.0.0-20220302105931-303f85f7fe0f/go.mod h1:NYt+V3/4rEeDuaev/zw1zCq8uqVEuPHzDPo3OZrlGJ4=
github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f h1:4IWzKjHzZxdrW9k4zl/qCwenOVHDbVDADPPHFLjs0Oc=
github.com/ProtonMail/go-mime v0.0.0-20220429130430-2192574d760f/go.mod h1:qRZgbeASl2a9OwmsV85aWwRqic0NHPh+9ewGAzb4cgM=
-github.com/ProtonMail/go-proton-api v0.3.1-0.20230130093944-dd1190680368 h1:XWPaCK8ctgpvI+ZAYcsFiYWbuvkv3T4+WZq0o6Gnt2s=
-github.com/ProtonMail/go-proton-api v0.3.1-0.20230130093944-dd1190680368/go.mod h1:JUo5IQG0hNuPRuDpOUsCOvtee6UjTEHHF1QN2i8RSos=
+github.com/ProtonMail/go-proton-api v0.3.1-0.20230130144605-4b05f1e5c427 h1:M/sTrpruuxBtkeVFPoMd9WM2Kg36XlCTvYuv4q0urkg=
+github.com/ProtonMail/go-proton-api v0.3.1-0.20230130144605-4b05f1e5c427/go.mod h1:JUo5IQG0hNuPRuDpOUsCOvtee6UjTEHHF1QN2i8RSos=
github.com/ProtonMail/go-rfc5322 v0.11.0 h1:o5Obrm4DpmQEffvgsVqG6S4BKwC1Wat+hYwjIp2YcCY=
github.com/ProtonMail/go-rfc5322 v0.11.0/go.mod h1:6oOKr0jXvpoE6pwTx/HukigQpX2J9WUf6h0auplrFTw=
github.com/ProtonMail/go-srp v0.0.5 h1:xhUioxZgDbCnpo9JehyFhwwsn9JLWkUGfB0oiKXgiGg=
diff --git a/internal/events/user.go b/internal/events/user.go
index 216069f6..cbcf5a72 100644
--- a/internal/events/user.go
+++ b/internal/events/user.go
@@ -156,3 +156,16 @@ type AddressModeChanged struct {
func (event AddressModeChanged) String() string {
return fmt.Sprintf("AddressModeChanged: UserID: %s, AddressMode: %s", event.UserID, event.AddressMode)
}
+
+// UsedSpaceChanged is emitted when the storage space used by the user has changed.
+type UsedSpaceChanged struct {
+ eventBase
+
+ UserID string
+
+ UsedSpace int
+}
+
+func (event UsedSpaceChanged) String() string {
+ return fmt.Sprintf("UsedSpaceChanged: UserID: %s, UsedSpace: %v", event.UserID, event.UsedSpace)
+}
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
index 6bce0797..e970e90e 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.cpp
@@ -52,6 +52,7 @@ UsersTab::UsersTab(QWidget *parent)
connect(ui_.tableUserList, &QTableView::doubleClicked, this, &UsersTab::onEditUserButton);
connect(ui_.buttonRemoveUser, &QPushButton::clicked, this, &UsersTab::onRemoveUserButton);
connect(ui_.buttonUserBadEvent, &QPushButton::clicked, this, &UsersTab::onSendUserBadEvent);
+ connect(ui_.buttonUsedBytesChanged, &QPushButton::clicked, this, &UsersTab::onSendUsedBytesChangedEvent);
connect(ui_.checkUsernamePasswordError, &QCheckBox::toggled, this, &UsersTab::updateGUIState);
users_.append(randomUser());
@@ -158,16 +159,50 @@ void UsersTab::onSendUserBadEvent() {
}
+//****************************************************************************************************************************************************
+//
+//****************************************************************************************************************************************************
+void UsersTab::onSendUsedBytesChangedEvent() {
+ SPUser const user = selectedUser();
+ int const index = this->selectedIndex();
+
+ if (!user) {
+ app().log().error(QString("%1 failed. Unkown user.").arg(__FUNCTION__));
+ return;
+ }
+
+ if (UserState::Connected != user->state()) {
+ app().log().error(QString("%1 failed. User is not connected").arg(__FUNCTION__));
+ }
+
+ qint64 const usedBytes = qint64(ui_.spinUsedBytes->value());
+ user->setUsedBytes(usedBytes);
+ users_.touch(index);
+
+ GRPCService &grpc = app().grpc();
+ if (grpc.isStreaming()) {
+ QString const userID = user->id();
+ grpc.sendEvent(newUsedBytesChangedEvent(userID, usedBytes));
+ }
+
+ this->updateGUIState();
+}
+
+
//****************************************************************************************************************************************************
//
//****************************************************************************************************************************************************
void UsersTab::updateGUIState() {
SPUser const user = selectedUser();
bool const hasSelectedUser = user.get();
+ UserState const state = user ? user->state() : UserState::SignedOut;
+
ui_.buttonEditUser->setEnabled(hasSelectedUser);
ui_.buttonRemoveUser->setEnabled(hasSelectedUser);
- ui_.groupBoxBadEvent->setEnabled(hasSelectedUser && (UserState::SignedOut != user->state()));
+ ui_.groupBoxBadEvent->setEnabled(hasSelectedUser && (UserState::SignedOut != state));
+ ui_.groupBoxUsedSpace->setEnabled(hasSelectedUser && (UserState::Connected == state));
ui_.editUsernamePasswordError->setEnabled(ui_.checkUsernamePasswordError->isChecked());
+ ui_.spinUsedBytes->setValue(user ? user->usedBytes() : 0.0);
}
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.h b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.h
index 94258b86..0f43a418 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.h
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.h
@@ -61,6 +61,7 @@ private slots:
void onRemoveUserButton(); ///< Remove the currently selected user.
void onSelectionChanged(QItemSelection, QItemSelection); ///< Slot for the change of the selection.
void onSendUserBadEvent(); ///< Slot for the 'Send Bad Event Error' button.
+ void onSendUsedBytesChangedEvent(); ///< Slot for the 'Send Used Bytes Changed Event' button.
void updateGUIState(); ///< Update the GUI state.
private: // member functions.
diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.ui b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.ui
index 052e2546..34d79ad7 100644
--- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.ui
+++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/UsersTab.ui
@@ -66,6 +66,52 @@
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Used Bytes Changed
+
+
+
-
+
+
-
+
+
+ Used Bytes
+
+
+
+ -
+
+
+ QAbstractSpinBox::NoButtons
+
+
+ 0
+
+
+ 1000000000000000.000000000000000
+
+
+
+
+
+ -
+
+
+ Send Used Bytes Changed
+
+
+
+
+
+
-
diff --git a/internal/frontend/bridge-gui/bridge-gui/UserList.cpp b/internal/frontend/bridge-gui/bridge-gui/UserList.cpp
index 908dbd1c..8d09a408 100644
--- a/internal/frontend/bridge-gui/bridge-gui/UserList.cpp
+++ b/internal/frontend/bridge-gui/bridge-gui/UserList.cpp
@@ -38,6 +38,7 @@ void UserList::connectGRPCEvents() const {
GRPCClient &client = app().grpc();
connect(&client, &GRPCClient::userChanged, this, &UserList::onUserChanged);
connect(&client, &GRPCClient::toggleSplitModeFinished, this, &UserList::onToggleSplitModeFinished);
+ connect(&client, &GRPCClient::usedBytesChanged, this, &UserList::onUsedBytesChanged);
}
@@ -223,3 +224,17 @@ void UserList::onToggleSplitModeFinished(QString const &userID) {
int UserList::count() const {
return users_.size();
}
+
+
+//****************************************************************************************************************************************************
+/// \param[in] userID The userID.
+/// \param[in] usedBytes The used space, in bytes.
+//****************************************************************************************************************************************************
+void UserList::onUsedBytesChanged(QString const &userID, qint64 usedBytes) {
+ int const index = this->rowOfUserID(userID);
+ if (index < 0) {
+ app().log().error(QString("Received usedBytesChanged event for unknown userID %1").arg(userID));
+ return;
+ }
+ users_[index]->setUsedBytes(usedBytes);
+}
diff --git a/internal/frontend/bridge-gui/bridge-gui/UserList.h b/internal/frontend/bridge-gui/bridge-gui/UserList.h
index 60d06c44..84c06480 100644
--- a/internal/frontend/bridge-gui/bridge-gui/UserList.h
+++ b/internal/frontend/bridge-gui/bridge-gui/UserList.h
@@ -59,6 +59,7 @@ public:
public slots: ///< handler for signals coming from the gRPC service
void onUserChanged(QString const &userID);
void onToggleSplitModeFinished(QString const &userID);
+ void onUsedBytesChanged(QString const &userID, qint64 usedBytes); ///< Slot for usedBytesChanged events.
private: // data members
QList users_; ///< The user list.
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp
index 231a5c8e..c833f91c 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp
@@ -574,6 +574,20 @@ SPStreamEvent newUserBadEvent(QString const &userID, QString const &errorMessage
}
+//****************************************************************************************************************************************************
+/// \param[in] userID The userID.
+/// \param[in] usedBytes The number of used bytes.
+//****************************************************************************************************************************************************
+SPStreamEvent newUsedBytesChangedEvent(QString const &userID, qint64 usedBytes) {
+ auto event = new grpc::UsedBytesChangedEvent;
+ event->set_userid(userID.toStdString());
+ event->set_usedbytes(usedBytes);
+ auto userEvent = new grpc::UserEvent;
+ userEvent->set_allocated_usedbyteschangedevent(event);
+ return wrapUserEvent(userEvent);
+}
+
+
//****************************************************************************************************************************************************
/// \param[in] errorCode The error errorCode.
/// \return The event.
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h
index ed35e712..151e17c9 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h
@@ -78,6 +78,7 @@ SPStreamEvent newToggleSplitModeFinishedEvent(QString const &userID); ///< Creat
SPStreamEvent newUserDisconnectedEvent(QString const &username); ///< Create a new UserDisconnectedEvent event.
SPStreamEvent newUserChangedEvent(QString const &userID); ///< Create a new UserChangedEvent event.
SPStreamEvent newUserBadEvent(QString const &userID, QString const& errorMessage); ///< Create a new UserBadEvent event.
+SPStreamEvent newUsedBytesChangedEvent(QString const &userID, qint64 usedBytes); ///< Create a new UsedBytesChangedEvent event.
// Generic error event
SPStreamEvent newGenericErrorEvent(grpc::ErrorCode errorCode); ///< Create a new GenericErrrorEvent event.
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp
index f2bf58b1..8445fc69 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.cpp
@@ -1374,6 +1374,14 @@ void GRPCClient::processUserEvent(UserEvent const &event) {
emit userBadEvent(userID, errorMessage);
break;
}
+ case UserEvent::kUsedBytesChangedEvent: {
+ UsedBytesChangedEvent const& e = event.usedbyteschangedevent();
+ QString const userID = QString::fromStdString(e.userid());
+ qint64 const usedBytes = e.usedbytes();
+ this->logTrace(QString("User event received: UsedBytesChangedEvent (userID = %1, usedBytes = %2).").arg(userID).arg(usedBytes));
+ emit usedBytesChanged(userID, usedBytes);
+ break;
+ }
default:
this->logError("Unknown User event received.");
}
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h
index c84ee2b5..0ecd6a94 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/GRPCClient.h
@@ -179,6 +179,7 @@ signals:
void userDisconnected(QString const &username);
void userChanged(QString const &userID);
void userBadEvent(QString const &userID, QString const& errorMessage);
+ void usedBytesChanged(QString const &userID, qint64 usedBytes);
public: // keychain related calls
grpc::Status availableKeychains(QStringList &outKeychains);
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc
index 096889ca..877ee0ed 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.cc
@@ -759,6 +759,20 @@ struct UserBadEventDefaultTypeInternal {
};
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UserBadEventDefaultTypeInternal _UserBadEvent_default_instance_;
+PROTOBUF_CONSTEXPR UsedBytesChangedEvent::UsedBytesChangedEvent(
+ ::_pbi::ConstantInitialized): _impl_{
+ /*decltype(_impl_.userid_)*/{&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}}
+ , /*decltype(_impl_.usedbytes_)*/int64_t{0}
+ , /*decltype(_impl_._cached_size_)*/{}} {}
+struct UsedBytesChangedEventDefaultTypeInternal {
+ PROTOBUF_CONSTEXPR UsedBytesChangedEventDefaultTypeInternal()
+ : _instance(::_pbi::ConstantInitialized{}) {}
+ ~UsedBytesChangedEventDefaultTypeInternal() {}
+ union {
+ UsedBytesChangedEvent _instance;
+ };
+};
+PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 UsedBytesChangedEventDefaultTypeInternal _UsedBytesChangedEvent_default_instance_;
PROTOBUF_CONSTEXPR GenericErrorEvent::GenericErrorEvent(
::_pbi::ConstantInitialized): _impl_{
/*decltype(_impl_.code_)*/0
@@ -773,7 +787,7 @@ struct GenericErrorEventDefaultTypeInternal {
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GenericErrorEventDefaultTypeInternal _GenericErrorEvent_default_instance_;
} // namespace grpc
-static ::_pb::Metadata file_level_metadata_bridge_2eproto[58];
+static ::_pb::Metadata file_level_metadata_bridge_2eproto[59];
static const ::_pb::EnumDescriptor* file_level_enum_descriptors_bridge_2eproto[7];
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_bridge_2eproto = nullptr;
@@ -1199,6 +1213,7 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p
::_pbi::kInvalidFieldOffsetTag,
::_pbi::kInvalidFieldOffsetTag,
::_pbi::kInvalidFieldOffsetTag,
+ ::_pbi::kInvalidFieldOffsetTag,
PROTOBUF_FIELD_OFFSET(::grpc::UserEvent, _impl_.event_),
~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::grpc::ToggleSplitModeFinishedEvent, _internal_metadata_),
@@ -1230,6 +1245,14 @@ const uint32_t TableStruct_bridge_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(p
PROTOBUF_FIELD_OFFSET(::grpc::UserBadEvent, _impl_.userid_),
PROTOBUF_FIELD_OFFSET(::grpc::UserBadEvent, _impl_.errormessage_),
~0u, // no _has_bits_
+ PROTOBUF_FIELD_OFFSET(::grpc::UsedBytesChangedEvent, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ ~0u, // no _inlined_string_donated_
+ PROTOBUF_FIELD_OFFSET(::grpc::UsedBytesChangedEvent, _impl_.userid_),
+ PROTOBUF_FIELD_OFFSET(::grpc::UsedBytesChangedEvent, _impl_.usedbytes_),
+ ~0u, // no _has_bits_
PROTOBUF_FIELD_OFFSET(::grpc::GenericErrorEvent, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
@@ -1291,11 +1314,12 @@ static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protode
{ 398, -1, -1, sizeof(::grpc::AddressChangedLogoutEvent)},
{ 405, -1, -1, sizeof(::grpc::ApiCertIssueEvent)},
{ 411, -1, -1, sizeof(::grpc::UserEvent)},
- { 422, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)},
- { 429, -1, -1, sizeof(::grpc::UserDisconnectedEvent)},
- { 436, -1, -1, sizeof(::grpc::UserChangedEvent)},
- { 443, -1, -1, sizeof(::grpc::UserBadEvent)},
- { 451, -1, -1, sizeof(::grpc::GenericErrorEvent)},
+ { 423, -1, -1, sizeof(::grpc::ToggleSplitModeFinishedEvent)},
+ { 430, -1, -1, sizeof(::grpc::UserDisconnectedEvent)},
+ { 437, -1, -1, sizeof(::grpc::UserChangedEvent)},
+ { 444, -1, -1, sizeof(::grpc::UserBadEvent)},
+ { 452, -1, -1, sizeof(::grpc::UsedBytesChangedEvent)},
+ { 460, -1, -1, sizeof(::grpc::GenericErrorEvent)},
};
static const ::_pb::Message* const file_default_instances[] = {
@@ -1356,6 +1380,7 @@ static const ::_pb::Message* const file_default_instances[] = {
&::grpc::_UserDisconnectedEvent_default_instance_._instance,
&::grpc::_UserChangedEvent_default_instance_._instance,
&::grpc::_UserBadEvent_default_instance_._instance,
+ &::grpc::_UsedBytesChangedEvent_default_instance_._instance,
&::grpc::_GenericErrorEvent_default_instance_._instance,
};
@@ -1477,135 +1502,138 @@ const char descriptor_table_protodef_bridge_2eproto[] PROTOBUF_SECTION_VARIABLE(
"KeyForRecipientEvent\022\r\n\005email\030\001 \001(\t\"&\n\023A"
"ddressChangedEvent\022\017\n\007address\030\001 \001(\t\",\n\031A"
"ddressChangedLogoutEvent\022\017\n\007address\030\001 \001("
- "\t\"\023\n\021ApiCertIssueEvent\"\357\001\n\tUserEvent\022E\n\027"
+ "\t\"\023\n\021ApiCertIssueEvent\"\255\002\n\tUserEvent\022E\n\027"
"toggleSplitModeFinished\030\001 \001(\0132\".grpc.Tog"
"gleSplitModeFinishedEventH\000\0227\n\020userDisco"
"nnected\030\002 \001(\0132\033.grpc.UserDisconnectedEve"
"ntH\000\022-\n\013userChanged\030\003 \001(\0132\026.grpc.UserCha"
"ngedEventH\000\022*\n\014userBadEvent\030\004 \001(\0132\022.grpc"
- ".UserBadEventH\000B\007\n\005event\".\n\034ToggleSplitM"
- "odeFinishedEvent\022\016\n\006userID\030\001 \001(\t\")\n\025User"
- "DisconnectedEvent\022\020\n\010username\030\001 \001(\t\"\"\n\020U"
- "serChangedEvent\022\016\n\006userID\030\001 \001(\t\"4\n\014UserB"
- "adEvent\022\016\n\006userID\030\001 \001(\t\022\024\n\014errorMessage\030"
- "\002 \001(\t\"2\n\021GenericErrorEvent\022\035\n\004code\030\001 \001(\016"
- "2\017.grpc.ErrorCode*q\n\010LogLevel\022\r\n\tLOG_PAN"
- "IC\020\000\022\r\n\tLOG_FATAL\020\001\022\r\n\tLOG_ERROR\020\002\022\014\n\010LO"
- "G_WARN\020\003\022\014\n\010LOG_INFO\020\004\022\r\n\tLOG_DEBUG\020\005\022\r\n"
- "\tLOG_TRACE\020\006*6\n\tUserState\022\016\n\nSIGNED_OUT\020"
- "\000\022\n\n\006LOCKED\020\001\022\r\n\tCONNECTED\020\002*\242\001\n\016LoginEr"
- "rorType\022\033\n\027USERNAME_PASSWORD_ERROR\020\000\022\r\n\t"
- "FREE_USER\020\001\022\024\n\020CONNECTION_ERROR\020\002\022\r\n\tTFA"
- "_ERROR\020\003\022\r\n\tTFA_ABORT\020\004\022\027\n\023TWO_PASSWORDS"
- "_ERROR\020\005\022\027\n\023TWO_PASSWORDS_ABORT\020\006*[\n\017Upd"
- "ateErrorType\022\027\n\023UPDATE_MANUAL_ERROR\020\000\022\026\n"
- "\022UPDATE_FORCE_ERROR\020\001\022\027\n\023UPDATE_SILENT_E"
- "RROR\020\002*k\n\022DiskCacheErrorType\022 \n\034DISK_CAC"
- "HE_UNAVAILABLE_ERROR\020\000\022\036\n\032CANT_MOVE_DISK"
- "_CACHE_ERROR\020\001\022\023\n\017DISK_FULL_ERROR\020\002*\335\001\n\033"
- "MailServerSettingsErrorType\022\033\n\027IMAP_PORT"
- "_STARTUP_ERROR\020\000\022\033\n\027SMTP_PORT_STARTUP_ER"
- "ROR\020\001\022\032\n\026IMAP_PORT_CHANGE_ERROR\020\002\022\032\n\026SMT"
- "P_PORT_CHANGE_ERROR\020\003\022%\n!IMAP_CONNECTION"
- "_MODE_CHANGE_ERROR\020\004\022%\n!SMTP_CONNECTION_"
- "MODE_CHANGE_ERROR\020\005*S\n\tErrorCode\022\021\n\rUNKN"
- "OWN_ERROR\020\000\022\031\n\025TLS_CERT_EXPORT_ERROR\020\001\022\030"
- "\n\024TLS_KEY_EXPORT_ERROR\020\0022\231\035\n\006Bridge\022I\n\013C"
- "heckTokens\022\034.google.protobuf.StringValue"
- "\032\034.google.protobuf.StringValue\022\?\n\013AddLog"
- "Entry\022\030.grpc.AddLogEntryRequest\032\026.google"
- ".protobuf.Empty\022:\n\010GuiReady\022\026.google.pro"
- "tobuf.Empty\032\026.grpc.GuiReadyResponse\0226\n\004Q"
- "uit\022\026.google.protobuf.Empty\032\026.google.pro"
- "tobuf.Empty\0229\n\007Restart\022\026.google.protobuf"
- ".Empty\032\026.google.protobuf.Empty\022C\n\rShowOn"
- "Startup\022\026.google.protobuf.Empty\032\032.google"
- ".protobuf.BoolValue\022F\n\020SetIsAutostartOn\022"
- "\032.google.protobuf.BoolValue\032\026.google.pro"
- "tobuf.Empty\022C\n\rIsAutostartOn\022\026.google.pr"
- "otobuf.Empty\032\032.google.protobuf.BoolValue"
- "\022F\n\020SetIsBetaEnabled\022\032.google.protobuf.B"
- "oolValue\032\026.google.protobuf.Empty\022C\n\rIsBe"
- "taEnabled\022\026.google.protobuf.Empty\032\032.goog"
- "le.protobuf.BoolValue\022I\n\023SetIsAllMailVis"
- "ible\022\032.google.protobuf.BoolValue\032\026.googl"
- "e.protobuf.Empty\022F\n\020IsAllMailVisible\022\026.g"
- "oogle.protobuf.Empty\032\032.google.protobuf.B"
- "oolValue\022<\n\004GoOs\022\026.google.protobuf.Empty"
- "\032\034.google.protobuf.StringValue\022>\n\014Trigge"
- "rReset\022\026.google.protobuf.Empty\032\026.google."
- "protobuf.Empty\022\?\n\007Version\022\026.google.proto"
- "buf.Empty\032\034.google.protobuf.StringValue\022"
- "@\n\010LogsPath\022\026.google.protobuf.Empty\032\034.go"
- "ogle.protobuf.StringValue\022C\n\013LicensePath"
+ ".UserBadEventH\000\022<\n\025usedBytesChangedEvent"
+ "\030\005 \001(\0132\033.grpc.UsedBytesChangedEventH\000B\007\n"
+ "\005event\".\n\034ToggleSplitModeFinishedEvent\022\016"
+ "\n\006userID\030\001 \001(\t\")\n\025UserDisconnectedEvent\022"
+ "\020\n\010username\030\001 \001(\t\"\"\n\020UserChangedEvent\022\016\n"
+ "\006userID\030\001 \001(\t\"4\n\014UserBadEvent\022\016\n\006userID\030"
+ "\001 \001(\t\022\024\n\014errorMessage\030\002 \001(\t\":\n\025UsedBytes"
+ "ChangedEvent\022\016\n\006userID\030\001 \001(\t\022\021\n\tusedByte"
+ "s\030\002 \001(\003\"2\n\021GenericErrorEvent\022\035\n\004code\030\001 \001"
+ "(\0162\017.grpc.ErrorCode*q\n\010LogLevel\022\r\n\tLOG_P"
+ "ANIC\020\000\022\r\n\tLOG_FATAL\020\001\022\r\n\tLOG_ERROR\020\002\022\014\n\010"
+ "LOG_WARN\020\003\022\014\n\010LOG_INFO\020\004\022\r\n\tLOG_DEBUG\020\005\022"
+ "\r\n\tLOG_TRACE\020\006*6\n\tUserState\022\016\n\nSIGNED_OU"
+ "T\020\000\022\n\n\006LOCKED\020\001\022\r\n\tCONNECTED\020\002*\242\001\n\016Login"
+ "ErrorType\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\tT"
+ "FA_ERROR\020\003\022\r\n\tTFA_ABORT\020\004\022\027\n\023TWO_PASSWOR"
+ "DS_ERROR\020\005\022\027\n\023TWO_PASSWORDS_ABORT\020\006*[\n\017U"
+ "pdateErrorType\022\027\n\023UPDATE_MANUAL_ERROR\020\000\022"
+ "\026\n\022UPDATE_FORCE_ERROR\020\001\022\027\n\023UPDATE_SILENT"
+ "_ERROR\020\002*k\n\022DiskCacheErrorType\022 \n\034DISK_C"
+ "ACHE_UNAVAILABLE_ERROR\020\000\022\036\n\032CANT_MOVE_DI"
+ "SK_CACHE_ERROR\020\001\022\023\n\017DISK_FULL_ERROR\020\002*\335\001"
+ "\n\033MailServerSettingsErrorType\022\033\n\027IMAP_PO"
+ "RT_STARTUP_ERROR\020\000\022\033\n\027SMTP_PORT_STARTUP_"
+ "ERROR\020\001\022\032\n\026IMAP_PORT_CHANGE_ERROR\020\002\022\032\n\026S"
+ "MTP_PORT_CHANGE_ERROR\020\003\022%\n!IMAP_CONNECTI"
+ "ON_MODE_CHANGE_ERROR\020\004\022%\n!SMTP_CONNECTIO"
+ "N_MODE_CHANGE_ERROR\020\005*S\n\tErrorCode\022\021\n\rUN"
+ "KNOWN_ERROR\020\000\022\031\n\025TLS_CERT_EXPORT_ERROR\020\001"
+ "\022\030\n\024TLS_KEY_EXPORT_ERROR\020\0022\231\035\n\006Bridge\022I\n"
+ "\013CheckTokens\022\034.google.protobuf.StringVal"
+ "ue\032\034.google.protobuf.StringValue\022\?\n\013AddL"
+ "ogEntry\022\030.grpc.AddLogEntryRequest\032\026.goog"
+ "le.protobuf.Empty\022:\n\010GuiReady\022\026.google.p"
+ "rotobuf.Empty\032\026.grpc.GuiReadyResponse\0226\n"
+ "\004Quit\022\026.google.protobuf.Empty\032\026.google.p"
+ "rotobuf.Empty\0229\n\007Restart\022\026.google.protob"
+ "uf.Empty\032\026.google.protobuf.Empty\022C\n\rShow"
+ "OnStartup\022\026.google.protobuf.Empty\032\032.goog"
+ "le.protobuf.BoolValue\022F\n\020SetIsAutostartO"
+ "n\022\032.google.protobuf.BoolValue\032\026.google.p"
+ "rotobuf.Empty\022C\n\rIsAutostartOn\022\026.google."
+ "protobuf.Empty\032\032.google.protobuf.BoolVal"
+ "ue\022F\n\020SetIsBetaEnabled\022\032.google.protobuf"
+ ".BoolValue\032\026.google.protobuf.Empty\022C\n\rIs"
+ "BetaEnabled\022\026.google.protobuf.Empty\032\032.go"
+ "ogle.protobuf.BoolValue\022I\n\023SetIsAllMailV"
+ "isible\022\032.google.protobuf.BoolValue\032\026.goo"
+ "gle.protobuf.Empty\022F\n\020IsAllMailVisible\022\026"
+ ".google.protobuf.Empty\032\032.google.protobuf"
+ ".BoolValue\022<\n\004GoOs\022\026.google.protobuf.Emp"
+ "ty\032\034.google.protobuf.StringValue\022>\n\014Trig"
+ "gerReset\022\026.google.protobuf.Empty\032\026.googl"
+ "e.protobuf.Empty\022\?\n\007Version\022\026.google.pro"
+ "tobuf.Empty\032\034.google.protobuf.StringValu"
+ "e\022@\n\010LogsPath\022\026.google.protobuf.Empty\032\034."
+ "google.protobuf.StringValue\022C\n\013LicensePa"
+ "th\022\026.google.protobuf.Empty\032\034.google.prot"
+ "obuf.StringValue\022L\n\024ReleaseNotesPageLink"
"\022\026.google.protobuf.Empty\032\034.google.protob"
- "uf.StringValue\022L\n\024ReleaseNotesPageLink\022\026"
- ".google.protobuf.Empty\032\034.google.protobuf"
- ".StringValue\022N\n\026DependencyLicensesLink\022\026"
- ".google.protobuf.Empty\032\034.google.protobuf"
- ".StringValue\022G\n\017LandingPageLink\022\026.google"
- ".protobuf.Empty\032\034.google.protobuf.String"
- "Value\022J\n\022SetColorSchemeName\022\034.google.pro"
- "tobuf.StringValue\032\026.google.protobuf.Empt"
- "y\022G\n\017ColorSchemeName\022\026.google.protobuf.E"
- "mpty\032\034.google.protobuf.StringValue\022J\n\022Cu"
- "rrentEmailClient\022\026.google.protobuf.Empty"
- "\032\034.google.protobuf.StringValue\022;\n\tReport"
- "Bug\022\026.grpc.ReportBugRequest\032\026.google.pro"
- "tobuf.Empty\022M\n\025ExportTLSCertificates\022\034.g"
- "oogle.protobuf.StringValue\032\026.google.prot"
- "obuf.Empty\022E\n\rForceLauncher\022\034.google.pro"
- "tobuf.StringValue\032\026.google.protobuf.Empt"
- "y\022I\n\021SetMainExecutable\022\034.google.protobuf"
- ".StringValue\032\026.google.protobuf.Empty\0223\n\005"
- "Login\022\022.grpc.LoginRequest\032\026.google.proto"
- "buf.Empty\0226\n\010Login2FA\022\022.grpc.LoginReques"
- "t\032\026.google.protobuf.Empty\022=\n\017Login2Passw"
- "ords\022\022.grpc.LoginRequest\032\026.google.protob"
- "uf.Empty\022=\n\nLoginAbort\022\027.grpc.LoginAbort"
- "Request\032\026.google.protobuf.Empty\022=\n\013Check"
- "Update\022\026.google.protobuf.Empty\032\026.google."
- "protobuf.Empty\022\?\n\rInstallUpdate\022\026.google"
- ".protobuf.Empty\032\026.google.protobuf.Empty\022"
- "L\n\026SetIsAutomaticUpdateOn\022\032.google.proto"
- "buf.BoolValue\032\026.google.protobuf.Empty\022I\n"
- "\023IsAutomaticUpdateOn\022\026.google.protobuf.E"
- "mpty\032\032.google.protobuf.BoolValue\022E\n\rDisk"
- "CachePath\022\026.google.protobuf.Empty\032\034.goog"
- "le.protobuf.StringValue\022H\n\020SetDiskCacheP"
- "ath\022\034.google.protobuf.StringValue\032\026.goog"
- "le.protobuf.Empty\022E\n\017SetIsDoHEnabled\022\032.g"
- "oogle.protobuf.BoolValue\032\026.google.protob"
- "uf.Empty\022B\n\014IsDoHEnabled\022\026.google.protob"
- "uf.Empty\032\032.google.protobuf.BoolValue\022D\n\022"
- "MailServerSettings\022\026.google.protobuf.Emp"
- "ty\032\026.grpc.ImapSmtpSettings\022G\n\025SetMailSer"
- "verSettings\022\026.grpc.ImapSmtpSettings\032\026.go"
- "ogle.protobuf.Empty\022@\n\010Hostname\022\026.google"
- ".protobuf.Empty\032\034.google.protobuf.String"
- "Value\022E\n\nIsPortFree\022\033.google.protobuf.In"
- "t32Value\032\032.google.protobuf.BoolValue\022N\n\022"
- "AvailableKeychains\022\026.google.protobuf.Emp"
- "ty\032 .grpc.AvailableKeychainsResponse\022J\n\022"
- "SetCurrentKeychain\022\034.google.protobuf.Str"
- "ingValue\032\026.google.protobuf.Empty\022G\n\017Curr"
- "entKeychain\022\026.google.protobuf.Empty\032\034.go"
- "ogle.protobuf.StringValue\022=\n\013GetUserList"
- "\022\026.google.protobuf.Empty\032\026.grpc.UserList"
- "Response\0223\n\007GetUser\022\034.google.protobuf.St"
- "ringValue\032\n.grpc.User\022F\n\020SetUserSplitMod"
- "e\022\032.grpc.UserSplitModeRequest\032\026.google.p"
- "rotobuf.Empty\022B\n\nLogoutUser\022\034.google.pro"
- "tobuf.StringValue\032\026.google.protobuf.Empt"
- "y\022B\n\nRemoveUser\022\034.google.protobuf.String"
- "Value\032\026.google.protobuf.Empty\022Q\n\026Configu"
- "reUserAppleMail\022\037.grpc.ConfigureAppleMai"
- "lRequest\032\026.google.protobuf.Empty\022\?\n\016RunE"
- "ventStream\022\030.grpc.EventStreamRequest\032\021.g"
- "rpc.StreamEvent0\001\022A\n\017StopEventStream\022\026.g"
- "oogle.protobuf.Empty\032\026.google.protobuf.E"
- "mptyB6Z4github.com/ProtonMail/proton-bri"
- "dge/v3/internal/grpcb\006proto3"
+ "uf.StringValue\022N\n\026DependencyLicensesLink"
+ "\022\026.google.protobuf.Empty\032\034.google.protob"
+ "uf.StringValue\022G\n\017LandingPageLink\022\026.goog"
+ "le.protobuf.Empty\032\034.google.protobuf.Stri"
+ "ngValue\022J\n\022SetColorSchemeName\022\034.google.p"
+ "rotobuf.StringValue\032\026.google.protobuf.Em"
+ "pty\022G\n\017ColorSchemeName\022\026.google.protobuf"
+ ".Empty\032\034.google.protobuf.StringValue\022J\n\022"
+ "CurrentEmailClient\022\026.google.protobuf.Emp"
+ "ty\032\034.google.protobuf.StringValue\022;\n\tRepo"
+ "rtBug\022\026.grpc.ReportBugRequest\032\026.google.p"
+ "rotobuf.Empty\022M\n\025ExportTLSCertificates\022\034"
+ ".google.protobuf.StringValue\032\026.google.pr"
+ "otobuf.Empty\022E\n\rForceLauncher\022\034.google.p"
+ "rotobuf.StringValue\032\026.google.protobuf.Em"
+ "pty\022I\n\021SetMainExecutable\022\034.google.protob"
+ "uf.StringValue\032\026.google.protobuf.Empty\0223"
+ "\n\005Login\022\022.grpc.LoginRequest\032\026.google.pro"
+ "tobuf.Empty\0226\n\010Login2FA\022\022.grpc.LoginRequ"
+ "est\032\026.google.protobuf.Empty\022=\n\017Login2Pas"
+ "swords\022\022.grpc.LoginRequest\032\026.google.prot"
+ "obuf.Empty\022=\n\nLoginAbort\022\027.grpc.LoginAbo"
+ "rtRequest\032\026.google.protobuf.Empty\022=\n\013Che"
+ "ckUpdate\022\026.google.protobuf.Empty\032\026.googl"
+ "e.protobuf.Empty\022\?\n\rInstallUpdate\022\026.goog"
+ "le.protobuf.Empty\032\026.google.protobuf.Empt"
+ "y\022L\n\026SetIsAutomaticUpdateOn\022\032.google.pro"
+ "tobuf.BoolValue\032\026.google.protobuf.Empty\022"
+ "I\n\023IsAutomaticUpdateOn\022\026.google.protobuf"
+ ".Empty\032\032.google.protobuf.BoolValue\022E\n\rDi"
+ "skCachePath\022\026.google.protobuf.Empty\032\034.go"
+ "ogle.protobuf.StringValue\022H\n\020SetDiskCach"
+ "ePath\022\034.google.protobuf.StringValue\032\026.go"
+ "ogle.protobuf.Empty\022E\n\017SetIsDoHEnabled\022\032"
+ ".google.protobuf.BoolValue\032\026.google.prot"
+ "obuf.Empty\022B\n\014IsDoHEnabled\022\026.google.prot"
+ "obuf.Empty\032\032.google.protobuf.BoolValue\022D"
+ "\n\022MailServerSettings\022\026.google.protobuf.E"
+ "mpty\032\026.grpc.ImapSmtpSettings\022G\n\025SetMailS"
+ "erverSettings\022\026.grpc.ImapSmtpSettings\032\026."
+ "google.protobuf.Empty\022@\n\010Hostname\022\026.goog"
+ "le.protobuf.Empty\032\034.google.protobuf.Stri"
+ "ngValue\022E\n\nIsPortFree\022\033.google.protobuf."
+ "Int32Value\032\032.google.protobuf.BoolValue\022N"
+ "\n\022AvailableKeychains\022\026.google.protobuf.E"
+ "mpty\032 .grpc.AvailableKeychainsResponse\022J"
+ "\n\022SetCurrentKeychain\022\034.google.protobuf.S"
+ "tringValue\032\026.google.protobuf.Empty\022G\n\017Cu"
+ "rrentKeychain\022\026.google.protobuf.Empty\032\034."
+ "google.protobuf.StringValue\022=\n\013GetUserLi"
+ "st\022\026.google.protobuf.Empty\032\026.grpc.UserLi"
+ "stResponse\0223\n\007GetUser\022\034.google.protobuf."
+ "StringValue\032\n.grpc.User\022F\n\020SetUserSplitM"
+ "ode\022\032.grpc.UserSplitModeRequest\032\026.google"
+ ".protobuf.Empty\022B\n\nLogoutUser\022\034.google.p"
+ "rotobuf.StringValue\032\026.google.protobuf.Em"
+ "pty\022B\n\nRemoveUser\022\034.google.protobuf.Stri"
+ "ngValue\032\026.google.protobuf.Empty\022Q\n\026Confi"
+ "gureUserAppleMail\022\037.grpc.ConfigureAppleM"
+ "ailRequest\032\026.google.protobuf.Empty\022\?\n\016Ru"
+ "nEventStream\022\030.grpc.EventStreamRequest\032\021"
+ ".grpc.StreamEvent0\001\022A\n\017StopEventStream\022\026"
+ ".google.protobuf.Empty\032\026.google.protobuf"
+ ".EmptyB6Z4github.com/ProtonMail/proton-b"
+ "ridge/v3/internal/grpcb\006proto3"
;
static const ::_pbi::DescriptorTable* const descriptor_table_bridge_2eproto_deps[2] = {
&::descriptor_table_google_2fprotobuf_2fempty_2eproto,
@@ -1613,9 +1641,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, 9828, descriptor_table_protodef_bridge_2eproto,
+ false, false, 9950, descriptor_table_protodef_bridge_2eproto,
"bridge.proto",
- &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 58,
+ &descriptor_table_bridge_2eproto_once, descriptor_table_bridge_2eproto_deps, 2, 59,
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,
@@ -12378,6 +12406,7 @@ class UserEvent::_Internal {
static const ::grpc::UserDisconnectedEvent& userdisconnected(const UserEvent* msg);
static const ::grpc::UserChangedEvent& userchanged(const UserEvent* msg);
static const ::grpc::UserBadEvent& userbadevent(const UserEvent* msg);
+ static const ::grpc::UsedBytesChangedEvent& usedbyteschangedevent(const UserEvent* msg);
};
const ::grpc::ToggleSplitModeFinishedEvent&
@@ -12396,6 +12425,10 @@ const ::grpc::UserBadEvent&
UserEvent::_Internal::userbadevent(const UserEvent* msg) {
return *msg->_impl_.event_.userbadevent_;
}
+const ::grpc::UsedBytesChangedEvent&
+UserEvent::_Internal::usedbyteschangedevent(const UserEvent* msg) {
+ return *msg->_impl_.event_.usedbyteschangedevent_;
+}
void UserEvent::set_allocated_togglesplitmodefinished(::grpc::ToggleSplitModeFinishedEvent* togglesplitmodefinished) {
::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
clear_event();
@@ -12456,6 +12489,21 @@ void UserEvent::set_allocated_userbadevent(::grpc::UserBadEvent* userbadevent) {
}
// @@protoc_insertion_point(field_set_allocated:grpc.UserEvent.userBadEvent)
}
+void UserEvent::set_allocated_usedbyteschangedevent(::grpc::UsedBytesChangedEvent* usedbyteschangedevent) {
+ ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
+ clear_event();
+ if (usedbyteschangedevent) {
+ ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
+ ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(usedbyteschangedevent);
+ if (message_arena != submessage_arena) {
+ usedbyteschangedevent = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
+ message_arena, usedbyteschangedevent, submessage_arena);
+ }
+ set_has_usedbyteschangedevent();
+ _impl_.event_.usedbyteschangedevent_ = usedbyteschangedevent;
+ }
+ // @@protoc_insertion_point(field_set_allocated:grpc.UserEvent.usedBytesChangedEvent)
+}
UserEvent::UserEvent(::PROTOBUF_NAMESPACE_ID::Arena* arena,
bool is_message_owned)
: ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
@@ -12493,6 +12541,11 @@ UserEvent::UserEvent(const UserEvent& from)
from._internal_userbadevent());
break;
}
+ case kUsedBytesChangedEvent: {
+ _this->_internal_mutable_usedbyteschangedevent()->::grpc::UsedBytesChangedEvent::MergeFrom(
+ from._internal_usedbyteschangedevent());
+ break;
+ }
case EVENT_NOT_SET: {
break;
}
@@ -12559,6 +12612,12 @@ void UserEvent::clear_event() {
}
break;
}
+ case kUsedBytesChangedEvent: {
+ if (GetArenaForAllocation() == nullptr) {
+ delete _impl_.event_.usedbyteschangedevent_;
+ }
+ break;
+ }
case EVENT_NOT_SET: {
break;
}
@@ -12615,6 +12674,14 @@ const char* UserEvent::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx
} else
goto handle_unusual;
continue;
+ // .grpc.UsedBytesChangedEvent usedBytesChangedEvent = 5;
+ case 5:
+ if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 42)) {
+ ptr = ctx->ParseMessage(_internal_mutable_usedbyteschangedevent(), ptr);
+ CHK_(ptr);
+ } else
+ goto handle_unusual;
+ continue;
default:
goto handle_unusual;
} // switch
@@ -12672,6 +12739,13 @@ uint8_t* UserEvent::_InternalSerialize(
_Internal::userbadevent(this).GetCachedSize(), target, stream);
}
+ // .grpc.UsedBytesChangedEvent usedBytesChangedEvent = 5;
+ if (_internal_has_usedbyteschangedevent()) {
+ target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
+ InternalWriteMessage(5, _Internal::usedbyteschangedevent(this),
+ _Internal::usedbyteschangedevent(this).GetCachedSize(), target, stream);
+ }
+
if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
_internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
@@ -12717,6 +12791,13 @@ size_t UserEvent::ByteSizeLong() const {
*_impl_.event_.userbadevent_);
break;
}
+ // .grpc.UsedBytesChangedEvent usedBytesChangedEvent = 5;
+ case kUsedBytesChangedEvent: {
+ total_size += 1 +
+ ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
+ *_impl_.event_.usedbyteschangedevent_);
+ break;
+ }
case EVENT_NOT_SET: {
break;
}
@@ -12760,6 +12841,11 @@ void UserEvent::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message& to_msg, const ::PROT
from._internal_userbadevent());
break;
}
+ case kUsedBytesChangedEvent: {
+ _this->_internal_mutable_usedbyteschangedevent()->::grpc::UsedBytesChangedEvent::MergeFrom(
+ from._internal_usedbyteschangedevent());
+ break;
+ }
case EVENT_NOT_SET: {
break;
}
@@ -13655,6 +13741,236 @@ void UserBadEvent::InternalSwap(UserBadEvent* other) {
// ===================================================================
+class UsedBytesChangedEvent::_Internal {
+ public:
+};
+
+UsedBytesChangedEvent::UsedBytesChangedEvent(::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.UsedBytesChangedEvent)
+}
+UsedBytesChangedEvent::UsedBytesChangedEvent(const UsedBytesChangedEvent& from)
+ : ::PROTOBUF_NAMESPACE_ID::Message() {
+ UsedBytesChangedEvent* const _this = this; (void)_this;
+ new (&_impl_) Impl_{
+ decltype(_impl_.userid_){}
+ , decltype(_impl_.usedbytes_){}
+ , /*decltype(_impl_._cached_size_)*/{}};
+
+ _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+ _impl_.userid_.InitDefault();
+ #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+ _impl_.userid_.Set("", GetArenaForAllocation());
+ #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+ if (!from._internal_userid().empty()) {
+ _this->_impl_.userid_.Set(from._internal_userid(),
+ _this->GetArenaForAllocation());
+ }
+ _this->_impl_.usedbytes_ = from._impl_.usedbytes_;
+ // @@protoc_insertion_point(copy_constructor:grpc.UsedBytesChangedEvent)
+}
+
+inline void UsedBytesChangedEvent::SharedCtor(
+ ::_pb::Arena* arena, bool is_message_owned) {
+ (void)arena;
+ (void)is_message_owned;
+ new (&_impl_) Impl_{
+ decltype(_impl_.userid_){}
+ , decltype(_impl_.usedbytes_){int64_t{0}}
+ , /*decltype(_impl_._cached_size_)*/{}
+ };
+ _impl_.userid_.InitDefault();
+ #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+ _impl_.userid_.Set("", GetArenaForAllocation());
+ #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+}
+
+UsedBytesChangedEvent::~UsedBytesChangedEvent() {
+ // @@protoc_insertion_point(destructor:grpc.UsedBytesChangedEvent)
+ if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
+ (void)arena;
+ return;
+ }
+ SharedDtor();
+}
+
+inline void UsedBytesChangedEvent::SharedDtor() {
+ GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
+ _impl_.userid_.Destroy();
+}
+
+void UsedBytesChangedEvent::SetCachedSize(int size) const {
+ _impl_._cached_size_.Set(size);
+}
+
+void UsedBytesChangedEvent::Clear() {
+// @@protoc_insertion_point(message_clear_start:grpc.UsedBytesChangedEvent)
+ uint32_t cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ _impl_.userid_.ClearToEmpty();
+ _impl_.usedbytes_ = int64_t{0};
+ _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
+}
+
+const char* UsedBytesChangedEvent::_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 userID = 1;
+ case 1:
+ if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 10)) {
+ auto str = _internal_mutable_userid();
+ ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
+ CHK_(ptr);
+ CHK_(::_pbi::VerifyUTF8(str, "grpc.UsedBytesChangedEvent.userID"));
+ } else
+ goto handle_unusual;
+ continue;
+ // int64 usedBytes = 2;
+ case 2:
+ if (PROTOBUF_PREDICT_TRUE(static_cast(tag) == 16)) {
+ _impl_.usedbytes_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
+ CHK_(ptr);
+ } 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* UsedBytesChangedEvent::_InternalSerialize(
+ uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
+ // @@protoc_insertion_point(serialize_to_array_start:grpc.UsedBytesChangedEvent)
+ uint32_t cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string userID = 1;
+ if (!this->_internal_userid().empty()) {
+ ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
+ this->_internal_userid().data(), static_cast(this->_internal_userid().length()),
+ ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
+ "grpc.UsedBytesChangedEvent.userID");
+ target = stream->WriteStringMaybeAliased(
+ 1, this->_internal_userid(), target);
+ }
+
+ // int64 usedBytes = 2;
+ if (this->_internal_usedbytes() != 0) {
+ target = stream->EnsureSpace(target);
+ target = ::_pbi::WireFormatLite::WriteInt64ToArray(2, this->_internal_usedbytes(), 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.UsedBytesChangedEvent)
+ return target;
+}
+
+size_t UsedBytesChangedEvent::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:grpc.UsedBytesChangedEvent)
+ 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 userID = 1;
+ if (!this->_internal_userid().empty()) {
+ total_size += 1 +
+ ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
+ this->_internal_userid());
+ }
+
+ // int64 usedBytes = 2;
+ if (this->_internal_usedbytes() != 0) {
+ total_size += ::_pbi::WireFormatLite::Int64SizePlusOne(this->_internal_usedbytes());
+ }
+
+ return MaybeComputeUnknownFieldsSize(total_size, &_impl_._cached_size_);
+}
+
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData UsedBytesChangedEvent::_class_data_ = {
+ ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSourceCheck,
+ UsedBytesChangedEvent::MergeImpl
+};
+const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*UsedBytesChangedEvent::GetClassData() const { return &_class_data_; }
+
+
+void UsedBytesChangedEvent::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.UsedBytesChangedEvent)
+ GOOGLE_DCHECK_NE(&from, _this);
+ uint32_t cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (!from._internal_userid().empty()) {
+ _this->_internal_set_userid(from._internal_userid());
+ }
+ if (from._internal_usedbytes() != 0) {
+ _this->_internal_set_usedbytes(from._internal_usedbytes());
+ }
+ _this->_internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
+}
+
+void UsedBytesChangedEvent::CopyFrom(const UsedBytesChangedEvent& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:grpc.UsedBytesChangedEvent)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool UsedBytesChangedEvent::IsInitialized() const {
+ return true;
+}
+
+void UsedBytesChangedEvent::InternalSwap(UsedBytesChangedEvent* 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_.userid_, lhs_arena,
+ &other->_impl_.userid_, rhs_arena
+ );
+ swap(_impl_.usedbytes_, other->_impl_.usedbytes_);
+}
+
+::PROTOBUF_NAMESPACE_ID::Metadata UsedBytesChangedEvent::GetMetadata() const {
+ return ::_pbi::AssignDescriptors(
+ &descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once,
+ file_level_metadata_bridge_2eproto[57]);
+}
+
+// ===================================================================
+
class GenericErrorEvent::_Internal {
public:
};
@@ -13831,7 +14147,7 @@ void GenericErrorEvent::InternalSwap(GenericErrorEvent* other) {
::PROTOBUF_NAMESPACE_ID::Metadata GenericErrorEvent::GetMetadata() const {
return ::_pbi::AssignDescriptors(
&descriptor_table_bridge_2eproto_getter, &descriptor_table_bridge_2eproto_once,
- file_level_metadata_bridge_2eproto[57]);
+ file_level_metadata_bridge_2eproto[58]);
}
// @@protoc_insertion_point(namespace_scope)
@@ -14065,6 +14381,10 @@ template<> PROTOBUF_NOINLINE ::grpc::UserBadEvent*
Arena::CreateMaybeMessage< ::grpc::UserBadEvent >(Arena* arena) {
return Arena::CreateMessageInternal< ::grpc::UserBadEvent >(arena);
}
+template<> PROTOBUF_NOINLINE ::grpc::UsedBytesChangedEvent*
+Arena::CreateMaybeMessage< ::grpc::UsedBytesChangedEvent >(Arena* arena) {
+ return Arena::CreateMessageInternal< ::grpc::UsedBytesChangedEvent >(arena);
+}
template<> PROTOBUF_NOINLINE ::grpc::GenericErrorEvent*
Arena::CreateMaybeMessage< ::grpc::GenericErrorEvent >(Arena* arena) {
return Arena::CreateMessageInternal< ::grpc::GenericErrorEvent >(arena);
diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h
index dc39e892..e39d8cd8 100644
--- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h
+++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/bridge.pb.h
@@ -202,6 +202,9 @@ extern UpdateSilentRestartNeededDefaultTypeInternal _UpdateSilentRestartNeeded_d
class UpdateVersionChanged;
struct UpdateVersionChangedDefaultTypeInternal;
extern UpdateVersionChangedDefaultTypeInternal _UpdateVersionChanged_default_instance_;
+class UsedBytesChangedEvent;
+struct UsedBytesChangedEventDefaultTypeInternal;
+extern UsedBytesChangedEventDefaultTypeInternal _UsedBytesChangedEvent_default_instance_;
class User;
struct UserDefaultTypeInternal;
extern UserDefaultTypeInternal _User_default_instance_;
@@ -276,6 +279,7 @@ template<> ::grpc::UpdateManualReadyEvent* Arena::CreateMaybeMessage<::grpc::Upd
template<> ::grpc::UpdateManualRestartNeededEvent* Arena::CreateMaybeMessage<::grpc::UpdateManualRestartNeededEvent>(Arena*);
template<> ::grpc::UpdateSilentRestartNeeded* Arena::CreateMaybeMessage<::grpc::UpdateSilentRestartNeeded>(Arena*);
template<> ::grpc::UpdateVersionChanged* Arena::CreateMaybeMessage<::grpc::UpdateVersionChanged>(Arena*);
+template<> ::grpc::UsedBytesChangedEvent* Arena::CreateMaybeMessage<::grpc::UsedBytesChangedEvent>(Arena*);
template<> ::grpc::User* Arena::CreateMaybeMessage<::grpc::User>(Arena*);
template<> ::grpc::UserBadEvent* Arena::CreateMaybeMessage<::grpc::UserBadEvent>(Arena*);
template<> ::grpc::UserChangedEvent* Arena::CreateMaybeMessage<::grpc::UserChangedEvent>(Arena*);
@@ -9077,6 +9081,7 @@ class UserEvent final :
kUserDisconnected = 2,
kUserChanged = 3,
kUserBadEvent = 4,
+ kUsedBytesChangedEvent = 5,
EVENT_NOT_SET = 0,
};
@@ -9162,6 +9167,7 @@ class UserEvent final :
kUserDisconnectedFieldNumber = 2,
kUserChangedFieldNumber = 3,
kUserBadEventFieldNumber = 4,
+ kUsedBytesChangedEventFieldNumber = 5,
};
// .grpc.ToggleSplitModeFinishedEvent toggleSplitModeFinished = 1;
bool has_togglesplitmodefinished() const;
@@ -9235,6 +9241,24 @@ class UserEvent final :
::grpc::UserBadEvent* userbadevent);
::grpc::UserBadEvent* unsafe_arena_release_userbadevent();
+ // .grpc.UsedBytesChangedEvent usedBytesChangedEvent = 5;
+ bool has_usedbyteschangedevent() const;
+ private:
+ bool _internal_has_usedbyteschangedevent() const;
+ public:
+ void clear_usedbyteschangedevent();
+ const ::grpc::UsedBytesChangedEvent& usedbyteschangedevent() const;
+ PROTOBUF_NODISCARD ::grpc::UsedBytesChangedEvent* release_usedbyteschangedevent();
+ ::grpc::UsedBytesChangedEvent* mutable_usedbyteschangedevent();
+ void set_allocated_usedbyteschangedevent(::grpc::UsedBytesChangedEvent* usedbyteschangedevent);
+ private:
+ const ::grpc::UsedBytesChangedEvent& _internal_usedbyteschangedevent() const;
+ ::grpc::UsedBytesChangedEvent* _internal_mutable_usedbyteschangedevent();
+ public:
+ void unsafe_arena_set_allocated_usedbyteschangedevent(
+ ::grpc::UsedBytesChangedEvent* usedbyteschangedevent);
+ ::grpc::UsedBytesChangedEvent* unsafe_arena_release_usedbyteschangedevent();
+
void clear_event();
EventCase event_case() const;
// @@protoc_insertion_point(class_scope:grpc.UserEvent)
@@ -9244,6 +9268,7 @@ class UserEvent final :
void set_has_userdisconnected();
void set_has_userchanged();
void set_has_userbadevent();
+ void set_has_usedbyteschangedevent();
inline bool has_event() const;
inline void clear_has_event();
@@ -9259,6 +9284,7 @@ class UserEvent final :
::grpc::UserDisconnectedEvent* userdisconnected_;
::grpc::UserChangedEvent* userchanged_;
::grpc::UserBadEvent* userbadevent_;
+ ::grpc::UsedBytesChangedEvent* usedbyteschangedevent_;
} event_;
mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
uint32_t _oneof_case_[1];
@@ -9897,6 +9923,170 @@ class UserBadEvent final :
};
// -------------------------------------------------------------------
+class UsedBytesChangedEvent final :
+ public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.UsedBytesChangedEvent) */ {
+ public:
+ inline UsedBytesChangedEvent() : UsedBytesChangedEvent(nullptr) {}
+ ~UsedBytesChangedEvent() override;
+ explicit PROTOBUF_CONSTEXPR UsedBytesChangedEvent(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);
+
+ UsedBytesChangedEvent(const UsedBytesChangedEvent& from);
+ UsedBytesChangedEvent(UsedBytesChangedEvent&& from) noexcept
+ : UsedBytesChangedEvent() {
+ *this = ::std::move(from);
+ }
+
+ inline UsedBytesChangedEvent& operator=(const UsedBytesChangedEvent& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ inline UsedBytesChangedEvent& operator=(UsedBytesChangedEvent&& 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 UsedBytesChangedEvent& default_instance() {
+ return *internal_default_instance();
+ }
+ static inline const UsedBytesChangedEvent* internal_default_instance() {
+ return reinterpret_cast(
+ &_UsedBytesChangedEvent_default_instance_);
+ }
+ static constexpr int kIndexInFileMessages =
+ 57;
+
+ friend void swap(UsedBytesChangedEvent& a, UsedBytesChangedEvent& b) {
+ a.Swap(&b);
+ }
+ inline void Swap(UsedBytesChangedEvent* 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(UsedBytesChangedEvent* other) {
+ if (other == this) return;
+ GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
+ InternalSwap(other);
+ }
+
+ // implements Message ----------------------------------------------
+
+ UsedBytesChangedEvent* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
+ return CreateMaybeMessage(arena);
+ }
+ using ::PROTOBUF_NAMESPACE_ID::Message::CopyFrom;
+ void CopyFrom(const UsedBytesChangedEvent& from);
+ using ::PROTOBUF_NAMESPACE_ID::Message::MergeFrom;
+ void MergeFrom( const UsedBytesChangedEvent& from) {
+ UsedBytesChangedEvent::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(UsedBytesChangedEvent* other);
+
+ private:
+ friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
+ static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
+ return "grpc.UsedBytesChangedEvent";
+ }
+ protected:
+ explicit UsedBytesChangedEvent(::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 {
+ kUserIDFieldNumber = 1,
+ kUsedBytesFieldNumber = 2,
+ };
+ // string userID = 1;
+ void clear_userid();
+ const std::string& userid() const;
+ template
+ void set_userid(ArgT0&& arg0, ArgT... args);
+ std::string* mutable_userid();
+ PROTOBUF_NODISCARD std::string* release_userid();
+ void set_allocated_userid(std::string* userid);
+ private:
+ const std::string& _internal_userid() const;
+ inline PROTOBUF_ALWAYS_INLINE void _internal_set_userid(const std::string& value);
+ std::string* _internal_mutable_userid();
+ public:
+
+ // int64 usedBytes = 2;
+ void clear_usedbytes();
+ int64_t usedbytes() const;
+ void set_usedbytes(int64_t value);
+ private:
+ int64_t _internal_usedbytes() const;
+ void _internal_set_usedbytes(int64_t value);
+ public:
+
+ // @@protoc_insertion_point(class_scope:grpc.UsedBytesChangedEvent)
+ private:
+ class _Internal;
+
+ template friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
+ typedef void InternalArenaConstructable_;
+ typedef void DestructorSkippable_;
+ struct Impl_ {
+ ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr userid_;
+ int64_t usedbytes_;
+ mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
+ };
+ union { Impl_ _impl_; };
+ friend struct ::TableStruct_bridge_2eproto;
+};
+// -------------------------------------------------------------------
+
class GenericErrorEvent final :
public ::PROTOBUF_NAMESPACE_ID::Message /* @@protoc_insertion_point(class_definition:grpc.GenericErrorEvent) */ {
public:
@@ -9945,7 +10135,7 @@ class GenericErrorEvent final :
&_GenericErrorEvent_default_instance_);
}
static constexpr int kIndexInFileMessages =
- 57;
+ 58;
friend void swap(GenericErrorEvent& a, GenericErrorEvent& b) {
a.Swap(&b);
@@ -15728,6 +15918,80 @@ inline ::grpc::UserBadEvent* UserEvent::mutable_userbadevent() {
return _msg;
}
+// .grpc.UsedBytesChangedEvent usedBytesChangedEvent = 5;
+inline bool UserEvent::_internal_has_usedbyteschangedevent() const {
+ return event_case() == kUsedBytesChangedEvent;
+}
+inline bool UserEvent::has_usedbyteschangedevent() const {
+ return _internal_has_usedbyteschangedevent();
+}
+inline void UserEvent::set_has_usedbyteschangedevent() {
+ _impl_._oneof_case_[0] = kUsedBytesChangedEvent;
+}
+inline void UserEvent::clear_usedbyteschangedevent() {
+ if (_internal_has_usedbyteschangedevent()) {
+ if (GetArenaForAllocation() == nullptr) {
+ delete _impl_.event_.usedbyteschangedevent_;
+ }
+ clear_has_event();
+ }
+}
+inline ::grpc::UsedBytesChangedEvent* UserEvent::release_usedbyteschangedevent() {
+ // @@protoc_insertion_point(field_release:grpc.UserEvent.usedBytesChangedEvent)
+ if (_internal_has_usedbyteschangedevent()) {
+ clear_has_event();
+ ::grpc::UsedBytesChangedEvent* temp = _impl_.event_.usedbyteschangedevent_;
+ if (GetArenaForAllocation() != nullptr) {
+ temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
+ }
+ _impl_.event_.usedbyteschangedevent_ = nullptr;
+ return temp;
+ } else {
+ return nullptr;
+ }
+}
+inline const ::grpc::UsedBytesChangedEvent& UserEvent::_internal_usedbyteschangedevent() const {
+ return _internal_has_usedbyteschangedevent()
+ ? *_impl_.event_.usedbyteschangedevent_
+ : reinterpret_cast< ::grpc::UsedBytesChangedEvent&>(::grpc::_UsedBytesChangedEvent_default_instance_);
+}
+inline const ::grpc::UsedBytesChangedEvent& UserEvent::usedbyteschangedevent() const {
+ // @@protoc_insertion_point(field_get:grpc.UserEvent.usedBytesChangedEvent)
+ return _internal_usedbyteschangedevent();
+}
+inline ::grpc::UsedBytesChangedEvent* UserEvent::unsafe_arena_release_usedbyteschangedevent() {
+ // @@protoc_insertion_point(field_unsafe_arena_release:grpc.UserEvent.usedBytesChangedEvent)
+ if (_internal_has_usedbyteschangedevent()) {
+ clear_has_event();
+ ::grpc::UsedBytesChangedEvent* temp = _impl_.event_.usedbyteschangedevent_;
+ _impl_.event_.usedbyteschangedevent_ = nullptr;
+ return temp;
+ } else {
+ return nullptr;
+ }
+}
+inline void UserEvent::unsafe_arena_set_allocated_usedbyteschangedevent(::grpc::UsedBytesChangedEvent* usedbyteschangedevent) {
+ clear_event();
+ if (usedbyteschangedevent) {
+ set_has_usedbyteschangedevent();
+ _impl_.event_.usedbyteschangedevent_ = usedbyteschangedevent;
+ }
+ // @@protoc_insertion_point(field_unsafe_arena_set_allocated:grpc.UserEvent.usedBytesChangedEvent)
+}
+inline ::grpc::UsedBytesChangedEvent* UserEvent::_internal_mutable_usedbyteschangedevent() {
+ if (!_internal_has_usedbyteschangedevent()) {
+ clear_event();
+ set_has_usedbyteschangedevent();
+ _impl_.event_.usedbyteschangedevent_ = CreateMaybeMessage< ::grpc::UsedBytesChangedEvent >(GetArenaForAllocation());
+ }
+ return _impl_.event_.usedbyteschangedevent_;
+}
+inline ::grpc::UsedBytesChangedEvent* UserEvent::mutable_usedbyteschangedevent() {
+ ::grpc::UsedBytesChangedEvent* _msg = _internal_mutable_usedbyteschangedevent();
+ // @@protoc_insertion_point(field_mutable:grpc.UserEvent.usedBytesChangedEvent)
+ return _msg;
+}
+
inline bool UserEvent::has_event() const {
return event_case() != EVENT_NOT_SET;
}
@@ -16005,6 +16269,80 @@ inline void UserBadEvent::set_allocated_errormessage(std::string* errormessage)
// -------------------------------------------------------------------
+// UsedBytesChangedEvent
+
+// string userID = 1;
+inline void UsedBytesChangedEvent::clear_userid() {
+ _impl_.userid_.ClearToEmpty();
+}
+inline const std::string& UsedBytesChangedEvent::userid() const {
+ // @@protoc_insertion_point(field_get:grpc.UsedBytesChangedEvent.userID)
+ return _internal_userid();
+}
+template
+inline PROTOBUF_ALWAYS_INLINE
+void UsedBytesChangedEvent::set_userid(ArgT0&& arg0, ArgT... args) {
+
+ _impl_.userid_.Set(static_cast(arg0), args..., GetArenaForAllocation());
+ // @@protoc_insertion_point(field_set:grpc.UsedBytesChangedEvent.userID)
+}
+inline std::string* UsedBytesChangedEvent::mutable_userid() {
+ std::string* _s = _internal_mutable_userid();
+ // @@protoc_insertion_point(field_mutable:grpc.UsedBytesChangedEvent.userID)
+ return _s;
+}
+inline const std::string& UsedBytesChangedEvent::_internal_userid() const {
+ return _impl_.userid_.Get();
+}
+inline void UsedBytesChangedEvent::_internal_set_userid(const std::string& value) {
+
+ _impl_.userid_.Set(value, GetArenaForAllocation());
+}
+inline std::string* UsedBytesChangedEvent::_internal_mutable_userid() {
+
+ return _impl_.userid_.Mutable(GetArenaForAllocation());
+}
+inline std::string* UsedBytesChangedEvent::release_userid() {
+ // @@protoc_insertion_point(field_release:grpc.UsedBytesChangedEvent.userID)
+ return _impl_.userid_.Release();
+}
+inline void UsedBytesChangedEvent::set_allocated_userid(std::string* userid) {
+ if (userid != nullptr) {
+
+ } else {
+
+ }
+ _impl_.userid_.SetAllocated(userid, GetArenaForAllocation());
+#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
+ if (_impl_.userid_.IsDefault()) {
+ _impl_.userid_.Set("", GetArenaForAllocation());
+ }
+#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
+ // @@protoc_insertion_point(field_set_allocated:grpc.UsedBytesChangedEvent.userID)
+}
+
+// int64 usedBytes = 2;
+inline void UsedBytesChangedEvent::clear_usedbytes() {
+ _impl_.usedbytes_ = int64_t{0};
+}
+inline int64_t UsedBytesChangedEvent::_internal_usedbytes() const {
+ return _impl_.usedbytes_;
+}
+inline int64_t UsedBytesChangedEvent::usedbytes() const {
+ // @@protoc_insertion_point(field_get:grpc.UsedBytesChangedEvent.usedBytes)
+ return _internal_usedbytes();
+}
+inline void UsedBytesChangedEvent::_internal_set_usedbytes(int64_t value) {
+
+ _impl_.usedbytes_ = value;
+}
+inline void UsedBytesChangedEvent::set_usedbytes(int64_t value) {
+ _internal_set_usedbytes(value);
+ // @@protoc_insertion_point(field_set:grpc.UsedBytesChangedEvent.usedBytes)
+}
+
+// -------------------------------------------------------------------
+
// GenericErrorEvent
// .grpc.ErrorCode code = 1;
@@ -16144,6 +16482,8 @@ inline void GenericErrorEvent::set_code(::grpc::ErrorCode value) {
// -------------------------------------------------------------------
+// -------------------------------------------------------------------
+
// @@protoc_insertion_point(namespace_scope)
diff --git a/internal/frontend/grpc/bridge.pb.go b/internal/frontend/grpc/bridge.pb.go
index f41b42e5..d25c8af5 100644
--- a/internal/frontend/grpc/bridge.pb.go
+++ b/internal/frontend/grpc/bridge.pb.go
@@ -3562,6 +3562,7 @@ type UserEvent struct {
// *UserEvent_UserDisconnected
// *UserEvent_UserChanged
// *UserEvent_UserBadEvent
+ // *UserEvent_UsedBytesChangedEvent
Event isUserEvent_Event `protobuf_oneof:"event"`
}
@@ -3632,6 +3633,13 @@ func (x *UserEvent) GetUserBadEvent() *UserBadEvent {
return nil
}
+func (x *UserEvent) GetUsedBytesChangedEvent() *UsedBytesChangedEvent {
+ if x, ok := x.GetEvent().(*UserEvent_UsedBytesChangedEvent); ok {
+ return x.UsedBytesChangedEvent
+ }
+ return nil
+}
+
type isUserEvent_Event interface {
isUserEvent_Event()
}
@@ -3652,6 +3660,10 @@ type UserEvent_UserBadEvent struct {
UserBadEvent *UserBadEvent `protobuf:"bytes,4,opt,name=userBadEvent,proto3,oneof"`
}
+type UserEvent_UsedBytesChangedEvent struct {
+ UsedBytesChangedEvent *UsedBytesChangedEvent `protobuf:"bytes,5,opt,name=usedBytesChangedEvent,proto3,oneof"`
+}
+
func (*UserEvent_ToggleSplitModeFinished) isUserEvent_Event() {}
func (*UserEvent_UserDisconnected) isUserEvent_Event() {}
@@ -3660,6 +3672,8 @@ func (*UserEvent_UserChanged) isUserEvent_Event() {}
func (*UserEvent_UserBadEvent) isUserEvent_Event() {}
+func (*UserEvent_UsedBytesChangedEvent) isUserEvent_Event() {}
+
type ToggleSplitModeFinishedEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3856,6 +3870,61 @@ func (x *UserBadEvent) GetErrorMessage() string {
return ""
}
+type UsedBytesChangedEvent struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
+ UsedBytes int64 `protobuf:"varint,2,opt,name=usedBytes,proto3" json:"usedBytes,omitempty"`
+}
+
+func (x *UsedBytesChangedEvent) Reset() {
+ *x = UsedBytesChangedEvent{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_bridge_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *UsedBytesChangedEvent) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UsedBytesChangedEvent) ProtoMessage() {}
+
+func (x *UsedBytesChangedEvent) ProtoReflect() protoreflect.Message {
+ mi := &file_bridge_proto_msgTypes[57]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use UsedBytesChangedEvent.ProtoReflect.Descriptor instead.
+func (*UsedBytesChangedEvent) Descriptor() ([]byte, []int) {
+ return file_bridge_proto_rawDescGZIP(), []int{57}
+}
+
+func (x *UsedBytesChangedEvent) GetUserID() string {
+ if x != nil {
+ return x.UserID
+ }
+ return ""
+}
+
+func (x *UsedBytesChangedEvent) GetUsedBytes() int64 {
+ if x != nil {
+ return x.UsedBytes
+ }
+ return 0
+}
+
type GenericErrorEvent struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -3867,7 +3936,7 @@ type GenericErrorEvent struct {
func (x *GenericErrorEvent) Reset() {
*x = GenericErrorEvent{}
if protoimpl.UnsafeEnabled {
- mi := &file_bridge_proto_msgTypes[57]
+ mi := &file_bridge_proto_msgTypes[58]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3880,7 +3949,7 @@ func (x *GenericErrorEvent) String() string {
func (*GenericErrorEvent) ProtoMessage() {}
func (x *GenericErrorEvent) ProtoReflect() protoreflect.Message {
- mi := &file_bridge_proto_msgTypes[57]
+ mi := &file_bridge_proto_msgTypes[58]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3893,7 +3962,7 @@ func (x *GenericErrorEvent) ProtoReflect() protoreflect.Message {
// Deprecated: Use GenericErrorEvent.ProtoReflect.Descriptor instead.
func (*GenericErrorEvent) Descriptor() ([]byte, []int) {
- return file_bridge_proto_rawDescGZIP(), []int{57}
+ return file_bridge_proto_rawDescGZIP(), []int{58}
}
func (x *GenericErrorEvent) GetCode() ErrorCode {
@@ -4270,7 +4339,7 @@ var file_bridge_proto_rawDesc = []byte{
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, 0xb5, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x5e,
+ 0x22, 0x8a, 0x03, 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,
@@ -4288,317 +4357,327 @@ var file_bridge_proto_rawDesc = []byte{
0x61, 0x6e, 0x67, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x42, 0x61, 0x64,
0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x72,
0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48,
- 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x42, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x22, 0x4a, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61, 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, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72, 0x72,
- 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x38, 0x0a,
- 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x45, 0x76, 0x65,
- 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
- 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64,
- 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0x71, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65,
- 0x76, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x50, 0x41, 0x4e, 0x49, 0x43,
- 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10,
- 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02,
- 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x03, 0x12, 0x0c,
- 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09,
- 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x4c,
- 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x2a, 0x36, 0x0a, 0x09, 0x55, 0x73,
- 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x49, 0x47, 0x4e, 0x45,
- 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43, 0x4b, 0x45,
- 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44,
- 0x10, 0x02, 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, 0x6b, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68,
- 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x44, 0x49,
- 0x53, 0x4b, 0x5f, 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, 0x1e, 0x0a, 0x1a,
- 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x43,
- 0x41, 0x43, 0x48, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f,
- 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
- 0x02, 0x2a, 0xdd, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72,
- 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70,
- 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53,
- 0x54, 0x41, 0x52, 0x54, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x1b,
- 0x0a, 0x17, 0x53, 0x4d, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52,
- 0x54, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x49,
- 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f,
- 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x4d, 0x54, 0x50, 0x5f,
- 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f,
- 0x52, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x4e,
- 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e,
- 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x53, 0x4d,
- 0x54, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f,
- 0x44, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
- 0x05, 0x2a, 0x53, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x11,
- 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
- 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x45, 0x52, 0x54, 0x5f, 0x45, 0x58,
- 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14,
- 0x54, 0x4c, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45,
- 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0x99, 0x1d, 0x0a, 0x06, 0x42, 0x72, 0x69, 0x64, 0x67,
- 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73,
- 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, 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, 0x0b,
- 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x67, 0x72,
- 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a,
- 0x08, 0x47, 0x75, 0x69, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
- 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69, 0x52, 0x65, 0x61, 0x64,
- 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74,
- 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
- 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x41,
- 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x46,
- 0x0a, 0x10, 0x53, 0x65, 0x74, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, 0x6c,
- 0x65, 0x64, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61,
- 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x13, 0x53,
- 0x65, 0x74, 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62,
- 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d,
- 0x61, 0x69, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c,
- 0x0a, 0x04, 0x47, 0x6f, 0x4f, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x0c,
- 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x07,
- 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 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, 0x4c, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e,
- 0x6f, 0x74, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
+ 0x00, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x42, 0x61, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12,
+ 0x53, 0x0a, 0x15, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e,
+ 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43,
+ 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x15, 0x75,
+ 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x45,
+ 0x76, 0x65, 0x6e, 0x74, 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, 0x22, 0x4a, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x42, 0x61,
+ 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, 0x12, 0x22,
+ 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x22, 0x4d, 0x0a, 0x15, 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 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, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65,
+ 0x73, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0x71, 0x0a, 0x08, 0x4c,
+ 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x50,
+ 0x41, 0x4e, 0x49, 0x43, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x46, 0x41,
+ 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x45, 0x52, 0x52,
+ 0x4f, 0x52, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x57, 0x41, 0x52, 0x4e,
+ 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x47, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x04,
+ 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12,
+ 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x47, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x2a, 0x36,
+ 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53,
+ 0x49, 0x47, 0x4e, 0x45, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c,
+ 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45,
+ 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 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, 0x6b, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x6b,
+ 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20,
+ 0x0a, 0x1c, 0x44, 0x49, 0x53, 0x4b, 0x5f, 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, 0x1e, 0x0a, 0x1a, 0x43, 0x41, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x44, 0x49,
+ 0x53, 0x4b, 0x5f, 0x43, 0x41, 0x43, 0x48, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01,
+ 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x02, 0x2a, 0xdd, 0x01, 0x0a, 0x1b, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65,
+ 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x72, 0x72, 0x6f,
+ 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f,
+ 0x52, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52,
+ 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x4d, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f,
+ 0x53, 0x54, 0x41, 0x52, 0x54, 0x55, 0x50, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01, 0x12,
+ 0x1a, 0x0a, 0x16, 0x49, 0x4d, 0x41, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x48, 0x41,
+ 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53,
+ 0x4d, 0x54, 0x50, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f,
+ 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x25, 0x0a, 0x21, 0x49, 0x4d, 0x41, 0x50, 0x5f,
+ 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f,
+ 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x25,
+ 0x0a, 0x21, 0x53, 0x4d, 0x54, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x05, 0x2a, 0x53, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f,
+ 0x64, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x45, 0x52,
+ 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x54, 0x4c, 0x53, 0x5f, 0x43, 0x45, 0x52,
+ 0x54, 0x5f, 0x45, 0x58, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01,
+ 0x12, 0x18, 0x0a, 0x14, 0x54, 0x4c, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x45, 0x58, 0x50, 0x4f,
+ 0x52, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0x99, 0x1d, 0x0a, 0x06, 0x42,
+ 0x72, 0x69, 0x64, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x6f,
+ 0x6b, 0x65, 0x6e, 0x73, 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, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79,
- 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x67,
- 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e,
+ 0x75, 0x65, 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, 0x0b, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74,
+ 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x12, 0x3a, 0x0a, 0x08, 0x47, 0x75, 0x69, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x16, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4a, 0x0a, 0x12, 0x53,
- 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4e, 0x61, 0x6d,
- 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
- 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x47, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6f, 0x72,
- 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x75, 0x69,
+ 0x52, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75,
+ 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
+ 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a,
+ 0x0d, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x6e, 0x12, 0x16,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x46, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x49, 0x73, 0x42, 0x65, 0x74, 0x61, 0x45,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0d, 0x49, 0x73,
+ 0x42, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
+ 0x49, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56,
+ 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x10, 0x49, 0x73,
+ 0x41, 0x6c, 0x6c, 0x4d, 0x61, 0x69, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x16,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x47, 0x6f, 0x4f, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
- 0x12, 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, 0x4d, 0x0a, 0x15, 0x45, 0x78, 0x70,
- 0x6f, 0x72, 0x74, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
- 0x65, 0x73, 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, 0x45, 0x0a, 0x0d, 0x46, 0x6f, 0x72, 0x63,
- 0x65, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
- 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
- 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
- 0x49, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74,
- 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
- 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x4c, 0x6f,
- 0x67, 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
- 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
- 0x36, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, 0x12, 0x12, 0x2e, 0x67, 0x72,
- 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x69, 0x6e,
- 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70,
- 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41,
- 0x62, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69,
- 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x70,
- 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x49, 0x73, 0x41, 0x75,
- 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12,
- 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
- 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
- 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74,
- 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
- 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 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, 0x48, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b,
- 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 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,
- 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, 0x44, 0x0a, 0x12, 0x4d, 0x61,
- 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
+ 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, 0x72, 0x70, 0x63, 0x2e,
- 0x49, 0x6d, 0x61, 0x70, 0x53, 0x6d, 0x74, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73,
- 0x12, 0x47, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65,
- 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x70, 0x63,
- 0x2e, 0x49, 0x6d, 0x61, 0x70, 0x53, 0x6d, 0x74, 0x70, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
- 0x73, 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, 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, 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,
+ 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, 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,
+ 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, 0x12, 0x42, 0x0a, 0x0a, 0x4c, 0x6f, 0x67, 0x6f, 0x75, 0x74, 0x55, 0x73, 0x65,
- 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
- 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
- 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76,
- 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 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, 0x4c, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x65,
+ 0x61, 0x73, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64,
+ 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x4c, 0x69, 0x6e, 0x6b,
+ 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x64, 0x69, 0x6e,
+ 0x67, 0x50, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
+ 0x4a, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x53, 0x63, 0x68, 0x65, 0x6d,
+ 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x51, 0x0a, 0x16, 0x43,
- 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c,
- 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
- 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f,
- 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d,
- 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72,
- 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x70,
- 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12,
- 0x41, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65,
- 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+ 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, 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, 0x33, 0x2f, 0x69, 0x6e, 0x74,
- 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 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, 0x4d, 0x0a,
+ 0x15, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x4c, 0x53, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 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, 0x45, 0x0a, 0x0d,
+ 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1c, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6e, 0x45, 0x78,
+ 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
+ 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x33,
+ 0x0a, 0x05, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c,
+ 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
+ 0x70, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x46, 0x41, 0x12,
+ 0x12, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0f, 0x4c,
+ 0x6f, 0x67, 0x69, 0x6e, 0x32, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x12,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0a, 0x4c, 0x6f,
+ 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e,
+ 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0b, 0x43, 0x68, 0x65,
+ 0x63, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0d, 0x49, 0x6e, 0x73, 0x74,
+ 0x61, 0x6c, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74,
+ 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4c, 0x0a, 0x16, 0x53, 0x65, 0x74,
+ 0x49, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x4f, 0x6e, 0x12, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a,
+ 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
+ 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x13, 0x49, 0x73, 0x41, 0x75, 0x74,
+ 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x12, 0x16,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c,
+ 0x75, 0x65, 0x12, 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, 0x48, 0x0a, 0x10, 0x53, 0x65, 0x74,
+ 0x44, 0x69, 0x73, 0x6b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x61, 0x74, 0x68, 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, 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, 0x44,
+ 0x0a, 0x12, 0x4d, 0x61, 0x69, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 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, 0x16, 0x2e, 0x67,
+ 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x61, 0x70, 0x53, 0x6d, 0x74, 0x70, 0x53, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x69, 0x6c, 0x53,
+ 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x16, 0x2e,
+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6d, 0x61, 0x70, 0x53, 0x6d, 0x74, 0x70, 0x53, 0x65, 0x74,
+ 0x74, 0x69, 0x6e, 0x67, 0x73, 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, 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,
+ 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, 0x4c, 0x6f, 0x67, 0x6f, 0x75,
+ 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61,
+ 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x52,
+ 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
+ 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69,
+ 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12,
+ 0x51, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x55, 0x73, 0x65, 0x72,
+ 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x4d,
+ 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
+ 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x0e, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74,
+ 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11,
+ 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x45, 0x76, 0x65, 0x6e,
+ 0x74, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x76, 0x65, 0x6e, 0x74,
+ 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16,
+ 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
+ 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62,
+ 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x4d, 0x61, 0x69, 0x6c, 0x2f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x6e, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2f, 0x76, 0x33,
+ 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -4614,7 +4693,7 @@ func file_bridge_proto_rawDescGZIP() []byte {
}
var file_bridge_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
-var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 58)
+var file_bridge_proto_msgTypes = make([]protoimpl.MessageInfo, 59)
var file_bridge_proto_goTypes = []interface{}{
(LogLevel)(0), // 0: grpc.LogLevel
(UserState)(0), // 1: grpc.UserState
@@ -4680,11 +4759,12 @@ var file_bridge_proto_goTypes = []interface{}{
(*UserDisconnectedEvent)(nil), // 61: grpc.UserDisconnectedEvent
(*UserChangedEvent)(nil), // 62: grpc.UserChangedEvent
(*UserBadEvent)(nil), // 63: grpc.UserBadEvent
- (*GenericErrorEvent)(nil), // 64: grpc.GenericErrorEvent
- (*wrapperspb.StringValue)(nil), // 65: google.protobuf.StringValue
- (*emptypb.Empty)(nil), // 66: google.protobuf.Empty
- (*wrapperspb.BoolValue)(nil), // 67: google.protobuf.BoolValue
- (*wrapperspb.Int32Value)(nil), // 68: google.protobuf.Int32Value
+ (*UsedBytesChangedEvent)(nil), // 64: grpc.UsedBytesChangedEvent
+ (*GenericErrorEvent)(nil), // 65: grpc.GenericErrorEvent
+ (*wrapperspb.StringValue)(nil), // 66: google.protobuf.StringValue
+ (*emptypb.Empty)(nil), // 67: google.protobuf.Empty
+ (*wrapperspb.BoolValue)(nil), // 68: google.protobuf.BoolValue
+ (*wrapperspb.Int32Value)(nil), // 69: google.protobuf.Int32Value
}
var file_bridge_proto_depIdxs = []int32{
0, // 0: grpc.AddLogEntryRequest.level:type_name -> grpc.LogLevel
@@ -4698,7 +4778,7 @@ var file_bridge_proto_depIdxs = []int32{
50, // 8: grpc.StreamEvent.keychain:type_name -> grpc.KeychainEvent
54, // 9: grpc.StreamEvent.mail:type_name -> grpc.MailEvent
59, // 10: grpc.StreamEvent.user:type_name -> grpc.UserEvent
- 64, // 11: grpc.StreamEvent.genericError:type_name -> grpc.GenericErrorEvent
+ 65, // 11: grpc.StreamEvent.genericError:type_name -> grpc.GenericErrorEvent
21, // 12: grpc.AppEvent.internetStatus:type_name -> grpc.InternetStatusEvent
22, // 13: grpc.AppEvent.toggleAutostartFinished:type_name -> grpc.ToggleAutostartFinishedEvent
23, // 14: grpc.AppEvent.resetFinished:type_name -> grpc.ResetFinishedEvent
@@ -4741,120 +4821,121 @@ var file_bridge_proto_depIdxs = []int32{
61, // 51: grpc.UserEvent.userDisconnected:type_name -> grpc.UserDisconnectedEvent
62, // 52: grpc.UserEvent.userChanged:type_name -> grpc.UserChangedEvent
63, // 53: grpc.UserEvent.userBadEvent:type_name -> grpc.UserBadEvent
- 6, // 54: grpc.GenericErrorEvent.code:type_name -> grpc.ErrorCode
- 65, // 55: grpc.Bridge.CheckTokens:input_type -> google.protobuf.StringValue
- 7, // 56: grpc.Bridge.AddLogEntry:input_type -> grpc.AddLogEntryRequest
- 66, // 57: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty
- 66, // 58: grpc.Bridge.Quit:input_type -> google.protobuf.Empty
- 66, // 59: grpc.Bridge.Restart:input_type -> google.protobuf.Empty
- 66, // 60: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty
- 67, // 61: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue
- 66, // 62: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty
- 67, // 63: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue
- 66, // 64: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty
- 67, // 65: grpc.Bridge.SetIsAllMailVisible:input_type -> google.protobuf.BoolValue
- 66, // 66: grpc.Bridge.IsAllMailVisible:input_type -> google.protobuf.Empty
- 66, // 67: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty
- 66, // 68: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty
- 66, // 69: grpc.Bridge.Version:input_type -> google.protobuf.Empty
- 66, // 70: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty
- 66, // 71: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty
- 66, // 72: grpc.Bridge.ReleaseNotesPageLink:input_type -> google.protobuf.Empty
- 66, // 73: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty
- 66, // 74: grpc.Bridge.LandingPageLink:input_type -> google.protobuf.Empty
- 65, // 75: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue
- 66, // 76: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty
- 66, // 77: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty
- 9, // 78: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest
- 65, // 79: grpc.Bridge.ExportTLSCertificates:input_type -> google.protobuf.StringValue
- 65, // 80: grpc.Bridge.ForceLauncher:input_type -> google.protobuf.StringValue
- 65, // 81: grpc.Bridge.SetMainExecutable:input_type -> google.protobuf.StringValue
- 10, // 82: grpc.Bridge.Login:input_type -> grpc.LoginRequest
- 10, // 83: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest
- 10, // 84: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest
- 11, // 85: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest
- 66, // 86: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty
- 66, // 87: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty
- 67, // 88: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue
- 66, // 89: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty
- 66, // 90: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty
- 65, // 91: grpc.Bridge.SetDiskCachePath:input_type -> google.protobuf.StringValue
- 67, // 92: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue
- 66, // 93: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty
- 66, // 94: grpc.Bridge.MailServerSettings:input_type -> google.protobuf.Empty
- 12, // 95: grpc.Bridge.SetMailServerSettings:input_type -> grpc.ImapSmtpSettings
- 66, // 96: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty
- 68, // 97: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value
- 66, // 98: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty
- 65, // 99: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue
- 66, // 100: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty
- 66, // 101: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty
- 65, // 102: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue
- 15, // 103: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest
- 65, // 104: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue
- 65, // 105: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue
- 17, // 106: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest
- 18, // 107: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest
- 66, // 108: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty
- 65, // 109: grpc.Bridge.CheckTokens:output_type -> google.protobuf.StringValue
- 66, // 110: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty
- 8, // 111: grpc.Bridge.GuiReady:output_type -> grpc.GuiReadyResponse
- 66, // 112: grpc.Bridge.Quit:output_type -> google.protobuf.Empty
- 66, // 113: grpc.Bridge.Restart:output_type -> google.protobuf.Empty
- 67, // 114: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue
- 66, // 115: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty
- 67, // 116: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue
- 66, // 117: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty
- 67, // 118: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue
- 66, // 119: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty
- 67, // 120: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue
- 65, // 121: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue
- 66, // 122: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty
- 65, // 123: grpc.Bridge.Version:output_type -> google.protobuf.StringValue
- 65, // 124: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue
- 65, // 125: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue
- 65, // 126: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue
- 65, // 127: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue
- 65, // 128: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue
- 66, // 129: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty
- 65, // 130: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue
- 65, // 131: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue
- 66, // 132: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty
- 66, // 133: grpc.Bridge.ExportTLSCertificates:output_type -> google.protobuf.Empty
- 66, // 134: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty
- 66, // 135: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty
- 66, // 136: grpc.Bridge.Login:output_type -> google.protobuf.Empty
- 66, // 137: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty
- 66, // 138: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty
- 66, // 139: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty
- 66, // 140: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty
- 66, // 141: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty
- 66, // 142: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty
- 67, // 143: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue
- 65, // 144: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue
- 66, // 145: grpc.Bridge.SetDiskCachePath:output_type -> google.protobuf.Empty
- 66, // 146: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty
- 67, // 147: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue
- 12, // 148: grpc.Bridge.MailServerSettings:output_type -> grpc.ImapSmtpSettings
- 66, // 149: grpc.Bridge.SetMailServerSettings:output_type -> google.protobuf.Empty
- 65, // 150: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue
- 67, // 151: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue
- 13, // 152: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse
- 66, // 153: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty
- 65, // 154: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue
- 16, // 155: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse
- 14, // 156: grpc.Bridge.GetUser:output_type -> grpc.User
- 66, // 157: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty
- 66, // 158: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty
- 66, // 159: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty
- 66, // 160: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty
- 19, // 161: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent
- 66, // 162: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty
- 109, // [109:163] is the sub-list for method output_type
- 55, // [55:109] is the sub-list for method input_type
- 55, // [55:55] is the sub-list for extension type_name
- 55, // [55:55] is the sub-list for extension extendee
- 0, // [0:55] is the sub-list for field type_name
+ 64, // 54: grpc.UserEvent.usedBytesChangedEvent:type_name -> grpc.UsedBytesChangedEvent
+ 6, // 55: grpc.GenericErrorEvent.code:type_name -> grpc.ErrorCode
+ 66, // 56: grpc.Bridge.CheckTokens:input_type -> google.protobuf.StringValue
+ 7, // 57: grpc.Bridge.AddLogEntry:input_type -> grpc.AddLogEntryRequest
+ 67, // 58: grpc.Bridge.GuiReady:input_type -> google.protobuf.Empty
+ 67, // 59: grpc.Bridge.Quit:input_type -> google.protobuf.Empty
+ 67, // 60: grpc.Bridge.Restart:input_type -> google.protobuf.Empty
+ 67, // 61: grpc.Bridge.ShowOnStartup:input_type -> google.protobuf.Empty
+ 68, // 62: grpc.Bridge.SetIsAutostartOn:input_type -> google.protobuf.BoolValue
+ 67, // 63: grpc.Bridge.IsAutostartOn:input_type -> google.protobuf.Empty
+ 68, // 64: grpc.Bridge.SetIsBetaEnabled:input_type -> google.protobuf.BoolValue
+ 67, // 65: grpc.Bridge.IsBetaEnabled:input_type -> google.protobuf.Empty
+ 68, // 66: grpc.Bridge.SetIsAllMailVisible:input_type -> google.protobuf.BoolValue
+ 67, // 67: grpc.Bridge.IsAllMailVisible:input_type -> google.protobuf.Empty
+ 67, // 68: grpc.Bridge.GoOs:input_type -> google.protobuf.Empty
+ 67, // 69: grpc.Bridge.TriggerReset:input_type -> google.protobuf.Empty
+ 67, // 70: grpc.Bridge.Version:input_type -> google.protobuf.Empty
+ 67, // 71: grpc.Bridge.LogsPath:input_type -> google.protobuf.Empty
+ 67, // 72: grpc.Bridge.LicensePath:input_type -> google.protobuf.Empty
+ 67, // 73: grpc.Bridge.ReleaseNotesPageLink:input_type -> google.protobuf.Empty
+ 67, // 74: grpc.Bridge.DependencyLicensesLink:input_type -> google.protobuf.Empty
+ 67, // 75: grpc.Bridge.LandingPageLink:input_type -> google.protobuf.Empty
+ 66, // 76: grpc.Bridge.SetColorSchemeName:input_type -> google.protobuf.StringValue
+ 67, // 77: grpc.Bridge.ColorSchemeName:input_type -> google.protobuf.Empty
+ 67, // 78: grpc.Bridge.CurrentEmailClient:input_type -> google.protobuf.Empty
+ 9, // 79: grpc.Bridge.ReportBug:input_type -> grpc.ReportBugRequest
+ 66, // 80: grpc.Bridge.ExportTLSCertificates:input_type -> google.protobuf.StringValue
+ 66, // 81: grpc.Bridge.ForceLauncher:input_type -> google.protobuf.StringValue
+ 66, // 82: grpc.Bridge.SetMainExecutable:input_type -> google.protobuf.StringValue
+ 10, // 83: grpc.Bridge.Login:input_type -> grpc.LoginRequest
+ 10, // 84: grpc.Bridge.Login2FA:input_type -> grpc.LoginRequest
+ 10, // 85: grpc.Bridge.Login2Passwords:input_type -> grpc.LoginRequest
+ 11, // 86: grpc.Bridge.LoginAbort:input_type -> grpc.LoginAbortRequest
+ 67, // 87: grpc.Bridge.CheckUpdate:input_type -> google.protobuf.Empty
+ 67, // 88: grpc.Bridge.InstallUpdate:input_type -> google.protobuf.Empty
+ 68, // 89: grpc.Bridge.SetIsAutomaticUpdateOn:input_type -> google.protobuf.BoolValue
+ 67, // 90: grpc.Bridge.IsAutomaticUpdateOn:input_type -> google.protobuf.Empty
+ 67, // 91: grpc.Bridge.DiskCachePath:input_type -> google.protobuf.Empty
+ 66, // 92: grpc.Bridge.SetDiskCachePath:input_type -> google.protobuf.StringValue
+ 68, // 93: grpc.Bridge.SetIsDoHEnabled:input_type -> google.protobuf.BoolValue
+ 67, // 94: grpc.Bridge.IsDoHEnabled:input_type -> google.protobuf.Empty
+ 67, // 95: grpc.Bridge.MailServerSettings:input_type -> google.protobuf.Empty
+ 12, // 96: grpc.Bridge.SetMailServerSettings:input_type -> grpc.ImapSmtpSettings
+ 67, // 97: grpc.Bridge.Hostname:input_type -> google.protobuf.Empty
+ 69, // 98: grpc.Bridge.IsPortFree:input_type -> google.protobuf.Int32Value
+ 67, // 99: grpc.Bridge.AvailableKeychains:input_type -> google.protobuf.Empty
+ 66, // 100: grpc.Bridge.SetCurrentKeychain:input_type -> google.protobuf.StringValue
+ 67, // 101: grpc.Bridge.CurrentKeychain:input_type -> google.protobuf.Empty
+ 67, // 102: grpc.Bridge.GetUserList:input_type -> google.protobuf.Empty
+ 66, // 103: grpc.Bridge.GetUser:input_type -> google.protobuf.StringValue
+ 15, // 104: grpc.Bridge.SetUserSplitMode:input_type -> grpc.UserSplitModeRequest
+ 66, // 105: grpc.Bridge.LogoutUser:input_type -> google.protobuf.StringValue
+ 66, // 106: grpc.Bridge.RemoveUser:input_type -> google.protobuf.StringValue
+ 17, // 107: grpc.Bridge.ConfigureUserAppleMail:input_type -> grpc.ConfigureAppleMailRequest
+ 18, // 108: grpc.Bridge.RunEventStream:input_type -> grpc.EventStreamRequest
+ 67, // 109: grpc.Bridge.StopEventStream:input_type -> google.protobuf.Empty
+ 66, // 110: grpc.Bridge.CheckTokens:output_type -> google.protobuf.StringValue
+ 67, // 111: grpc.Bridge.AddLogEntry:output_type -> google.protobuf.Empty
+ 8, // 112: grpc.Bridge.GuiReady:output_type -> grpc.GuiReadyResponse
+ 67, // 113: grpc.Bridge.Quit:output_type -> google.protobuf.Empty
+ 67, // 114: grpc.Bridge.Restart:output_type -> google.protobuf.Empty
+ 68, // 115: grpc.Bridge.ShowOnStartup:output_type -> google.protobuf.BoolValue
+ 67, // 116: grpc.Bridge.SetIsAutostartOn:output_type -> google.protobuf.Empty
+ 68, // 117: grpc.Bridge.IsAutostartOn:output_type -> google.protobuf.BoolValue
+ 67, // 118: grpc.Bridge.SetIsBetaEnabled:output_type -> google.protobuf.Empty
+ 68, // 119: grpc.Bridge.IsBetaEnabled:output_type -> google.protobuf.BoolValue
+ 67, // 120: grpc.Bridge.SetIsAllMailVisible:output_type -> google.protobuf.Empty
+ 68, // 121: grpc.Bridge.IsAllMailVisible:output_type -> google.protobuf.BoolValue
+ 66, // 122: grpc.Bridge.GoOs:output_type -> google.protobuf.StringValue
+ 67, // 123: grpc.Bridge.TriggerReset:output_type -> google.protobuf.Empty
+ 66, // 124: grpc.Bridge.Version:output_type -> google.protobuf.StringValue
+ 66, // 125: grpc.Bridge.LogsPath:output_type -> google.protobuf.StringValue
+ 66, // 126: grpc.Bridge.LicensePath:output_type -> google.protobuf.StringValue
+ 66, // 127: grpc.Bridge.ReleaseNotesPageLink:output_type -> google.protobuf.StringValue
+ 66, // 128: grpc.Bridge.DependencyLicensesLink:output_type -> google.protobuf.StringValue
+ 66, // 129: grpc.Bridge.LandingPageLink:output_type -> google.protobuf.StringValue
+ 67, // 130: grpc.Bridge.SetColorSchemeName:output_type -> google.protobuf.Empty
+ 66, // 131: grpc.Bridge.ColorSchemeName:output_type -> google.protobuf.StringValue
+ 66, // 132: grpc.Bridge.CurrentEmailClient:output_type -> google.protobuf.StringValue
+ 67, // 133: grpc.Bridge.ReportBug:output_type -> google.protobuf.Empty
+ 67, // 134: grpc.Bridge.ExportTLSCertificates:output_type -> google.protobuf.Empty
+ 67, // 135: grpc.Bridge.ForceLauncher:output_type -> google.protobuf.Empty
+ 67, // 136: grpc.Bridge.SetMainExecutable:output_type -> google.protobuf.Empty
+ 67, // 137: grpc.Bridge.Login:output_type -> google.protobuf.Empty
+ 67, // 138: grpc.Bridge.Login2FA:output_type -> google.protobuf.Empty
+ 67, // 139: grpc.Bridge.Login2Passwords:output_type -> google.protobuf.Empty
+ 67, // 140: grpc.Bridge.LoginAbort:output_type -> google.protobuf.Empty
+ 67, // 141: grpc.Bridge.CheckUpdate:output_type -> google.protobuf.Empty
+ 67, // 142: grpc.Bridge.InstallUpdate:output_type -> google.protobuf.Empty
+ 67, // 143: grpc.Bridge.SetIsAutomaticUpdateOn:output_type -> google.protobuf.Empty
+ 68, // 144: grpc.Bridge.IsAutomaticUpdateOn:output_type -> google.protobuf.BoolValue
+ 66, // 145: grpc.Bridge.DiskCachePath:output_type -> google.protobuf.StringValue
+ 67, // 146: grpc.Bridge.SetDiskCachePath:output_type -> google.protobuf.Empty
+ 67, // 147: grpc.Bridge.SetIsDoHEnabled:output_type -> google.protobuf.Empty
+ 68, // 148: grpc.Bridge.IsDoHEnabled:output_type -> google.protobuf.BoolValue
+ 12, // 149: grpc.Bridge.MailServerSettings:output_type -> grpc.ImapSmtpSettings
+ 67, // 150: grpc.Bridge.SetMailServerSettings:output_type -> google.protobuf.Empty
+ 66, // 151: grpc.Bridge.Hostname:output_type -> google.protobuf.StringValue
+ 68, // 152: grpc.Bridge.IsPortFree:output_type -> google.protobuf.BoolValue
+ 13, // 153: grpc.Bridge.AvailableKeychains:output_type -> grpc.AvailableKeychainsResponse
+ 67, // 154: grpc.Bridge.SetCurrentKeychain:output_type -> google.protobuf.Empty
+ 66, // 155: grpc.Bridge.CurrentKeychain:output_type -> google.protobuf.StringValue
+ 16, // 156: grpc.Bridge.GetUserList:output_type -> grpc.UserListResponse
+ 14, // 157: grpc.Bridge.GetUser:output_type -> grpc.User
+ 67, // 158: grpc.Bridge.SetUserSplitMode:output_type -> google.protobuf.Empty
+ 67, // 159: grpc.Bridge.LogoutUser:output_type -> google.protobuf.Empty
+ 67, // 160: grpc.Bridge.RemoveUser:output_type -> google.protobuf.Empty
+ 67, // 161: grpc.Bridge.ConfigureUserAppleMail:output_type -> google.protobuf.Empty
+ 19, // 162: grpc.Bridge.RunEventStream:output_type -> grpc.StreamEvent
+ 67, // 163: grpc.Bridge.StopEventStream:output_type -> google.protobuf.Empty
+ 110, // [110:164] is the sub-list for method output_type
+ 56, // [56:110] is the sub-list for method input_type
+ 56, // [56:56] is the sub-list for extension type_name
+ 56, // [56:56] is the sub-list for extension extendee
+ 0, // [0:56] is the sub-list for field type_name
}
func init() { file_bridge_proto_init() }
@@ -5548,6 +5629,18 @@ func file_bridge_proto_init() {
}
}
file_bridge_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*UsedBytesChangedEvent); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_bridge_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GenericErrorEvent); i {
case 0:
return &v.state
@@ -5623,6 +5716,7 @@ func file_bridge_proto_init() {
(*UserEvent_UserDisconnected)(nil),
(*UserEvent_UserChanged)(nil),
(*UserEvent_UserBadEvent)(nil),
+ (*UserEvent_UsedBytesChangedEvent)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -5630,7 +5724,7 @@ func file_bridge_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_bridge_proto_rawDesc,
NumEnums: 7,
- NumMessages: 58,
+ NumMessages: 59,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/internal/frontend/grpc/bridge.proto b/internal/frontend/grpc/bridge.proto
index 0c13c4d2..957ca153 100644
--- a/internal/frontend/grpc/bridge.proto
+++ b/internal/frontend/grpc/bridge.proto
@@ -448,6 +448,7 @@ message UserEvent {
UserDisconnectedEvent userDisconnected = 2;
UserChangedEvent userChanged = 3;
UserBadEvent userBadEvent = 4;
+ UsedBytesChangedEvent usedBytesChangedEvent= 5;
}
}
@@ -468,6 +469,11 @@ message UserBadEvent {
string errorMessage = 2;
}
+message UsedBytesChangedEvent {
+ string userID = 1;
+ int64 usedBytes = 2;
+}
+
//**********************************************************
// Generic errors
//**********************************************************
diff --git a/internal/frontend/grpc/event_factory.go b/internal/frontend/grpc/event_factory.go
index 29b0f11c..98644291 100644
--- a/internal/frontend/grpc/event_factory.go
+++ b/internal/frontend/grpc/event_factory.go
@@ -177,6 +177,10 @@ func NewUserBadEvent(userID string, errorMessage string) *StreamEvent {
return userEvent(&UserEvent{Event: &UserEvent_UserBadEvent{UserBadEvent: &UserBadEvent{UserID: userID, ErrorMessage: errorMessage}}})
}
+func NewUsedBytesChangedEvent(userID string, usedBytes int) *StreamEvent {
+ return userEvent(&UserEvent{Event: &UserEvent_UsedBytesChangedEvent{UsedBytesChangedEvent: &UsedBytesChangedEvent{UserID: userID, UsedBytes: int64(usedBytes)}}})
+}
+
func NewGenericErrorEvent(errorCode ErrorCode) *StreamEvent {
return genericErrorEvent(&GenericErrorEvent{Code: errorCode})
}
diff --git a/internal/frontend/grpc/service.go b/internal/frontend/grpc/service.go
index e1d281a8..5857d348 100644
--- a/internal/frontend/grpc/service.go
+++ b/internal/frontend/grpc/service.go
@@ -305,6 +305,9 @@ func (s *Service) watchEvents() {
case events.AddressModeChanged:
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
+ case events.UsedSpaceChanged:
+ _ = s.SendEvent(NewUsedBytesChangedEvent(event.UserID, event.UsedSpace))
+
case events.UserDeauth:
// This is the event the GUI cares about.
_ = s.SendEvent(NewUserChangedEvent(event.UserID))
diff --git a/internal/frontend/grpc/service_stream.go b/internal/frontend/grpc/service_stream.go
index 5a727585..83d6c4d2 100644
--- a/internal/frontend/grpc/service_stream.go
+++ b/internal/frontend/grpc/service_stream.go
@@ -174,6 +174,7 @@ func (s *Service) StartEventTest() error { //nolint:funlen
NewUserToggleSplitModeFinishedEvent("userID"),
NewUserDisconnectedEvent("username"),
NewUserChangedEvent("userID"),
+ NewUsedBytesChangedEvent("userID", 1000),
}
for _, event := range events {
diff --git a/internal/user/events.go b/internal/user/events.go
index 5311c8bd..b009a2f6 100644
--- a/internal/user/events.go
+++ b/internal/user/events.go
@@ -66,6 +66,10 @@ func (user *User) handleAPIEvent(ctx context.Context, event proton.Event) error
}
}
+ if event.UsedSpace != nil {
+ user.handleUsedSpaceChange(*event.UsedSpace)
+ }
+
return nil
}
@@ -655,6 +659,20 @@ func (user *User) handleUpdateDraftEvent(ctx context.Context, event proton.Messa
}, user.apiUserLock, user.apiAddrsLock, user.apiLabelsLock, user.updateChLock)
}
+func (user *User) handleUsedSpaceChange(usedSpace int) {
+ safe.Lock(func() {
+ if user.apiUser.UsedSpace == usedSpace {
+ return
+ }
+
+ user.apiUser.UsedSpace = usedSpace
+ user.eventCh.Enqueue(events.UsedSpaceChanged{
+ UserID: user.apiUser.ID,
+ UsedSpace: usedSpace,
+ })
+ }, user.apiUserLock)
+}
+
func getMailboxName(label proton.Label) []string {
var name []string