From abd3f63b8dd72315c6c28670f85eb1cc06bab936 Mon Sep 17 00:00:00 2001 From: saiddis Date: Sun, 14 Dec 2025 22:39:27 +0500 Subject: [PATCH 01/10] feat: add idle inhibitor --- cmd/hyprpanel-client/idle_inhibitor.go | 150 ++++++ cmd/hyprpanel-client/panel.go | 4 + cmd/hyprpanel/host.go | 8 + config/default.json | 16 + internal/dbus/dbus.go | 19 + internal/dbus/fdo.go | 9 +- internal/dbus/idle_inhibitor.go | 126 +++++ internal/panelplugin/grpc.go | 17 + internal/panelplugin/interface.go | 1 + proto/doc/hyprpanel/config/v1/doc.md | 17 + proto/doc/hyprpanel/event/v1/doc.md | 15 + proto/doc/hyprpanel/module/v1/doc.md | 18 + proto/doc/hyprpanel/v1/doc.md | 28 ++ proto/hyprpanel/config/v1/config.pb.go | 259 ++++++---- proto/hyprpanel/config/v1/config.proto | 5 + proto/hyprpanel/event/v1/event.pb.go | 465 +++++++++-------- proto/hyprpanel/event/v1/event.proto | 7 + proto/hyprpanel/module/v1/module.pb.go | 198 ++++++-- proto/hyprpanel/module/v1/module.proto | 6 + proto/hyprpanel/v1/hyprpanel.pb.go | 632 ++++++++++++++---------- proto/hyprpanel/v1/hyprpanel.proto | 7 + proto/hyprpanel/v1/hyprpanel_grpc.pb.go | 37 ++ style/style.go | 2 + 23 files changed, 1449 insertions(+), 597 deletions(-) create mode 100644 cmd/hyprpanel-client/idle_inhibitor.go create mode 100644 internal/dbus/idle_inhibitor.go diff --git a/cmd/hyprpanel-client/idle_inhibitor.go b/cmd/hyprpanel-client/idle_inhibitor.go new file mode 100644 index 0000000..0ce0d3e --- /dev/null +++ b/cmd/hyprpanel-client/idle_inhibitor.go @@ -0,0 +1,150 @@ +package main + +import ( + "github.com/jwijenbergh/puregotk/v4/gdk" + "github.com/jwijenbergh/puregotk/v4/gtk" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + modulev1 "github.com/pdf/hyprpanel/proto/hyprpanel/module/v1" + "github.com/pdf/hyprpanel/style" +) + +type idleInhibitor struct { + *refTracker + *api + cfg *modulev1.IdleInhibitor + eventCh chan *eventv1.Event + quitCh chan struct{} + active bool + + container *gtk.CenterBox + icon *gtk.Image +} + +func (i *idleInhibitor) build(container *gtk.Box) error { + i.container = gtk.NewCenterBox() + i.container.SetName(style.IdleInhibitorID) + i.container.AddCssClass(style.ModuleClass) + + clickCb := func(ctrl gtk.GestureClick, nPress int, x, y float64) { + switch ctrl.GetCurrentButton() { + case uint(gdk.BUTTON_PRIMARY): + if err := i.host.IdleInhibitorToggle(eventv1.InhibitTarget_INHIBIT_TARGET_IDLE); err != nil { + log.Warn(`Failed toggling idle inhibitor`, `err`, err) + } else if err = i.toggle(); err != nil { + log.Warn(`Failed updating idle inhibitor`, `err`, err) + } + } + } + + i.AddRef(func() { + unrefCallback(&clickCb) + }) + clickController := gtk.NewGestureClick() + clickController.SetButton(1) + clickController.ConnectReleased(&clickCb) + i.container.AddController(&clickController.EventController) + + container.Append(&i.container.Widget) + + icon, err := createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + i.icon = icon + i.container.SetCenterWidget(&i.icon.Widget) + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) + + go i.watch() + + return nil +} + +func (i *idleInhibitor) events() chan<- *eventv1.Event { + return i.eventCh +} + +func (i *idleInhibitor) close(container *gtk.Box) { + defer i.Unref() + log.Info(`Closing module on request`, `module`, style.IdleInhibitorID) + container.Remove(&i.container.Widget) + if i.icon != nil { + i.icon.Unref() + } +} + +func newIdleInhibitor(cfg *modulev1.IdleInhibitor, a *api) *idleInhibitor { + i := &idleInhibitor{ + cfg: cfg, + refTracker: newRefTracker(), + api: a, + eventCh: make(chan *eventv1.Event), + quitCh: make(chan struct{}), + } + i.AddRef(func() { + close(i.quitCh) + close(i.eventCh) + }) + return i +} + +func (i *idleInhibitor) watch() { + for { + select { + case <-i.quitCh: + return + default: + select { + case <-i.quitCh: + return + case <-i.eventCh: + } + } + } + +} + +func (i *idleInhibitor) toggle() error { + if i.icon != nil { + old := i.icon + defer old.Unref() + i.icon = nil + } + + var ( + icon *gtk.Image + err error + ) + + if i.active { + icon, err = createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) + i.active = false + } else { + icon, err = createIcon( + `inhibit-active`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + i.container.SetTooltipMarkup(`Idle inhibitor is active`) + i.active = true + } + + if err != nil { + return err + } + + i.icon = icon + i.container.SetCenterWidget(&i.icon.Widget) + return nil +} diff --git a/cmd/hyprpanel-client/panel.go b/cmd/hyprpanel-client/panel.go index 42f19e3..3d92629 100644 --- a/cmd/hyprpanel-client/panel.go +++ b/cmd/hyprpanel-client/panel.go @@ -218,6 +218,10 @@ func (p *panel) build() error { for _, modCfg := range p.panelCfg.Modules { modCfg := modCfg switch modCfg.Kind.(type) { + case *modulev1.Module_IdleInhibitor: + cfg := modCfg.GetIdleInhibitor() + mod := newIdleInhibitor(cfg, p.api) + p.modules = append(p.modules, mod) case *modulev1.Module_Pager: cfg := modCfg.GetPager() mod := newPager(cfg, p.api) diff --git a/cmd/hyprpanel/host.go b/cmd/hyprpanel/host.go index 8ec4814..be3f700 100644 --- a/cmd/hyprpanel/host.go +++ b/cmd/hyprpanel/host.go @@ -176,6 +176,14 @@ func (h *host) BrightnessAdjust(devName string, direction eventv1.Direction) err return h.dbus.Brightness().Adjust(devName, direction) } +func (h *host) IdleInhibitorToggle(target eventv1.InhibitTarget) error { + if i := h.dbus.IdleInhibitor(); i.IsActive() { + return i.Uninhibit() + } else { + return i.Inhibit(target) + } +} + func (h *host) CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) { if h.wl == nil { return nil, fmt.Errorf(`wl app not available`) diff --git a/config/default.json b/config/default.json index c2af22e..248b031 100644 --- a/config/default.json +++ b/config/default.json @@ -27,6 +27,9 @@ "low_command": "", "critical_command": "", "hud_notifications": true + }, + "idle_inhibitor": { + "enabled": true } }, "audio": { @@ -137,6 +140,19 @@ "expand": false } }, + { + "idle_inhibitor": { + "icon_size": 24, + "icon_symbolic": true + + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, { "audio": { "icon_size": 32, diff --git a/internal/dbus/dbus.go b/internal/dbus/dbus.go index 584debc..c5c2f33 100644 --- a/internal/dbus/dbus.go +++ b/internal/dbus/dbus.go @@ -43,6 +43,13 @@ type Brightness interface { Adjust(devName string, direction eventv1.Direction) error } +// IdleInhibitor DBUS API, may return nil if IdleInhibitor is disabled. +type IdleInhibitor interface { + IsActive() bool + Inhibit(target eventv1.InhibitTarget) error + Uninhibit() error +} + // Client for DBUS. type Client struct { cfg *configv1.Config_DBUS @@ -56,6 +63,7 @@ type Client struct { notifications *notifications brightness *brightness power *power + idleInhibitor *idleInhibitor } // Systray API. @@ -73,6 +81,11 @@ func (c *Client) Brightness() Brightness { return c.brightness } +// IdleInhibitor API. +func (c *Client) IdleInhibitor() IdleInhibitor { + return c.idleInhibitor +} + // Events channel will deliver events from DBUS. func (c *Client) Events() <-chan *eventv1.Event { return c.eventCh @@ -155,6 +168,12 @@ func New(cfg *configv1.Config_DBUS, logger hclog.Logger) (*Client, <-chan *event } } + if cfg.IdleInhibitor.Enabled { + if c.idleInhibitor, err = newIdleInhibitor(systemConn, logger, c.eventCh, cfg.IdleInhibitor); err != nil { + return nil, nil, err + } + } + if err := c.init(); err != nil { return nil, nil, err } diff --git a/internal/dbus/fdo.go b/internal/dbus/fdo.go index 8482922..b99f78a 100644 --- a/internal/dbus/fdo.go +++ b/internal/dbus/fdo.go @@ -18,9 +18,14 @@ const ( fdoPropertiesMemberPropertiesChanged = `PropertiesChanged` fdoPropertiesSignalPropertiesChanged = fdoPropertiesName + `.` + fdoPropertiesMemberPropertiesChanged - fdoLogindName = `org.freedesktop.login1` + fdoLogindName = `org.freedesktop.login1` + fdoLogindPath = `/org/freedesktop/login1` + + fdoLogindManagerName = fdoLogindName + `.Manager` + fdoLogindManagerMethodInhibit = fdoLogindManagerName + `.Inhibit` + fdoLogindSessionName = fdoLogindName + `.Session` - fdoLogindSessionPath = `/org/freedesktop/login1/session/auto` + fdoLogindSessionPath = fdoLogindPath + `/session/auto` fdoLogindSessionMethodSetBrightness = fdoLogindSessionName + `.SetBrightness` fdoSystemdName = `org.freedesktop.systemd1` diff --git a/internal/dbus/idle_inhibitor.go b/internal/dbus/idle_inhibitor.go new file mode 100644 index 0000000..48f925d --- /dev/null +++ b/internal/dbus/idle_inhibitor.go @@ -0,0 +1,126 @@ +package dbus + +import ( + "syscall" + + "github.com/godbus/dbus/v5" + "github.com/hashicorp/go-hclog" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" +) + +type idleInhibitor struct { + conn *dbus.Conn + log hclog.Logger + cfg *configv1.Config_DBUS_IdleInhibitor + + fd dbus.UnixFD + eventCh chan *eventv1.Event + signals chan *dbus.Signal + readyCh chan struct{} + quitCh chan struct{} +} + +func (i *idleInhibitor) init() error { + go i.watch() + i.readyCh <- struct{}{} + return nil +} + +func (i idleInhibitor) IsActive() bool { + if i.fd == 0 { + return false + } + return true +} + +func (i *idleInhibitor) String() string { + switch eventv1.InhibitTarget(i.fd) { + case eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: + return `idle` + case eventv1.InhibitTarget_INHIBIT_TARGET_SUSPEND: + return `suspend` + case eventv1.InhibitTarget_INHIBIT_TARGET_LOGOUT: + return `logout` + } + return `inactive` +} + +func (i *idleInhibitor) Inhibit(target eventv1.InhibitTarget) error { + var what string + switch target { + case eventv1.InhibitTarget_INHIBIT_TARGET_LOGOUT: + what = `shutdown` + case eventv1.InhibitTarget_INHIBIT_TARGET_SUSPEND: + what = `sleep` + case eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: + what = `idle` + default: + i.log.Warn(`Invalid inhibit target`, `target`, target) + return nil + } + obj := i.conn.Object(fdoLogindName, fdoLogindPath) + if err := obj.Call( + fdoLogindManagerMethodInhibit, + 0, + what, + `hyprpanel`, + `user request`, + `block`, + ).Store(&i.fd); err != nil { + return err + } + return nil + +} + +func (i *idleInhibitor) Uninhibit() error { + if i.fd == 0 { + return nil + } else if err := syscall.Close(int(i.fd)); err != nil { + return err + } + i.fd = 0 + return nil +} + +func (i *idleInhibitor) watch() { + select { + case <-i.quitCh: + return + default: + } + for { + select { + case <-i.readyCh: + close(i.readyCh) + i.readyCh = nil + continue + case <-i.quitCh: + if i.fd != 0 { + if err := i.Uninhibit(); err != nil { + i.log.Error(`Failed uninhibit`, `err`, err) + } + } + return + } + } +} + +func newIdleInhibitor(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv1.Event, cfg *configv1.Config_DBUS_IdleInhibitor) (*idleInhibitor, error) { + i := &idleInhibitor{ + conn: conn, + log: logger, + cfg: cfg, + eventCh: eventCh, + signals: make(chan *dbus.Signal), + readyCh: make(chan struct{}), + quitCh: make(chan struct{}), + } + + i.conn.Signal(i.signals) + if err := i.init(); err != nil { + return nil, err + } + return i, nil +} diff --git a/internal/panelplugin/grpc.go b/internal/panelplugin/grpc.go index 5893af3..b22006c 100644 --- a/internal/panelplugin/grpc.go +++ b/internal/panelplugin/grpc.go @@ -108,6 +108,15 @@ type HostGRPCClient struct { client hyprpanelv1.HostServiceClient } +func (c *HostGRPCClient) IdleInhibitorToggle(target eventv1.InhibitTarget) error { + if _, err := c.client.IdleInhibitorToggle(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorToggleRequest{ + Target: target, + }); err != nil { + return err + } + return nil +} + // Exec implmenetation. func (c *HostGRPCClient) Exec(action *hyprpanelv1.AppInfo_Action) error { _, err := c.client.Exec(context.Background(), &hyprpanelv1.HostServiceExecRequest{ @@ -269,6 +278,14 @@ type HostGRPCServer struct { Impl Host } +func (s *HostGRPCServer) IdleInhibitorToggle(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorToggleRequest) (*hyprpanelv1.HostServiceIdleInhibitorToggleResponse, error) { + err := s.Impl.IdleInhibitorToggle(req.Target) + if err != nil { + return &hyprpanelv1.HostServiceIdleInhibitorToggleResponse{}, err + } + return &hyprpanelv1.HostServiceIdleInhibitorToggleResponse{}, nil +} + // Exec implementation. func (s *HostGRPCServer) Exec(_ context.Context, req *hyprpanelv1.HostServiceExecRequest) (*hyprpanelv1.HostServiceExecResponse, error) { err := s.Impl.Exec(req.Action) diff --git a/internal/panelplugin/interface.go b/internal/panelplugin/interface.go index dceec6b..2f200f6 100644 --- a/internal/panelplugin/interface.go +++ b/internal/panelplugin/interface.go @@ -49,6 +49,7 @@ type Host interface { AudioSourceMuteToggle(id string) error BrightnessAdjust(devName string, direction eventv1.Direction) error CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) + IdleInhibitorToggle(target eventv1.InhibitTarget) error } // Panel interface. diff --git a/proto/doc/hyprpanel/config/v1/doc.md b/proto/doc/hyprpanel/config/v1/doc.md index 3fafdfa..227e2e5 100644 --- a/proto/doc/hyprpanel/config/v1/doc.md +++ b/proto/doc/hyprpanel/config/v1/doc.md @@ -8,6 +8,7 @@ - [Config.Audio](#hyprpanel-config-v1-Config-Audio) - [Config.DBUS](#hyprpanel-config-v1-Config-DBUS) - [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) + - [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) - [Config.DBUS.Notifications](#hyprpanel-config-v1-Config-DBUS-Notifications) - [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) - [Config.DBUS.Shortcuts](#hyprpanel-config-v1-Config-DBUS-Shortcuts) @@ -84,6 +85,7 @@ | shortcuts | [Config.DBUS.Shortcuts](#hyprpanel-config-v1-Config-DBUS-Shortcuts) | | shortcuts configuration. | | brightness | [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) | | brightness configuration. | | power | [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) | | power configuration. | +| idle_inhibitor | [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) | | idle inhibitor configuration. | @@ -109,6 +111,21 @@ + + +### Config.DBUS.IdleInhibitor + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| enabled | [bool](#bool) | | toggles the idle inhibitor functionality, required for "idle_inhibitor" module. | + + + + + + ### Config.DBUS.Notifications diff --git a/proto/doc/hyprpanel/event/v1/doc.md b/proto/doc/hyprpanel/event/v1/doc.md index b0c936a..64017da 100644 --- a/proto/doc/hyprpanel/event/v1/doc.md +++ b/proto/doc/hyprpanel/event/v1/doc.md @@ -43,6 +43,7 @@ - [Direction](#hyprpanel-event-v1-Direction) - [EventKind](#hyprpanel-event-v1-EventKind) + - [InhibitTarget](#hyprpanel-event-v1-InhibitTarget) - [PowerState](#hyprpanel-event-v1-PowerState) - [PowerType](#hyprpanel-event-v1-PowerType) @@ -780,6 +781,20 @@ + + +### InhibitTarget + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| INHIBIT_TARGET_UNSPECIFIED | 0 | | +| INHIBIT_TARGET_IDLE | 1 | | +| INHIBIT_TARGET_SUSPEND | 2 | | +| INHIBIT_TARGET_LOGOUT | 3 | | + + + ### PowerState diff --git a/proto/doc/hyprpanel/module/v1/doc.md b/proto/doc/hyprpanel/module/v1/doc.md index 3c0a821..1249dcf 100644 --- a/proto/doc/hyprpanel/module/v1/doc.md +++ b/proto/doc/hyprpanel/module/v1/doc.md @@ -7,6 +7,7 @@ - [Audio](#hyprpanel-module-v1-Audio) - [Clock](#hyprpanel-module-v1-Clock) - [Hud](#hyprpanel-module-v1-Hud) + - [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) - [Module](#hyprpanel-module-v1-Module) - [Notifications](#hyprpanel-module-v1-Notifications) - [Pager](#hyprpanel-module-v1-Pager) @@ -86,6 +87,22 @@ + + +### IdleInhibitor + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| icon_size | [uint32](#uint32) | | size in pixels for panel icon. | +| icon_symbolic | [bool](#bool) | | display symbolic or coloured icon in panel. | + + + + + + ### Module @@ -104,6 +121,7 @@ | clock | [Clock](#hyprpanel-module-v1-Clock) | | | | session | [Session](#hyprpanel-module-v1-Session) | | | | spacer | [Spacer](#hyprpanel-module-v1-Spacer) | | | +| idle_inhibitor | [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) | | | diff --git a/proto/doc/hyprpanel/v1/doc.md b/proto/doc/hyprpanel/v1/doc.md index dbef9f6..7e837f1 100644 --- a/proto/doc/hyprpanel/v1/doc.md +++ b/proto/doc/hyprpanel/v1/doc.md @@ -22,6 +22,8 @@ - [HostServiceExecResponse](#hyprpanel-v1-HostServiceExecResponse) - [HostServiceFindApplicationRequest](#hyprpanel-v1-HostServiceFindApplicationRequest) - [HostServiceFindApplicationResponse](#hyprpanel-v1-HostServiceFindApplicationResponse) + - [HostServiceIdleInhibitorToggleRequest](#hyprpanel-v1-HostServiceIdleInhibitorToggleRequest) + - [HostServiceIdleInhibitorToggleResponse](#hyprpanel-v1-HostServiceIdleInhibitorToggleResponse) - [HostServiceNotificationActionRequest](#hyprpanel-v1-HostServiceNotificationActionRequest) - [HostServiceNotificationActionResponse](#hyprpanel-v1-HostServiceNotificationActionResponse) - [HostServiceNotificationClosedRequest](#hyprpanel-v1-HostServiceNotificationClosedRequest) @@ -323,6 +325,31 @@ + + +### HostServiceIdleInhibitorToggleRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| target | [hyprpanel.event.v1.InhibitTarget](#hyprpanel-event-v1-InhibitTarget) | | | + + + + + + + + +### HostServiceIdleInhibitorToggleResponse + + + + + + + ### HostServiceNotificationActionRequest @@ -724,6 +751,7 @@ | AudioSourceMuteToggle | [HostServiceAudioSourceMuteToggleRequest](#hyprpanel-v1-HostServiceAudioSourceMuteToggleRequest) | [HostServiceAudioSourceMuteToggleResponse](#hyprpanel-v1-HostServiceAudioSourceMuteToggleResponse) | | | BrightnessAdjust | [HostServiceBrightnessAdjustRequest](#hyprpanel-v1-HostServiceBrightnessAdjustRequest) | [HostServiceBrightnessAdjustResponse](#hyprpanel-v1-HostServiceBrightnessAdjustResponse) | | | CaptureFrame | [HostServiceCaptureFrameRequest](#hyprpanel-v1-HostServiceCaptureFrameRequest) | [HostServiceCaptureFrameResponse](#hyprpanel-v1-HostServiceCaptureFrameResponse) | | +| IdleInhibitorToggle | [HostServiceIdleInhibitorToggleRequest](#hyprpanel-v1-HostServiceIdleInhibitorToggleRequest) | [HostServiceIdleInhibitorToggleResponse](#hyprpanel-v1-HostServiceIdleInhibitorToggleResponse) | | diff --git a/proto/hyprpanel/config/v1/config.pb.go b/proto/hyprpanel/config/v1/config.pb.go index 26d03f0..8917869 100644 --- a/proto/hyprpanel/config/v1/config.pb.go +++ b/proto/hyprpanel/config/v1/config.pb.go @@ -382,6 +382,7 @@ type Config_DBUS struct { Shortcuts *Config_DBUS_Shortcuts `protobuf:"bytes,6,opt,name=shortcuts,proto3" json:"shortcuts,omitempty"` // shortcuts configuration. Brightness *Config_DBUS_Brightness `protobuf:"bytes,7,opt,name=brightness,proto3" json:"brightness,omitempty"` // brightness configuration. Power *Config_DBUS_Power `protobuf:"bytes,8,opt,name=power,proto3" json:"power,omitempty"` // power configuration. + IdleInhibitor *Config_DBUS_IdleInhibitor `protobuf:"bytes,9,opt,name=idle_inhibitor,json=idleInhibitor,proto3" json:"idle_inhibitor,omitempty"` // idle inhibitor configuration. } func (x *Config_DBUS) Reset() { @@ -472,6 +473,13 @@ func (x *Config_DBUS) GetPower() *Config_DBUS_Power { return nil } +func (x *Config_DBUS) GetIdleInhibitor() *Config_DBUS_IdleInhibitor { + if x != nil { + return x.IdleInhibitor + } + return nil +} + type Config_Audio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -850,6 +858,53 @@ func (x *Config_DBUS_Power) GetHudNotifications() bool { return false } +type Config_DBUS_IdleInhibitor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // toggles the idle inhibitor functionality, required for "idle_inhibitor" module. +} + +func (x *Config_DBUS_IdleInhibitor) Reset() { + *x = Config_DBUS_IdleInhibitor{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Config_DBUS_IdleInhibitor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Config_DBUS_IdleInhibitor) ProtoMessage() {} + +func (x *Config_DBUS_IdleInhibitor) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Config_DBUS_IdleInhibitor.ProtoReflect.Descriptor instead. +func (*Config_DBUS_IdleInhibitor) Descriptor() ([]byte, []int) { + return file_hyprpanel_config_v1_config_proto_rawDescGZIP(), []int{2, 0, 5} +} + +func (x *Config_DBUS_IdleInhibitor) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + var File_hyprpanel_config_v1_config_proto protoreflect.FileDescriptor var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ @@ -875,8 +930,8 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x9e, - 0x0d, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0xa0, + 0x0e, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, @@ -901,7 +956,7 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, - 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xcb, 0x08, 0x0a, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xcd, 0x09, 0x0a, 0x04, 0x44, 0x42, 0x55, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, @@ -935,83 +990,91 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x77, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x42, 0x55, 0x53, 0x2e, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x1a, 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, - 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, - 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, - 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, - 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, - 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, - 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x72, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, + 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x42, + 0x55, 0x53, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, + 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x1a, + 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, 0x79, + 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, + 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, + 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, + 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, + 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, - 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, - 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xb2, 0x01, 0x0a, 0x05, 0x41, - 0x75, 0x64, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, - 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x32, - 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x5f, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x69, 0x6d, - 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, - 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, - 0x5a, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, - 0x44, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x45, - 0x44, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x45, 0x44, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, 0x0a, 0x08, - 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, - 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, - 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, - 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, 0xd1, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x1a, 0x29, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a, + 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x12, 0x32, 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, + 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, + 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2a, 0x5a, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, + 0x0b, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, + 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, + 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, + 0x4f, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, + 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, + 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, + 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1027,7 +1090,7 @@ func file_hyprpanel_config_v1_config_proto_rawDescGZIP() []byte { } var file_hyprpanel_config_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (Edge)(0), // 0: hyprpanel.config.v1.Edge (LogLevel)(0), // 1: hyprpanel.config.v1.LogLevel @@ -1041,29 +1104,31 @@ var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (*Config_DBUS_Shortcuts)(nil), // 9: hyprpanel.config.v1.Config.DBUS.Shortcuts (*Config_DBUS_Brightness)(nil), // 10: hyprpanel.config.v1.Config.DBUS.Brightness (*Config_DBUS_Power)(nil), // 11: hyprpanel.config.v1.Config.DBUS.Power - (*v1.Module)(nil), // 12: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 13: google.protobuf.Duration + (*Config_DBUS_IdleInhibitor)(nil), // 12: hyprpanel.config.v1.Config.DBUS.IdleInhibitor + (*v1.Module)(nil), // 13: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 14: google.protobuf.Duration } var file_hyprpanel_config_v1_config_proto_depIdxs = []int32{ 0, // 0: hyprpanel.config.v1.Panel.edge:type_name -> hyprpanel.config.v1.Edge - 12, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module + 13, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module 1, // 2: hyprpanel.config.v1.Config.log_level:type_name -> hyprpanel.config.v1.LogLevel 5, // 3: hyprpanel.config.v1.Config.dbus:type_name -> hyprpanel.config.v1.Config.DBUS 6, // 4: hyprpanel.config.v1.Config.audio:type_name -> hyprpanel.config.v1.Config.Audio 2, // 5: hyprpanel.config.v1.Config.panels:type_name -> hyprpanel.config.v1.Panel 3, // 6: hyprpanel.config.v1.Config.icon_overrides:type_name -> hyprpanel.config.v1.IconOverride - 13, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration - 13, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration + 14, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration + 14, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration 7, // 9: hyprpanel.config.v1.Config.DBUS.notifications:type_name -> hyprpanel.config.v1.Config.DBUS.Notifications 8, // 10: hyprpanel.config.v1.Config.DBUS.systray:type_name -> hyprpanel.config.v1.Config.DBUS.Systray 9, // 11: hyprpanel.config.v1.Config.DBUS.shortcuts:type_name -> hyprpanel.config.v1.Config.DBUS.Shortcuts 10, // 12: hyprpanel.config.v1.Config.DBUS.brightness:type_name -> hyprpanel.config.v1.Config.DBUS.Brightness 11, // 13: hyprpanel.config.v1.Config.DBUS.power:type_name -> hyprpanel.config.v1.Config.DBUS.Power - 14, // [14:14] is the sub-list for method output_type - 14, // [14:14] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 12, // 14: hyprpanel.config.v1.Config.DBUS.idle_inhibitor:type_name -> hyprpanel.config.v1.Config.DBUS.IdleInhibitor + 15, // [15:15] is the sub-list for method output_type + 15, // [15:15] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_hyprpanel_config_v1_config_proto_init() } @@ -1192,6 +1257,18 @@ func file_hyprpanel_config_v1_config_proto_init() { return nil } } + file_hyprpanel_config_v1_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Config_DBUS_IdleInhibitor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1199,7 +1276,7 @@ func file_hyprpanel_config_v1_config_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_config_v1_config_proto_rawDesc, NumEnums: 2, - NumMessages: 10, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/config/v1/config.proto b/proto/hyprpanel/config/v1/config.proto index 8185d37..1aae95c 100644 --- a/proto/hyprpanel/config/v1/config.proto +++ b/proto/hyprpanel/config/v1/config.proto @@ -67,6 +67,10 @@ message Config { bool hud_notifications = 6; // display HUD notifications on power state change or low power. } + message IdleInhibitor { + bool enabled = 1; // toggles the idle inhibitor functionality, required for "idle_inhibitor" module. + } + bool enabled = 1; // if false, no DBUS functionality is available. google.protobuf.Duration connect_timeout = 2; // specifies the maximum time we will attempt to connect to the bus before failing (format: "20s"). google.protobuf.Duration connect_interval = 3; // specifies the interval that we will attempt to connect to the session bus on startup (format: "0.200s"). @@ -76,6 +80,7 @@ message Config { Shortcuts shortcuts = 6; // shortcuts configuration. Brightness brightness = 7; // brightness configuration. Power power = 8; // power configuration. + IdleInhibitor idle_inhibitor = 9; // idle inhibitor configuration. } message Audio { diff --git a/proto/hyprpanel/event/v1/event.pb.go b/proto/hyprpanel/event/v1/event.pb.go index 769bbf1..9a44717 100644 --- a/proto/hyprpanel/event/v1/event.pb.go +++ b/proto/hyprpanel/event/v1/event.pb.go @@ -200,6 +200,58 @@ func (PowerState) EnumDescriptor() ([]byte, []int) { return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{2} } +type InhibitTarget int32 + +const ( + InhibitTarget_INHIBIT_TARGET_UNSPECIFIED InhibitTarget = 0 + InhibitTarget_INHIBIT_TARGET_IDLE InhibitTarget = 1 + InhibitTarget_INHIBIT_TARGET_SUSPEND InhibitTarget = 2 + InhibitTarget_INHIBIT_TARGET_LOGOUT InhibitTarget = 3 +) + +// Enum value maps for InhibitTarget. +var ( + InhibitTarget_name = map[int32]string{ + 0: "INHIBIT_TARGET_UNSPECIFIED", + 1: "INHIBIT_TARGET_IDLE", + 2: "INHIBIT_TARGET_SUSPEND", + 3: "INHIBIT_TARGET_LOGOUT", + } + InhibitTarget_value = map[string]int32{ + "INHIBIT_TARGET_UNSPECIFIED": 0, + "INHIBIT_TARGET_IDLE": 1, + "INHIBIT_TARGET_SUSPEND": 2, + "INHIBIT_TARGET_LOGOUT": 3, + } +) + +func (x InhibitTarget) Enum() *InhibitTarget { + p := new(InhibitTarget) + *p = x + return p +} + +func (x InhibitTarget) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (InhibitTarget) Descriptor() protoreflect.EnumDescriptor { + return file_hyprpanel_event_v1_event_proto_enumTypes[3].Descriptor() +} + +func (InhibitTarget) Type() protoreflect.EnumType { + return &file_hyprpanel_event_v1_event_proto_enumTypes[3] +} + +func (x InhibitTarget) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use InhibitTarget.Descriptor instead. +func (InhibitTarget) EnumDescriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} +} + type EventKind int32 const ( @@ -401,11 +453,11 @@ func (x EventKind) String() string { } func (EventKind) Descriptor() protoreflect.EnumDescriptor { - return file_hyprpanel_event_v1_event_proto_enumTypes[3].Descriptor() + return file_hyprpanel_event_v1_event_proto_enumTypes[4].Descriptor() } func (EventKind) Type() protoreflect.EnumType { - return &file_hyprpanel_event_v1_event_proto_enumTypes[3] + return &file_hyprpanel_event_v1_event_proto_enumTypes[4] } func (x EventKind) Number() protoreflect.EnumNumber { @@ -414,7 +466,7 @@ func (x EventKind) Number() protoreflect.EnumNumber { // Deprecated: Use EventKind.Descriptor instead. func (EventKind) EnumDescriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} } type HyprWorkspaceV2Value struct { @@ -3265,148 +3317,156 @@ var file_hyprpanel_event_v1_event_proto_rawDesc = []byte{ 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x06, - 0x2a, 0x86, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1a, - 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, - 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x4f, 0x43, - 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, + 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, + 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x55, 0x53, + 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, + 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x55, 0x54, 0x10, + 0x03, 0x2a, 0x86, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, + 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x4f, + 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x05, + 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x06, + 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, 0x56, + 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x41, + 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, + 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, + 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, 0x4f, + 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x05, 0x12, + 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, + 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, 0x1f, + 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x06, 0x12, - 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x41, 0x44, - 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, 0x45, - 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0a, - 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, - 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, - 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, - 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, - 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, 0x1f, 0x0a, - 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, 0x12, 0x1e, + 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x1d, - 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1e, 0x0a, - 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, 0x1a, 0x0a, - 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x45, 0x10, - 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x1c, 0x0a, - 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x53, - 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, - 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, + 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, 0x1a, + 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x45, + 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x1c, + 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, 0x4b, 0x10, - 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, 0x47, 0x52, - 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, - 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x1d, - 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, - 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, - 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, 0x4c, 0x54, - 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x49, 0x43, - 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x4d, 0x45, - 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, - 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, - 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, 0x12, - 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, - 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, - 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, - 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, 0x1c, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, 0x12, 0x20, - 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x29, - 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, - 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, - 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, - 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, 0x52, - 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, - 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, 0x0a, 0x23, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x4a, - 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, - 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, 0x0a, 0x25, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, - 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x33, - 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, 0x23, 0x0a, + 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, - 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, - 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, 0x4f, - 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, 0x22, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, - 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, - 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x42, 0xc9, 0x01, 0x0a, 0x16, 0x63, 0x6f, - 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, - 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, - 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, 0x4b, + 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, 0x47, + 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, + 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, + 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, + 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, + 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, 0x45, + 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, 0x4c, + 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x49, + 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x4d, + 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, 0x4f, + 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, + 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, + 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, + 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, 0x1d, + 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, 0x12, + 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, + 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, 0x57, + 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x48, + 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, + 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, + 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, + 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, 0x0a, + 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, + 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, + 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, 0x0a, + 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, + 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, + 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, + 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, + 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, 0x23, + 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, + 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, + 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, + 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, 0x22, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, + 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x42, 0xc9, 0x01, 0x0a, 0x16, 0x63, + 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3421,79 +3481,80 @@ func file_hyprpanel_event_v1_event_proto_rawDescGZIP() []byte { return file_hyprpanel_event_v1_event_proto_rawDescData } -var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 5) var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_hyprpanel_event_v1_event_proto_goTypes = []interface{}{ (Direction)(0), // 0: hyprpanel.event.v1.Direction (PowerType)(0), // 1: hyprpanel.event.v1.PowerType (PowerState)(0), // 2: hyprpanel.event.v1.PowerState - (EventKind)(0), // 3: hyprpanel.event.v1.EventKind - (*HyprWorkspaceV2Value)(nil), // 4: hyprpanel.event.v1.HyprWorkspaceV2Value - (*HyprDestroyWorkspaceV2Value)(nil), // 5: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value - (*HyprCreateWorkspaceV2Value)(nil), // 6: hyprpanel.event.v1.HyprCreateWorkspaceV2Value - (*HyprMoveWindowValue)(nil), // 7: hyprpanel.event.v1.HyprMoveWindowValue - (*HyprMoveWindowV2Value)(nil), // 8: hyprpanel.event.v1.HyprMoveWindowV2Value - (*HyprMoveWorkspaceValue)(nil), // 9: hyprpanel.event.v1.HyprMoveWorkspaceValue - (*HyprMoveWorkspaceV2Value)(nil), // 10: hyprpanel.event.v1.HyprMoveWorkspaceV2Value - (*HyprRenameWorkspaceValue)(nil), // 11: hyprpanel.event.v1.HyprRenameWorkspaceValue - (*HyprActiveWindowValue)(nil), // 12: hyprpanel.event.v1.HyprActiveWindowValue - (*HyprOpenWindowValue)(nil), // 13: hyprpanel.event.v1.HyprOpenWindowValue - (*StatusNotifierValue)(nil), // 14: hyprpanel.event.v1.StatusNotifierValue - (*UpdateTitleValue)(nil), // 15: hyprpanel.event.v1.UpdateTitleValue - (*UpdateTooltipValue)(nil), // 16: hyprpanel.event.v1.UpdateTooltipValue - (*UpdateIconValue)(nil), // 17: hyprpanel.event.v1.UpdateIconValue - (*UpdateStatusValue)(nil), // 18: hyprpanel.event.v1.UpdateStatusValue - (*UpdateMenuValue)(nil), // 19: hyprpanel.event.v1.UpdateMenuValue - (*NotificationValue)(nil), // 20: hyprpanel.event.v1.NotificationValue - (*HudNotificationValue)(nil), // 21: hyprpanel.event.v1.HudNotificationValue - (*AudioSinkChangeValue)(nil), // 22: hyprpanel.event.v1.AudioSinkChangeValue - (*AudioSourceChangeValue)(nil), // 23: hyprpanel.event.v1.AudioSourceChangeValue - (*AudioSinkVolumeAdjust)(nil), // 24: hyprpanel.event.v1.AudioSinkVolumeAdjust - (*AudioSinkMuteToggle)(nil), // 25: hyprpanel.event.v1.AudioSinkMuteToggle - (*AudioSourceVolumeAdjust)(nil), // 26: hyprpanel.event.v1.AudioSourceVolumeAdjust - (*AudioSourceMuteToggle)(nil), // 27: hyprpanel.event.v1.AudioSourceMuteToggle - (*BrightnessChangeValue)(nil), // 28: hyprpanel.event.v1.BrightnessChangeValue - (*BrightnessAdjustValue)(nil), // 29: hyprpanel.event.v1.BrightnessAdjustValue - (*PowerChangeValue)(nil), // 30: hyprpanel.event.v1.PowerChangeValue - (*Event)(nil), // 31: hyprpanel.event.v1.Event - (*StatusNotifierValue_Pixmap)(nil), // 32: hyprpanel.event.v1.StatusNotifierValue.Pixmap - (*StatusNotifierValue_Tooltip)(nil), // 33: hyprpanel.event.v1.StatusNotifierValue.Tooltip - (*StatusNotifierValue_Icon)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Icon - (*StatusNotifierValue_Menu)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Menu - (*StatusNotifierValue_Menu_Properties)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - (*NotificationValue_Hint)(nil), // 37: hyprpanel.event.v1.NotificationValue.Hint - (*NotificationValue_Action)(nil), // 38: hyprpanel.event.v1.NotificationValue.Action - (*NotificationValue_Pixmap)(nil), // 39: hyprpanel.event.v1.NotificationValue.Pixmap - (v1.Systray_Status)(0), // 40: hyprpanel.module.v1.Systray.Status - (*durationpb.Duration)(nil), // 41: google.protobuf.Duration - (*anypb.Any)(nil), // 42: google.protobuf.Any + (InhibitTarget)(0), // 3: hyprpanel.event.v1.InhibitTarget + (EventKind)(0), // 4: hyprpanel.event.v1.EventKind + (*HyprWorkspaceV2Value)(nil), // 5: hyprpanel.event.v1.HyprWorkspaceV2Value + (*HyprDestroyWorkspaceV2Value)(nil), // 6: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value + (*HyprCreateWorkspaceV2Value)(nil), // 7: hyprpanel.event.v1.HyprCreateWorkspaceV2Value + (*HyprMoveWindowValue)(nil), // 8: hyprpanel.event.v1.HyprMoveWindowValue + (*HyprMoveWindowV2Value)(nil), // 9: hyprpanel.event.v1.HyprMoveWindowV2Value + (*HyprMoveWorkspaceValue)(nil), // 10: hyprpanel.event.v1.HyprMoveWorkspaceValue + (*HyprMoveWorkspaceV2Value)(nil), // 11: hyprpanel.event.v1.HyprMoveWorkspaceV2Value + (*HyprRenameWorkspaceValue)(nil), // 12: hyprpanel.event.v1.HyprRenameWorkspaceValue + (*HyprActiveWindowValue)(nil), // 13: hyprpanel.event.v1.HyprActiveWindowValue + (*HyprOpenWindowValue)(nil), // 14: hyprpanel.event.v1.HyprOpenWindowValue + (*StatusNotifierValue)(nil), // 15: hyprpanel.event.v1.StatusNotifierValue + (*UpdateTitleValue)(nil), // 16: hyprpanel.event.v1.UpdateTitleValue + (*UpdateTooltipValue)(nil), // 17: hyprpanel.event.v1.UpdateTooltipValue + (*UpdateIconValue)(nil), // 18: hyprpanel.event.v1.UpdateIconValue + (*UpdateStatusValue)(nil), // 19: hyprpanel.event.v1.UpdateStatusValue + (*UpdateMenuValue)(nil), // 20: hyprpanel.event.v1.UpdateMenuValue + (*NotificationValue)(nil), // 21: hyprpanel.event.v1.NotificationValue + (*HudNotificationValue)(nil), // 22: hyprpanel.event.v1.HudNotificationValue + (*AudioSinkChangeValue)(nil), // 23: hyprpanel.event.v1.AudioSinkChangeValue + (*AudioSourceChangeValue)(nil), // 24: hyprpanel.event.v1.AudioSourceChangeValue + (*AudioSinkVolumeAdjust)(nil), // 25: hyprpanel.event.v1.AudioSinkVolumeAdjust + (*AudioSinkMuteToggle)(nil), // 26: hyprpanel.event.v1.AudioSinkMuteToggle + (*AudioSourceVolumeAdjust)(nil), // 27: hyprpanel.event.v1.AudioSourceVolumeAdjust + (*AudioSourceMuteToggle)(nil), // 28: hyprpanel.event.v1.AudioSourceMuteToggle + (*BrightnessChangeValue)(nil), // 29: hyprpanel.event.v1.BrightnessChangeValue + (*BrightnessAdjustValue)(nil), // 30: hyprpanel.event.v1.BrightnessAdjustValue + (*PowerChangeValue)(nil), // 31: hyprpanel.event.v1.PowerChangeValue + (*Event)(nil), // 32: hyprpanel.event.v1.Event + (*StatusNotifierValue_Pixmap)(nil), // 33: hyprpanel.event.v1.StatusNotifierValue.Pixmap + (*StatusNotifierValue_Tooltip)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Tooltip + (*StatusNotifierValue_Icon)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Icon + (*StatusNotifierValue_Menu)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Menu + (*StatusNotifierValue_Menu_Properties)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + (*NotificationValue_Hint)(nil), // 38: hyprpanel.event.v1.NotificationValue.Hint + (*NotificationValue_Action)(nil), // 39: hyprpanel.event.v1.NotificationValue.Action + (*NotificationValue_Pixmap)(nil), // 40: hyprpanel.event.v1.NotificationValue.Pixmap + (v1.Systray_Status)(0), // 41: hyprpanel.module.v1.Systray.Status + (*durationpb.Duration)(nil), // 42: google.protobuf.Duration + (*anypb.Any)(nil), // 43: google.protobuf.Any } var file_hyprpanel_event_v1_event_proto_depIdxs = []int32{ - 40, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 33, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 34, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 35, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 33, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 34, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 40, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 35, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 38, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action - 37, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint - 41, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration + 41, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 34, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 35, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 36, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 34, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 35, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 41, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 36, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 39, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action + 38, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint + 42, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration 0, // 11: hyprpanel.event.v1.AudioSinkVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 12: hyprpanel.event.v1.AudioSourceVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 13: hyprpanel.event.v1.BrightnessAdjustValue.direction:type_name -> hyprpanel.event.v1.Direction 1, // 14: hyprpanel.event.v1.PowerChangeValue.type:type_name -> hyprpanel.event.v1.PowerType - 41, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration - 41, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration + 42, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration + 42, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration 2, // 17: hyprpanel.event.v1.PowerChangeValue.state:type_name -> hyprpanel.event.v1.PowerState - 3, // 18: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind - 42, // 19: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any - 32, // 20: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 32, // 21: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 36, // 22: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - 35, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 42, // 24: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any + 4, // 18: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind + 43, // 19: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any + 33, // 20: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 33, // 21: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 37, // 22: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + 36, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 43, // 24: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any 25, // [25:25] is the sub-list for method output_type 25, // [25:25] is the sub-list for method input_type 25, // [25:25] is the sub-list for extension type_name @@ -3945,7 +4006,7 @@ func file_hyprpanel_event_v1_event_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_event_v1_event_proto_rawDesc, - NumEnums: 4, + NumEnums: 5, NumMessages: 36, NumExtensions: 0, NumServices: 0, diff --git a/proto/hyprpanel/event/v1/event.proto b/proto/hyprpanel/event/v1/event.proto index ebe7412..4a6ef25 100644 --- a/proto/hyprpanel/event/v1/event.proto +++ b/proto/hyprpanel/event/v1/event.proto @@ -34,6 +34,13 @@ enum PowerState { POWER_STATE_PENDING_DISCHARGE = 6; } +enum InhibitTarget { + INHIBIT_TARGET_UNSPECIFIED = 0; + INHIBIT_TARGET_IDLE = 1; + INHIBIT_TARGET_SUSPEND = 2; + INHIBIT_TARGET_LOGOUT = 3; +} + enum EventKind { EVENT_KIND_UNSPECIFIED = 0; EVENT_KIND_HYPR_WORKSPACE = 1; diff --git a/proto/hyprpanel/module/v1/module.pb.go b/proto/hyprpanel/module/v1/module.pb.go index 584ce44..e40c58e 100644 --- a/proto/hyprpanel/module/v1/module.pb.go +++ b/proto/hyprpanel/module/v1/module.pb.go @@ -1054,6 +1054,61 @@ func (*SystrayModule_Audio) isSystrayModule_Kind() {} func (*SystrayModule_Power) isSystrayModule_Kind() {} +type IdleInhibitor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IconSize uint32 `protobuf:"varint,1,opt,name=icon_size,json=iconSize,proto3" json:"icon_size,omitempty"` // size in pixels for panel icon. + IconSymbolic bool `protobuf:"varint,2,opt,name=icon_symbolic,json=iconSymbolic,proto3" json:"icon_symbolic,omitempty"` // display symbolic or coloured icon in panel. +} + +func (x *IdleInhibitor) Reset() { + *x = IdleInhibitor{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdleInhibitor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdleInhibitor) ProtoMessage() {} + +func (x *IdleInhibitor) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + 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 IdleInhibitor.ProtoReflect.Descriptor instead. +func (*IdleInhibitor) Descriptor() ([]byte, []int) { + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11} +} + +func (x *IdleInhibitor) GetIconSize() uint32 { + if x != nil { + return x.IconSize + } + return 0 +} + +func (x *IdleInhibitor) GetIconSymbolic() bool { + if x != nil { + return x.IconSymbolic + } + return false +} + type Module struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1071,13 +1126,14 @@ type Module struct { // *Module_Clock // *Module_Session // *Module_Spacer + // *Module_IdleInhibitor Kind isModule_Kind `protobuf_oneof:"kind"` } func (x *Module) Reset() { *x = Module{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1090,7 +1146,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[11] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1103,7 +1159,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11} + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{12} } func (m *Module) GetKind() isModule_Kind { @@ -1183,6 +1239,13 @@ func (x *Module) GetSpacer() *Spacer { return nil } +func (x *Module) GetIdleInhibitor() *IdleInhibitor { + if x, ok := x.GetKind().(*Module_IdleInhibitor); ok { + return x.IdleInhibitor + } + return nil +} + type isModule_Kind interface { isModule_Kind() } @@ -1227,6 +1290,10 @@ type Module_Spacer struct { Spacer *Spacer `protobuf:"bytes,10,opt,name=spacer,proto3,oneof"` } +type Module_IdleInhibitor struct { + IdleInhibitor *IdleInhibitor `protobuf:"bytes,11,opt,name=idle_inhibitor,json=idleInhibitor,proto3,oneof"` +} + func (*Module_Pager) isModule_Kind() {} func (*Module_Taskbar) isModule_Kind() {} @@ -1247,6 +1314,8 @@ func (*Module_Session) isModule_Kind() {} func (*Module_Spacer) isModule_Kind() {} +func (*Module_IdleInhibitor) isModule_Kind() {} + var File_hyprpanel_module_v1_module_proto protoreflect.FileDescriptor var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ @@ -1417,42 +1486,52 @@ var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x06, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xbf, 0x04, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, - 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, 0x6b, - 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x12, 0x38, - 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, 0x03, 0x68, - 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, 0x00, 0x52, - 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x63, 0x6c, - 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x38, - 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x72, 0x42, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, 0x6e, + 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, + 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, + 0x72, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, + 0x52, 0x03, 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, + 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, + 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, @@ -1498,7 +1577,7 @@ func file_hyprpanel_module_v1_module_proto_rawDescGZIP() []byte { } var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ (Position)(0), // 0: hyprpanel.module.v1.Position (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status @@ -1513,16 +1592,17 @@ var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ (*Session)(nil), // 10: hyprpanel.module.v1.Session (*Spacer)(nil), // 11: hyprpanel.module.v1.Spacer (*SystrayModule)(nil), // 12: hyprpanel.module.v1.SystrayModule - (*Module)(nil), // 13: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 14: google.protobuf.Duration + (*IdleInhibitor)(nil), // 13: hyprpanel.module.v1.IdleInhibitor + (*Module)(nil), // 14: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 15: google.protobuf.Duration } var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 1, // 0: hyprpanel.module.v1.Systray.auto_hide_statuses:type_name -> hyprpanel.module.v1.Systray.Status - 14, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration + 15, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration 12, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule - 14, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration + 15, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration 0, // 4: hyprpanel.module.v1.Notifications.position:type_name -> hyprpanel.module.v1.Position - 14, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration + 15, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration 0, // 6: hyprpanel.module.v1.Hud.position:type_name -> hyprpanel.module.v1.Position 8, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio 9, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power @@ -1536,11 +1616,12 @@ var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 7, // 16: hyprpanel.module.v1.Module.clock:type_name -> hyprpanel.module.v1.Clock 10, // 17: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session 11, // 18: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 13, // 19: hyprpanel.module.v1.Module.idle_inhibitor:type_name -> hyprpanel.module.v1.IdleInhibitor + 20, // [20:20] is the sub-list for method output_type + 20, // [20:20] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_hyprpanel_module_v1_module_proto_init() } @@ -1682,6 +1763,18 @@ func file_hyprpanel_module_v1_module_proto_init() { } } file_hyprpanel_module_v1_module_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IdleInhibitor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_module_v1_module_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Module); i { case 0: return &v.state @@ -1698,7 +1791,7 @@ func file_hyprpanel_module_v1_module_proto_init() { (*SystrayModule_Audio)(nil), (*SystrayModule_Power)(nil), } - file_hyprpanel_module_v1_module_proto_msgTypes[11].OneofWrappers = []interface{}{ + file_hyprpanel_module_v1_module_proto_msgTypes[12].OneofWrappers = []interface{}{ (*Module_Pager)(nil), (*Module_Taskbar)(nil), (*Module_Systray)(nil), @@ -1709,6 +1802,7 @@ func file_hyprpanel_module_v1_module_proto_init() { (*Module_Clock)(nil), (*Module_Session)(nil), (*Module_Spacer)(nil), + (*Module_IdleInhibitor)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1716,7 +1810,7 @@ func file_hyprpanel_module_v1_module_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_module_v1_module_proto_rawDesc, NumEnums: 2, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/module/v1/module.proto b/proto/hyprpanel/module/v1/module.proto index d92ca34..f258e2d 100644 --- a/proto/hyprpanel/module/v1/module.proto +++ b/proto/hyprpanel/module/v1/module.proto @@ -116,6 +116,11 @@ message SystrayModule { } } +message IdleInhibitor { + uint32 icon_size = 1; // size in pixels for panel icon. + bool icon_symbolic = 2; // display symbolic or coloured icon in panel. +} + message Module { oneof kind { Pager pager = 1; @@ -128,5 +133,6 @@ message Module { Clock clock = 8; Session session = 9; Spacer spacer = 10; + IdleInhibitor idle_inhibitor = 11; } } diff --git a/proto/hyprpanel/v1/hyprpanel.pb.go b/proto/hyprpanel/v1/hyprpanel.pb.go index 94e3c09..3d3dd31 100644 --- a/proto/hyprpanel/v1/hyprpanel.pb.go +++ b/proto/hyprpanel/v1/hyprpanel.pb.go @@ -2217,6 +2217,91 @@ func (x *HostServiceCaptureFrameRequest) GetHeight() int32 { return 0 } +type HostServiceIdleInhibitorToggleRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Target v11.InhibitTarget `protobuf:"varint,1,opt,name=target,proto3,enum=hyprpanel.event.v1.InhibitTarget" json:"target,omitempty"` +} + +func (x *HostServiceIdleInhibitorToggleRequest) Reset() { + *x = HostServiceIdleInhibitorToggleRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceIdleInhibitorToggleRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceIdleInhibitorToggleRequest) ProtoMessage() {} + +func (x *HostServiceIdleInhibitorToggleRequest) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceIdleInhibitorToggleRequest.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorToggleRequest) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{41} +} + +func (x *HostServiceIdleInhibitorToggleRequest) GetTarget() v11.InhibitTarget { + if x != nil { + return x.Target + } + return v11.InhibitTarget(0) +} + +type HostServiceIdleInhibitorToggleResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HostServiceIdleInhibitorToggleResponse) Reset() { + *x = HostServiceIdleInhibitorToggleResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceIdleInhibitorToggleResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceIdleInhibitorToggleResponse) ProtoMessage() {} + +func (x *HostServiceIdleInhibitorToggleResponse) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceIdleInhibitorToggleResponse.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorToggleResponse) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{42} +} + type HostServiceCaptureFrameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2228,7 +2313,7 @@ type HostServiceCaptureFrameResponse struct { func (x *HostServiceCaptureFrameResponse) Reset() { *x = HostServiceCaptureFrameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2241,7 +2326,7 @@ func (x *HostServiceCaptureFrameResponse) String() string { func (*HostServiceCaptureFrameResponse) ProtoMessage() {} func (x *HostServiceCaptureFrameResponse) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2254,7 +2339,7 @@ func (x *HostServiceCaptureFrameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use HostServiceCaptureFrameResponse.ProtoReflect.Descriptor instead. func (*HostServiceCaptureFrameResponse) Descriptor() ([]byte, []int) { - return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{41} + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{43} } func (x *HostServiceCaptureFrameResponse) GetImage() *ImageNRGBA { @@ -2278,7 +2363,7 @@ type AppInfo_Action struct { func (x *AppInfo_Action) Reset() { *x = AppInfo_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2291,7 +2376,7 @@ func (x *AppInfo_Action) String() string { func (*AppInfo_Action) ProtoMessage() {} func (x *AppInfo_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2558,198 +2643,215 @@ var file_hyprpanel_v1_hyprpanel_proto_rawDesc = []byte{ 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, 0x52, 0x05, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, - 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, - 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, - 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, - 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, 0x54, 0x52, - 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, - 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, - 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, - 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, - 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, - 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x48, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, - 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4e, - 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, - 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, 0x49, 0x53, - 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x68, 0x74, 0x22, 0x62, 0x0a, 0x25, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x28, 0x0a, 0x26, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, 0x52, 0x05, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, + 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, + 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, + 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, + 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, + 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x48, + 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, 0x02, 0x0a, - 0x0c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, - 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x27, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, 0x02, 0x0a, 0x0c, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x04, 0x49, + 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf5, 0x0f, 0x0a, 0x0b, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x45, - 0x78, 0x65, 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, - 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x74, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, - 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, - 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, - 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, - 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, - 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x12, - 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, - 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, - 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x2e, - 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, - 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, 0x74, 0x72, - 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, - 0x77, 0x12, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x27, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf8, 0x10, 0x0a, 0x0b, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x45, 0x78, 0x65, + 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, + 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, + 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x53, + 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, - 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, - 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, - 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, + 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x12, 0x2d, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, + 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, + 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, + 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x12, + 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, + 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, + 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, + 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, + 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, - 0x64, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, - 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, - 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, + 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, + 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, + 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x12, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x35, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, - 0x10, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x35, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x42, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, + 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, + 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2765,7 +2867,7 @@ func file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP() []byte { } var file_hyprpanel_v1_hyprpanel_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 45) var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (SystrayScrollOrientation)(0), // 0: hyprpanel.v1.SystrayScrollOrientation (SystrayMenuEvent)(0), // 1: hyprpanel.v1.SystrayMenuEvent @@ -2811,72 +2913,78 @@ var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (*HostServiceBrightnessAdjustRequest)(nil), // 41: hyprpanel.v1.HostServiceBrightnessAdjustRequest (*HostServiceBrightnessAdjustResponse)(nil), // 42: hyprpanel.v1.HostServiceBrightnessAdjustResponse (*HostServiceCaptureFrameRequest)(nil), // 43: hyprpanel.v1.HostServiceCaptureFrameRequest - (*HostServiceCaptureFrameResponse)(nil), // 44: hyprpanel.v1.HostServiceCaptureFrameResponse - (*AppInfo_Action)(nil), // 45: hyprpanel.v1.AppInfo.Action - (v1.LogLevel)(0), // 46: hyprpanel.config.v1.LogLevel - (*v1.Panel)(nil), // 47: hyprpanel.config.v1.Panel - (*v11.Event)(nil), // 48: hyprpanel.event.v1.Event - (*anypb.Any)(nil), // 49: google.protobuf.Any - (v11.Direction)(0), // 50: hyprpanel.event.v1.Direction + (*HostServiceIdleInhibitorToggleRequest)(nil), // 44: hyprpanel.v1.HostServiceIdleInhibitorToggleRequest + (*HostServiceIdleInhibitorToggleResponse)(nil), // 45: hyprpanel.v1.HostServiceIdleInhibitorToggleResponse + (*HostServiceCaptureFrameResponse)(nil), // 46: hyprpanel.v1.HostServiceCaptureFrameResponse + (*AppInfo_Action)(nil), // 47: hyprpanel.v1.AppInfo.Action + (v1.LogLevel)(0), // 48: hyprpanel.config.v1.LogLevel + (*v1.Panel)(nil), // 49: hyprpanel.config.v1.Panel + (*v11.Event)(nil), // 50: hyprpanel.event.v1.Event + (*anypb.Any)(nil), // 51: google.protobuf.Any + (v11.Direction)(0), // 52: hyprpanel.event.v1.Direction + (v11.InhibitTarget)(0), // 53: hyprpanel.event.v1.InhibitTarget } var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ - 45, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action - 46, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel - 47, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel - 48, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event - 45, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action + 47, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action + 48, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel + 49, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel + 50, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event + 47, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action 4, // 5: hyprpanel.v1.HostServiceFindApplicationResponse.app_info:type_name -> hyprpanel.v1.AppInfo 0, // 6: hyprpanel.v1.HostServiceSystrayScrollRequest.orientation:type_name -> hyprpanel.v1.SystrayScrollOrientation 1, // 7: hyprpanel.v1.HostServiceSystrayMenuEventRequest.event_id:type_name -> hyprpanel.v1.SystrayMenuEvent - 49, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any + 51, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any 2, // 9: hyprpanel.v1.HostServiceNotificationClosedRequest.reason:type_name -> hyprpanel.v1.NotificationClosedReason - 50, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 50, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 50, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 3, // 13: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA - 5, // 14: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest - 7, // 15: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest - 11, // 16: hyprpanel.v1.PanelService.Close:input_type -> hyprpanel.v1.PanelServiceCloseRequest - 13, // 17: hyprpanel.v1.HostService.Exec:input_type -> hyprpanel.v1.HostServiceExecRequest - 15, // 18: hyprpanel.v1.HostService.FindApplication:input_type -> hyprpanel.v1.HostServiceFindApplicationRequest - 17, // 19: hyprpanel.v1.HostService.SystrayActivate:input_type -> hyprpanel.v1.HostServiceSystrayActivateRequest - 19, // 20: hyprpanel.v1.HostService.SystraySecondaryActivate:input_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateRequest - 21, // 21: hyprpanel.v1.HostService.SystrayScroll:input_type -> hyprpanel.v1.HostServiceSystrayScrollRequest - 23, // 22: hyprpanel.v1.HostService.SystrayMenuContextActivate:input_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateRequest - 25, // 23: hyprpanel.v1.HostService.SystrayMenuAboutToShow:input_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowRequest - 27, // 24: hyprpanel.v1.HostService.SystrayMenuEvent:input_type -> hyprpanel.v1.HostServiceSystrayMenuEventRequest - 29, // 25: hyprpanel.v1.HostService.NotificationClosed:input_type -> hyprpanel.v1.HostServiceNotificationClosedRequest - 31, // 26: hyprpanel.v1.HostService.NotificationAction:input_type -> hyprpanel.v1.HostServiceNotificationActionRequest - 33, // 27: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest - 35, // 28: hyprpanel.v1.HostService.AudioSinkMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleRequest - 37, // 29: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest - 39, // 30: hyprpanel.v1.HostService.AudioSourceMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleRequest - 41, // 31: hyprpanel.v1.HostService.BrightnessAdjust:input_type -> hyprpanel.v1.HostServiceBrightnessAdjustRequest - 43, // 32: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest - 6, // 33: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse - 8, // 34: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse - 12, // 35: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse - 14, // 36: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse - 16, // 37: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse - 18, // 38: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse - 20, // 39: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse - 22, // 40: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse - 24, // 41: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse - 26, // 42: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse - 28, // 43: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse - 30, // 44: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse - 32, // 45: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse - 34, // 46: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse - 36, // 47: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse - 38, // 48: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse - 40, // 49: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse - 42, // 50: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse - 44, // 51: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse - 33, // [33:52] is the sub-list for method output_type - 14, // [14:33] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 52, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 52, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 52, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 53, // 13: hyprpanel.v1.HostServiceIdleInhibitorToggleRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget + 3, // 14: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA + 5, // 15: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest + 7, // 16: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest + 11, // 17: hyprpanel.v1.PanelService.Close:input_type -> hyprpanel.v1.PanelServiceCloseRequest + 13, // 18: hyprpanel.v1.HostService.Exec:input_type -> hyprpanel.v1.HostServiceExecRequest + 15, // 19: hyprpanel.v1.HostService.FindApplication:input_type -> hyprpanel.v1.HostServiceFindApplicationRequest + 17, // 20: hyprpanel.v1.HostService.SystrayActivate:input_type -> hyprpanel.v1.HostServiceSystrayActivateRequest + 19, // 21: hyprpanel.v1.HostService.SystraySecondaryActivate:input_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateRequest + 21, // 22: hyprpanel.v1.HostService.SystrayScroll:input_type -> hyprpanel.v1.HostServiceSystrayScrollRequest + 23, // 23: hyprpanel.v1.HostService.SystrayMenuContextActivate:input_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateRequest + 25, // 24: hyprpanel.v1.HostService.SystrayMenuAboutToShow:input_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowRequest + 27, // 25: hyprpanel.v1.HostService.SystrayMenuEvent:input_type -> hyprpanel.v1.HostServiceSystrayMenuEventRequest + 29, // 26: hyprpanel.v1.HostService.NotificationClosed:input_type -> hyprpanel.v1.HostServiceNotificationClosedRequest + 31, // 27: hyprpanel.v1.HostService.NotificationAction:input_type -> hyprpanel.v1.HostServiceNotificationActionRequest + 33, // 28: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest + 35, // 29: hyprpanel.v1.HostService.AudioSinkMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleRequest + 37, // 30: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:input_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest + 39, // 31: hyprpanel.v1.HostService.AudioSourceMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleRequest + 41, // 32: hyprpanel.v1.HostService.BrightnessAdjust:input_type -> hyprpanel.v1.HostServiceBrightnessAdjustRequest + 43, // 33: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest + 44, // 34: hyprpanel.v1.HostService.IdleInhibitorToggle:input_type -> hyprpanel.v1.HostServiceIdleInhibitorToggleRequest + 6, // 35: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse + 8, // 36: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse + 12, // 37: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse + 14, // 38: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse + 16, // 39: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse + 18, // 40: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse + 20, // 41: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse + 22, // 42: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse + 24, // 43: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse + 26, // 44: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse + 28, // 45: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse + 30, // 46: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse + 32, // 47: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse + 34, // 48: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse + 36, // 49: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse + 38, // 50: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse + 40, // 51: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse + 42, // 52: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse + 46, // 53: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse + 45, // 54: hyprpanel.v1.HostService.IdleInhibitorToggle:output_type -> hyprpanel.v1.HostServiceIdleInhibitorToggleResponse + 35, // [35:55] is the sub-list for method output_type + 15, // [15:35] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_hyprpanel_v1_hyprpanel_proto_init() } @@ -3378,7 +3486,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostServiceCaptureFrameResponse); i { + switch v := v.(*HostServiceIdleInhibitorToggleRequest); i { case 0: return &v.state case 1: @@ -3390,6 +3498,30 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceIdleInhibitorToggleResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceCaptureFrameResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppInfo_Action); i { case 0: return &v.state @@ -3408,7 +3540,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_v1_hyprpanel_proto_rawDesc, NumEnums: 3, - NumMessages: 43, + NumMessages: 45, NumExtensions: 0, NumServices: 2, }, diff --git a/proto/hyprpanel/v1/hyprpanel.proto b/proto/hyprpanel/v1/hyprpanel.proto index 5362c14..7447fd0 100644 --- a/proto/hyprpanel/v1/hyprpanel.proto +++ b/proto/hyprpanel/v1/hyprpanel.proto @@ -181,6 +181,12 @@ message HostServiceCaptureFrameRequest { int32 height = 3; } +message HostServiceIdleInhibitorToggleRequest { + hyprpanel.event.v1.InhibitTarget target = 1; +} + +message HostServiceIdleInhibitorToggleResponse {} + message HostServiceCaptureFrameResponse { ImageNRGBA image = 1; } @@ -202,4 +208,5 @@ service HostService { rpc AudioSourceMuteToggle(HostServiceAudioSourceMuteToggleRequest) returns (HostServiceAudioSourceMuteToggleResponse); rpc BrightnessAdjust(HostServiceBrightnessAdjustRequest) returns (HostServiceBrightnessAdjustResponse); rpc CaptureFrame(HostServiceCaptureFrameRequest) returns (HostServiceCaptureFrameResponse); + rpc IdleInhibitorToggle(HostServiceIdleInhibitorToggleRequest) returns (HostServiceIdleInhibitorToggleResponse); } diff --git a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go index dd5efe8..2954e2a 100644 --- a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go +++ b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go @@ -199,6 +199,7 @@ const ( HostService_AudioSourceMuteToggle_FullMethodName = "/hyprpanel.v1.HostService/AudioSourceMuteToggle" HostService_BrightnessAdjust_FullMethodName = "/hyprpanel.v1.HostService/BrightnessAdjust" HostService_CaptureFrame_FullMethodName = "/hyprpanel.v1.HostService/CaptureFrame" + HostService_IdleInhibitorToggle_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorToggle" ) // HostServiceClient is the client API for HostService service. @@ -221,6 +222,7 @@ type HostServiceClient interface { AudioSourceMuteToggle(ctx context.Context, in *HostServiceAudioSourceMuteToggleRequest, opts ...grpc.CallOption) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(ctx context.Context, in *HostServiceBrightnessAdjustRequest, opts ...grpc.CallOption) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(ctx context.Context, in *HostServiceCaptureFrameRequest, opts ...grpc.CallOption) (*HostServiceCaptureFrameResponse, error) + IdleInhibitorToggle(ctx context.Context, in *HostServiceIdleInhibitorToggleRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorToggleResponse, error) } type hostServiceClient struct { @@ -375,6 +377,15 @@ func (c *hostServiceClient) CaptureFrame(ctx context.Context, in *HostServiceCap return out, nil } +func (c *hostServiceClient) IdleInhibitorToggle(ctx context.Context, in *HostServiceIdleInhibitorToggleRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorToggleResponse, error) { + out := new(HostServiceIdleInhibitorToggleResponse) + err := c.cc.Invoke(ctx, HostService_IdleInhibitorToggle_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // HostServiceServer is the server API for HostService service. // All implementations must embed UnimplementedHostServiceServer // for forward compatibility @@ -395,6 +406,7 @@ type HostServiceServer interface { AudioSourceMuteToggle(context.Context, *HostServiceAudioSourceMuteToggleRequest) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(context.Context, *HostServiceBrightnessAdjustRequest) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) + IdleInhibitorToggle(context.Context, *HostServiceIdleInhibitorToggleRequest) (*HostServiceIdleInhibitorToggleResponse, error) mustEmbedUnimplementedHostServiceServer() } @@ -450,6 +462,9 @@ func (UnimplementedHostServiceServer) BrightnessAdjust(context.Context, *HostSer func (UnimplementedHostServiceServer) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CaptureFrame not implemented") } +func (UnimplementedHostServiceServer) IdleInhibitorToggle(context.Context, *HostServiceIdleInhibitorToggleRequest) (*HostServiceIdleInhibitorToggleResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorToggle not implemented") +} func (UnimplementedHostServiceServer) mustEmbedUnimplementedHostServiceServer() {} // UnsafeHostServiceServer may be embedded to opt out of forward compatibility for this service. @@ -751,6 +766,24 @@ func _HostService_CaptureFrame_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _HostService_IdleInhibitorToggle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceIdleInhibitorToggleRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).IdleInhibitorToggle(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_IdleInhibitorToggle_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).IdleInhibitorToggle(ctx, req.(*HostServiceIdleInhibitorToggleRequest)) + } + return interceptor(ctx, in, info, handler) +} + // HostService_ServiceDesc is the grpc.ServiceDesc for HostService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -822,6 +855,10 @@ var HostService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CaptureFrame", Handler: _HostService_CaptureFrame_Handler, }, + { + MethodName: "IdleInhibitorToggle", + Handler: _HostService_IdleInhibitorToggle_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "hyprpanel/v1/hyprpanel.proto", diff --git a/style/style.go b/style/style.go index 0ca6c31..d69f722 100644 --- a/style/style.go +++ b/style/style.go @@ -41,6 +41,8 @@ const ( HudID = `hud` // HudOverlayID element identifier. HudOverlayID = `hudOverlay` + // IdleID element identifier. + IdleInhibitorID = `idle_inhibitor` // ModuleClass class name. ModuleClass = `module` From 3c5acc7e9eeaf4fd7b852683d83e0de0b754a7d5 Mon Sep 17 00:00:00 2001 From: saiddis Date: Sun, 14 Dec 2025 22:39:49 +0500 Subject: [PATCH 02/10] fix: indicator bug --- cmd/hyprpanel-client/taskbar_item.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/hyprpanel-client/taskbar_item.go b/cmd/hyprpanel-client/taskbar_item.go index 5197d87..237ba28 100644 --- a/cmd/hyprpanel-client/taskbar_item.go +++ b/cmd/hyprpanel-client/taskbar_item.go @@ -333,7 +333,7 @@ func (i *taskbarItem) launchIndicator() { spinner.Start() i.indicator.Append(&spinner.Widget) go func() { - <-time.After(7 * time.Second) + <-time.After(3 * time.Second) var cb glib.SourceFunc cb = func(uintptr) bool { @@ -347,13 +347,13 @@ func (i *taskbarItem) launchIndicator() { } func (i *taskbarItem) updateIndicator() { - if i.cfg.HideIndicators { - return - } for c := i.indicator.GetLastChild(); c != nil; c = i.indicator.GetFirstChild() { i.indicator.Remove(c) c.Unref() } + if i.cfg.HideIndicators { + return + } for n := range i.sortedClients { c := gtk.NewBox(i.orientation, 0) From d8b89bca5f8e36deca13d9a37e83bc9648f5cbac Mon Sep 17 00:00:00 2001 From: saiddis Date: Sun, 14 Dec 2025 22:39:59 +0500 Subject: [PATCH 03/10] chore: deps --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index d348444..cc5919f 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( golang.org/x/sync v0.16.0 golang.org/x/sys v0.35.0 google.golang.org/grpc v1.75.0 - google.golang.org/protobuf v1.36.8 + google.golang.org/protobuf v1.36.10 ) require ( diff --git a/go.sum b/go.sum index 2d2a93f..b57f907 100644 --- a/go.sum +++ b/go.sum @@ -116,8 +116,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1 h1: google.golang.org/genproto/googleapis/rpc v0.0.0-20250826171959-ef028d996bc1/go.mod h1:GmFNa4BdJZ2a8G+wCe9Bg3wwThLrJun751XstdJt5Og= google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= From 5e07009f1260f37ab9debc484274876763740e47 Mon Sep 17 00:00:00 2001 From: saiddis Date: Thu, 1 Jan 2026 19:10:07 +0500 Subject: [PATCH 04/10] refactor: use explicit inhibit/uninhibit methods instead of toggle --- cmd/hyprpanel/host.go | 19 +- internal/dbus/dbus.go | 8 +- internal/panelplugin/grpc.go | 29 +- internal/panelplugin/interface.go | 3 +- proto/doc/hyprpanel/event/v1/doc.md | 22 +- proto/doc/hyprpanel/module/v1/doc.md | 16 + proto/doc/hyprpanel/v1/doc.md | 15 +- proto/hyprpanel/event/v1/event.pb.go | 593 +++++++++++++----------- proto/hyprpanel/event/v1/event.proto | 10 +- proto/hyprpanel/v1/hyprpanel.pb.go | 488 +++++++++---------- proto/hyprpanel/v1/hyprpanel.proto | 7 +- proto/hyprpanel/v1/hyprpanel_grpc.pb.go | 67 ++- 12 files changed, 736 insertions(+), 541 deletions(-) diff --git a/cmd/hyprpanel/host.go b/cmd/hyprpanel/host.go index be3f700..cb7f46b 100644 --- a/cmd/hyprpanel/host.go +++ b/cmd/hyprpanel/host.go @@ -176,12 +176,21 @@ func (h *host) BrightnessAdjust(devName string, direction eventv1.Direction) err return h.dbus.Brightness().Adjust(devName, direction) } -func (h *host) IdleInhibitorToggle(target eventv1.InhibitTarget) error { - if i := h.dbus.IdleInhibitor(); i.IsActive() { - return i.Uninhibit() - } else { - return i.Inhibit(target) +func (h *host) IdleInhibitorInhibit(target eventv1.InhibitTarget) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.IdleInhibitor == nil || !h.cfg.Dbus.IdleInhibitor.Enabled { + return errDisabled + } + + return h.dbus.IdleInhibitor().Inhibit(target) +} + +func (h *host) IdleInhibitorUninhibit(target eventv1.InhibitTarget) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.IdleInhibitor == nil || !h.cfg.Dbus.IdleInhibitor.Enabled { + return errDisabled } + + h.dbus.IdleInhibitor().Uninhibit(target) + return nil } func (h *host) CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) { diff --git a/internal/dbus/dbus.go b/internal/dbus/dbus.go index c5c2f33..1243323 100644 --- a/internal/dbus/dbus.go +++ b/internal/dbus/dbus.go @@ -45,9 +45,8 @@ type Brightness interface { // IdleInhibitor DBUS API, may return nil if IdleInhibitor is disabled. type IdleInhibitor interface { - IsActive() bool Inhibit(target eventv1.InhibitTarget) error - Uninhibit() error + Uninhibit(target eventv1.InhibitTarget) error } // Client for DBUS. @@ -99,6 +98,11 @@ func (c *Client) Close() error { c.log.Warn(`Failed closing SNW session`, `err`, err) } } + if c.idleInhibitor != nil { + if err := c.idleInhibitor.close(); err != nil { + c.log.Warn(`Failed closing IdleInhibitor session`, `err`, err) + } + } if c.notifications != nil { if err := c.notifications.close(); err != nil { c.log.Warn(`Failed closing Notifications session`, `err`, err) diff --git a/internal/panelplugin/grpc.go b/internal/panelplugin/grpc.go index b22006c..9dc3074 100644 --- a/internal/panelplugin/grpc.go +++ b/internal/panelplugin/grpc.go @@ -108,8 +108,17 @@ type HostGRPCClient struct { client hyprpanelv1.HostServiceClient } -func (c *HostGRPCClient) IdleInhibitorToggle(target eventv1.InhibitTarget) error { - if _, err := c.client.IdleInhibitorToggle(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorToggleRequest{ +func (c *HostGRPCClient) IdleInhibitorInhibit(target eventv1.InhibitTarget) error { + if _, err := c.client.IdleInhibitorInhibit(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorRequest{ + Target: target, + }); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) IdleInhibitorUninhibit(target eventv1.InhibitTarget) error { + if _, err := c.client.IdleInhibitorUninhibit(context.Background(), &hyprpanelv1.HostServiceIdleInhibitorRequest{ Target: target, }); err != nil { return err @@ -278,12 +287,20 @@ type HostGRPCServer struct { Impl Host } -func (s *HostGRPCServer) IdleInhibitorToggle(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorToggleRequest) (*hyprpanelv1.HostServiceIdleInhibitorToggleResponse, error) { - err := s.Impl.IdleInhibitorToggle(req.Target) +func (s *HostGRPCServer) IdleInhibitorInhibit(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorRequest) (*hyprpanelv1.HostServiceIdleInhibitorResponse, error) { + err := s.Impl.IdleInhibitorInhibit(req.Target) + if err != nil { + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, err + } + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, nil +} + +func (s *HostGRPCServer) IdleInhibitorUninhibit(ctx context.Context, req *hyprpanelv1.HostServiceIdleInhibitorRequest) (*hyprpanelv1.HostServiceIdleInhibitorResponse, error) { + err := s.Impl.IdleInhibitorUninhibit(req.Target) if err != nil { - return &hyprpanelv1.HostServiceIdleInhibitorToggleResponse{}, err + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, err } - return &hyprpanelv1.HostServiceIdleInhibitorToggleResponse{}, nil + return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, nil } // Exec implementation. diff --git a/internal/panelplugin/interface.go b/internal/panelplugin/interface.go index 2f200f6..f1b9c69 100644 --- a/internal/panelplugin/interface.go +++ b/internal/panelplugin/interface.go @@ -49,7 +49,8 @@ type Host interface { AudioSourceMuteToggle(id string) error BrightnessAdjust(devName string, direction eventv1.Direction) error CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) - IdleInhibitorToggle(target eventv1.InhibitTarget) error + IdleInhibitorInhibit(target eventv1.InhibitTarget) error + IdleInhibitorUninhibit(target eventv1.InhibitTarget) error } // Panel interface. diff --git a/proto/doc/hyprpanel/event/v1/doc.md b/proto/doc/hyprpanel/event/v1/doc.md index 64017da..14969c9 100644 --- a/proto/doc/hyprpanel/event/v1/doc.md +++ b/proto/doc/hyprpanel/event/v1/doc.md @@ -24,6 +24,7 @@ - [HyprOpenWindowValue](#hyprpanel-event-v1-HyprOpenWindowValue) - [HyprRenameWorkspaceValue](#hyprpanel-event-v1-HyprRenameWorkspaceValue) - [HyprWorkspaceV2Value](#hyprpanel-event-v1-HyprWorkspaceV2Value) + - [IdleInhibitorValue](#hyprpanel-event-v1-IdleInhibitorValue) - [NotificationValue](#hyprpanel-event-v1-NotificationValue) - [NotificationValue.Action](#hyprpanel-event-v1-NotificationValue-Action) - [NotificationValue.Hint](#hyprpanel-event-v1-NotificationValue-Hint) @@ -397,6 +398,21 @@ + + +### IdleInhibitorValue + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| target | [InhibitTarget](#hyprpanel-event-v1-InhibitTarget) | | | + + + + + + ### NotificationValue @@ -778,6 +794,8 @@ | EVENT_KIND_HYPR_DESTROYWORKSPACEV2 | 57 | | | EVENT_KIND_HYPR_WORKSPACEV2 | 58 | | | EVENT_KIND_EXEC | 59 | | +| EVENT_KIND_IDLE_INHIBITOR_INHIBIT | 60 | | +| EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT | 61 | | @@ -790,8 +808,8 @@ | ---- | ------ | ----------- | | INHIBIT_TARGET_UNSPECIFIED | 0 | | | INHIBIT_TARGET_IDLE | 1 | | -| INHIBIT_TARGET_SUSPEND | 2 | | -| INHIBIT_TARGET_LOGOUT | 3 | | +| INHIBIT_TARGET_SLEEP | 2 | | +| INHIBIT_TARGET_SHUTDOWN | 3 | | diff --git a/proto/doc/hyprpanel/module/v1/doc.md b/proto/doc/hyprpanel/module/v1/doc.md index 1249dcf..af926bb 100644 --- a/proto/doc/hyprpanel/module/v1/doc.md +++ b/proto/doc/hyprpanel/module/v1/doc.md @@ -18,6 +18,7 @@ - [SystrayModule](#hyprpanel-module-v1-SystrayModule) - [Taskbar](#hyprpanel-module-v1-Taskbar) + - [IdleInhibitor.DefaultTarget](#hyprpanel-module-v1-IdleInhibitor-DefaultTarget) - [Position](#hyprpanel-module-v1-Position) - [Systray.Status](#hyprpanel-module-v1-Systray-Status) @@ -97,6 +98,7 @@ | ----- | ---- | ----- | ----------- | | icon_size | [uint32](#uint32) | | size in pixels for panel icon. | | icon_symbolic | [bool](#bool) | | display symbolic or coloured icon in panel. | +| default_target | [IdleInhibitor.DefaultTarget](#hyprpanel-module-v1-IdleInhibitor-DefaultTarget) | | default inhibit target for left click action. | @@ -286,6 +288,20 @@ + + +### IdleInhibitor.DefaultTarget + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| DEFAULT_TARGET_UNSPECIFIED | 0 | | +| DEFAULT_TARGET_LOCK | 1 | | +| DEFAULT_TARGET_SUSPEND | 2 | | +| DEFAULT_TARGET_SHUTDOWN | 3 | | + + + ### Position diff --git a/proto/doc/hyprpanel/v1/doc.md b/proto/doc/hyprpanel/v1/doc.md index 7e837f1..62a0315 100644 --- a/proto/doc/hyprpanel/v1/doc.md +++ b/proto/doc/hyprpanel/v1/doc.md @@ -22,8 +22,8 @@ - [HostServiceExecResponse](#hyprpanel-v1-HostServiceExecResponse) - [HostServiceFindApplicationRequest](#hyprpanel-v1-HostServiceFindApplicationRequest) - [HostServiceFindApplicationResponse](#hyprpanel-v1-HostServiceFindApplicationResponse) - - [HostServiceIdleInhibitorToggleRequest](#hyprpanel-v1-HostServiceIdleInhibitorToggleRequest) - - [HostServiceIdleInhibitorToggleResponse](#hyprpanel-v1-HostServiceIdleInhibitorToggleResponse) + - [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) + - [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) - [HostServiceNotificationActionRequest](#hyprpanel-v1-HostServiceNotificationActionRequest) - [HostServiceNotificationActionResponse](#hyprpanel-v1-HostServiceNotificationActionResponse) - [HostServiceNotificationClosedRequest](#hyprpanel-v1-HostServiceNotificationClosedRequest) @@ -325,9 +325,9 @@ - + -### HostServiceIdleInhibitorToggleRequest +### HostServiceIdleInhibitorRequest @@ -340,9 +340,9 @@ - + -### HostServiceIdleInhibitorToggleResponse +### HostServiceIdleInhibitorResponse @@ -751,7 +751,8 @@ | AudioSourceMuteToggle | [HostServiceAudioSourceMuteToggleRequest](#hyprpanel-v1-HostServiceAudioSourceMuteToggleRequest) | [HostServiceAudioSourceMuteToggleResponse](#hyprpanel-v1-HostServiceAudioSourceMuteToggleResponse) | | | BrightnessAdjust | [HostServiceBrightnessAdjustRequest](#hyprpanel-v1-HostServiceBrightnessAdjustRequest) | [HostServiceBrightnessAdjustResponse](#hyprpanel-v1-HostServiceBrightnessAdjustResponse) | | | CaptureFrame | [HostServiceCaptureFrameRequest](#hyprpanel-v1-HostServiceCaptureFrameRequest) | [HostServiceCaptureFrameResponse](#hyprpanel-v1-HostServiceCaptureFrameResponse) | | -| IdleInhibitorToggle | [HostServiceIdleInhibitorToggleRequest](#hyprpanel-v1-HostServiceIdleInhibitorToggleRequest) | [HostServiceIdleInhibitorToggleResponse](#hyprpanel-v1-HostServiceIdleInhibitorToggleResponse) | | +| IdleInhibitorInhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | +| IdleInhibitorUninhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | diff --git a/proto/hyprpanel/event/v1/event.pb.go b/proto/hyprpanel/event/v1/event.pb.go index 9a44717..059b803 100644 --- a/proto/hyprpanel/event/v1/event.pb.go +++ b/proto/hyprpanel/event/v1/event.pb.go @@ -205,8 +205,8 @@ type InhibitTarget int32 const ( InhibitTarget_INHIBIT_TARGET_UNSPECIFIED InhibitTarget = 0 InhibitTarget_INHIBIT_TARGET_IDLE InhibitTarget = 1 - InhibitTarget_INHIBIT_TARGET_SUSPEND InhibitTarget = 2 - InhibitTarget_INHIBIT_TARGET_LOGOUT InhibitTarget = 3 + InhibitTarget_INHIBIT_TARGET_SLEEP InhibitTarget = 2 + InhibitTarget_INHIBIT_TARGET_SHUTDOWN InhibitTarget = 3 ) // Enum value maps for InhibitTarget. @@ -214,14 +214,14 @@ var ( InhibitTarget_name = map[int32]string{ 0: "INHIBIT_TARGET_UNSPECIFIED", 1: "INHIBIT_TARGET_IDLE", - 2: "INHIBIT_TARGET_SUSPEND", - 3: "INHIBIT_TARGET_LOGOUT", + 2: "INHIBIT_TARGET_SLEEP", + 3: "INHIBIT_TARGET_SHUTDOWN", } InhibitTarget_value = map[string]int32{ "INHIBIT_TARGET_UNSPECIFIED": 0, "INHIBIT_TARGET_IDLE": 1, - "INHIBIT_TARGET_SUSPEND": 2, - "INHIBIT_TARGET_LOGOUT": 3, + "INHIBIT_TARGET_SLEEP": 2, + "INHIBIT_TARGET_SHUTDOWN": 3, } ) @@ -314,6 +314,8 @@ const ( EventKind_EVENT_KIND_HYPR_DESTROYWORKSPACEV2 EventKind = 57 EventKind_EVENT_KIND_HYPR_WORKSPACEV2 EventKind = 58 EventKind_EVENT_KIND_EXEC EventKind = 59 + EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT EventKind = 60 + EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT EventKind = 61 ) // Enum value maps for EventKind. @@ -378,6 +380,8 @@ var ( 57: "EVENT_KIND_HYPR_DESTROYWORKSPACEV2", 58: "EVENT_KIND_HYPR_WORKSPACEV2", 59: "EVENT_KIND_EXEC", + 60: "EVENT_KIND_IDLE_INHIBITOR_INHIBIT", + 61: "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT", } EventKind_value = map[string]int32{ "EVENT_KIND_UNSPECIFIED": 0, @@ -439,6 +443,8 @@ var ( "EVENT_KIND_HYPR_DESTROYWORKSPACEV2": 57, "EVENT_KIND_HYPR_WORKSPACEV2": 58, "EVENT_KIND_EXEC": 59, + "EVENT_KIND_IDLE_INHIBITOR_INHIBIT": 60, + "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT": 61, } ) @@ -2314,6 +2320,53 @@ func (x *PowerChangeValue) GetEnergyFull() float64 { return 0 } +type IdleInhibitorValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Target InhibitTarget `protobuf:"varint,1,opt,name=target,proto3,enum=hyprpanel.event.v1.InhibitTarget" json:"target,omitempty"` +} + +func (x *IdleInhibitorValue) Reset() { + *x = IdleInhibitorValue{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IdleInhibitorValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IdleInhibitorValue) ProtoMessage() {} + +func (x *IdleInhibitorValue) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IdleInhibitorValue.ProtoReflect.Descriptor instead. +func (*IdleInhibitorValue) Descriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} +} + +func (x *IdleInhibitorValue) GetTarget() InhibitTarget { + if x != nil { + return x.Target + } + return InhibitTarget_INHIBIT_TARGET_UNSPECIFIED +} + type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2326,7 +2379,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2339,7 +2392,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2352,7 +2405,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{28} } func (x *Event) GetKind() EventKind { @@ -2382,7 +2435,7 @@ type StatusNotifierValue_Pixmap struct { func (x *StatusNotifierValue_Pixmap) Reset() { *x = StatusNotifierValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2395,7 +2448,7 @@ func (x *StatusNotifierValue_Pixmap) String() string { func (*StatusNotifierValue_Pixmap) ProtoMessage() {} func (x *StatusNotifierValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2446,7 +2499,7 @@ type StatusNotifierValue_Tooltip struct { func (x *StatusNotifierValue_Tooltip) Reset() { *x = StatusNotifierValue_Tooltip{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2459,7 +2512,7 @@ func (x *StatusNotifierValue_Tooltip) String() string { func (*StatusNotifierValue_Tooltip) ProtoMessage() {} func (x *StatusNotifierValue_Tooltip) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2516,7 +2569,7 @@ type StatusNotifierValue_Icon struct { func (x *StatusNotifierValue_Icon) Reset() { *x = StatusNotifierValue_Icon{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2529,7 +2582,7 @@ func (x *StatusNotifierValue_Icon) String() string { func (*StatusNotifierValue_Icon) ProtoMessage() {} func (x *StatusNotifierValue_Icon) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2579,7 +2632,7 @@ type StatusNotifierValue_Menu struct { func (x *StatusNotifierValue_Menu) Reset() { *x = StatusNotifierValue_Menu{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2592,7 +2645,7 @@ func (x *StatusNotifierValue_Menu) String() string { func (*StatusNotifierValue_Menu) ProtoMessage() {} func (x *StatusNotifierValue_Menu) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2649,7 +2702,7 @@ type StatusNotifierValue_Menu_Properties struct { func (x *StatusNotifierValue_Menu_Properties) Reset() { *x = StatusNotifierValue_Menu_Properties{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2662,7 +2715,7 @@ func (x *StatusNotifierValue_Menu_Properties) String() string { func (*StatusNotifierValue_Menu_Properties) ProtoMessage() {} func (x *StatusNotifierValue_Menu_Properties) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2760,7 +2813,7 @@ type NotificationValue_Hint struct { func (x *NotificationValue_Hint) Reset() { *x = NotificationValue_Hint{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2773,7 +2826,7 @@ func (x *NotificationValue_Hint) String() string { func (*NotificationValue_Hint) ProtoMessage() {} func (x *NotificationValue_Hint) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2815,7 +2868,7 @@ type NotificationValue_Action struct { func (x *NotificationValue_Action) Reset() { *x = NotificationValue_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2828,7 +2881,7 @@ func (x *NotificationValue_Action) String() string { func (*NotificationValue_Action) ProtoMessage() {} func (x *NotificationValue_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2875,7 +2928,7 @@ type NotificationValue_Pixmap struct { func (x *NotificationValue_Pixmap) Reset() { *x = NotificationValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2888,7 +2941,7 @@ func (x *NotificationValue_Pixmap) String() string { func (*NotificationValue_Pixmap) ProtoMessage() {} func (x *NotificationValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3277,196 +3330,206 @@ var file_hyprpanel_event_v1_event_proto_rawDesc = []byte{ 0x65, 0x72, 0x67, 0x79, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, 0x64, - 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, 0x12, - 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, - 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x5f, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x02, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, - 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, 0x10, - 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, 0x12, 0x14, - 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x4f, - 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, - 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, - 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, 0x45, 0x52, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, 0x1d, - 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, - 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, 0x0a, - 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, 0x0a, - 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, - 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x06, - 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, - 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x55, 0x53, - 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, - 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x4f, 0x55, 0x54, 0x10, - 0x03, 0x2a, 0x86, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, - 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, - 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x4f, - 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, + 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, 0x4f, + 0x0a, 0x12, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, + 0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, + 0x15, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, + 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, + 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x02, + 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x50, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, + 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, + 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x50, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, 0x12, + 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, + 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, + 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, + 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, 0x45, + 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, + 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, + 0x55, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, + 0x0a, 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, + 0x0a, 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, + 0x06, 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, + 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, + 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x49, + 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x4c, + 0x45, 0x45, 0x50, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, + 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, + 0x10, 0x03, 0x2a, 0xd6, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x05, - 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x06, - 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, 0x56, - 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x41, - 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, - 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, - 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, - 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, 0x4f, - 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, - 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, + 0x4f, 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, + 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, + 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, + 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, + 0x56, 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, + 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, - 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, 0x1f, - 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, 0x12, + 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, + 0x41, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, + 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, 0x12, - 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1e, - 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, 0x1a, - 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x45, - 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x1c, - 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, - 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, 0x4b, - 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, 0x47, - 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, - 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, - 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, - 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, - 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, 0x45, - 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, 0x4c, - 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x49, - 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x4d, - 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, 0x4f, - 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, - 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, - 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, 0x1d, - 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, - 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, 0x12, - 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, - 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, - 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, 0x57, - 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x48, - 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, - 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, - 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, - 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, 0x0a, - 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, - 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, - 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, 0x0a, - 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, - 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, - 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, - 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, - 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, 0x23, + 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, + 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, + 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, + 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, + 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, + 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, + 0x45, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, + 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, + 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, + 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, - 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, - 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, 0x22, - 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, - 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x42, 0xc9, 0x01, 0x0a, 0x16, 0x63, - 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, + 0x4b, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, + 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, + 0x45, 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, + 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, + 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, + 0x45, 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, + 0x4c, 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, + 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, + 0x24, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, + 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, + 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, + 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, + 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, + 0x10, 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, + 0x57, 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, + 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, + 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, + 0x41, 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, + 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, + 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, + 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, + 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, + 0x0a, 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, + 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, + 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, + 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, + 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, + 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, + 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x56, 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, + 0x4f, 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, + 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x12, 0x25, 0x0a, 0x21, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, + 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, + 0x10, 0x3c, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, + 0x55, 0x4e, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x10, 0x3d, 0x42, 0xc9, 0x01, 0x0a, 0x16, + 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3482,7 +3545,7 @@ func file_hyprpanel_event_v1_event_proto_rawDescGZIP() []byte { } var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_hyprpanel_event_v1_event_proto_goTypes = []interface{}{ (Direction)(0), // 0: hyprpanel.event.v1.Direction (PowerType)(0), // 1: hyprpanel.event.v1.PowerType @@ -3516,50 +3579,52 @@ var file_hyprpanel_event_v1_event_proto_goTypes = []interface{}{ (*BrightnessChangeValue)(nil), // 29: hyprpanel.event.v1.BrightnessChangeValue (*BrightnessAdjustValue)(nil), // 30: hyprpanel.event.v1.BrightnessAdjustValue (*PowerChangeValue)(nil), // 31: hyprpanel.event.v1.PowerChangeValue - (*Event)(nil), // 32: hyprpanel.event.v1.Event - (*StatusNotifierValue_Pixmap)(nil), // 33: hyprpanel.event.v1.StatusNotifierValue.Pixmap - (*StatusNotifierValue_Tooltip)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Tooltip - (*StatusNotifierValue_Icon)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Icon - (*StatusNotifierValue_Menu)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Menu - (*StatusNotifierValue_Menu_Properties)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - (*NotificationValue_Hint)(nil), // 38: hyprpanel.event.v1.NotificationValue.Hint - (*NotificationValue_Action)(nil), // 39: hyprpanel.event.v1.NotificationValue.Action - (*NotificationValue_Pixmap)(nil), // 40: hyprpanel.event.v1.NotificationValue.Pixmap - (v1.Systray_Status)(0), // 41: hyprpanel.module.v1.Systray.Status - (*durationpb.Duration)(nil), // 42: google.protobuf.Duration - (*anypb.Any)(nil), // 43: google.protobuf.Any + (*IdleInhibitorValue)(nil), // 32: hyprpanel.event.v1.IdleInhibitorValue + (*Event)(nil), // 33: hyprpanel.event.v1.Event + (*StatusNotifierValue_Pixmap)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Pixmap + (*StatusNotifierValue_Tooltip)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Tooltip + (*StatusNotifierValue_Icon)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Icon + (*StatusNotifierValue_Menu)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Menu + (*StatusNotifierValue_Menu_Properties)(nil), // 38: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + (*NotificationValue_Hint)(nil), // 39: hyprpanel.event.v1.NotificationValue.Hint + (*NotificationValue_Action)(nil), // 40: hyprpanel.event.v1.NotificationValue.Action + (*NotificationValue_Pixmap)(nil), // 41: hyprpanel.event.v1.NotificationValue.Pixmap + (v1.Systray_Status)(0), // 42: hyprpanel.module.v1.Systray.Status + (*durationpb.Duration)(nil), // 43: google.protobuf.Duration + (*anypb.Any)(nil), // 44: google.protobuf.Any } var file_hyprpanel_event_v1_event_proto_depIdxs = []int32{ - 41, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 34, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 35, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 36, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 34, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 35, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 41, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 36, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 39, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action - 38, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint - 42, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration + 42, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 35, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 36, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 37, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 35, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 36, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 42, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 37, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 40, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action + 39, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint + 43, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration 0, // 11: hyprpanel.event.v1.AudioSinkVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 12: hyprpanel.event.v1.AudioSourceVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction 0, // 13: hyprpanel.event.v1.BrightnessAdjustValue.direction:type_name -> hyprpanel.event.v1.Direction 1, // 14: hyprpanel.event.v1.PowerChangeValue.type:type_name -> hyprpanel.event.v1.PowerType - 42, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration - 42, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration + 43, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration + 43, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration 2, // 17: hyprpanel.event.v1.PowerChangeValue.state:type_name -> hyprpanel.event.v1.PowerState - 4, // 18: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind - 43, // 19: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any - 33, // 20: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 33, // 21: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 37, // 22: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - 36, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 43, // 24: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any - 25, // [25:25] is the sub-list for method output_type - 25, // [25:25] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 3, // 18: hyprpanel.event.v1.IdleInhibitorValue.target:type_name -> hyprpanel.event.v1.InhibitTarget + 4, // 19: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind + 44, // 20: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any + 34, // 21: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 34, // 22: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 38, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + 37, // 24: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 44, // 25: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name } func init() { file_hyprpanel_event_v1_event_proto_init() } @@ -3893,7 +3958,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*IdleInhibitorValue); i { case 0: return &v.state case 1: @@ -3905,7 +3970,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Pixmap); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -3917,7 +3982,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Tooltip); i { + switch v := v.(*StatusNotifierValue_Pixmap); i { case 0: return &v.state case 1: @@ -3929,7 +3994,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Icon); i { + switch v := v.(*StatusNotifierValue_Tooltip); i { case 0: return &v.state case 1: @@ -3941,7 +4006,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu); i { + switch v := v.(*StatusNotifierValue_Icon); i { case 0: return &v.state case 1: @@ -3953,7 +4018,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu_Properties); i { + switch v := v.(*StatusNotifierValue_Menu); i { case 0: return &v.state case 1: @@ -3965,7 +4030,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Hint); i { + switch v := v.(*StatusNotifierValue_Menu_Properties); i { case 0: return &v.state case 1: @@ -3977,7 +4042,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Action); i { + switch v := v.(*NotificationValue_Hint); i { case 0: return &v.state case 1: @@ -3989,6 +4054,18 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationValue_Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_event_v1_event_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotificationValue_Pixmap); i { case 0: return &v.state @@ -4007,7 +4084,7 @@ func file_hyprpanel_event_v1_event_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_event_v1_event_proto_rawDesc, NumEnums: 5, - NumMessages: 36, + NumMessages: 37, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/event/v1/event.proto b/proto/hyprpanel/event/v1/event.proto index 4a6ef25..9fa9655 100644 --- a/proto/hyprpanel/event/v1/event.proto +++ b/proto/hyprpanel/event/v1/event.proto @@ -37,8 +37,8 @@ enum PowerState { enum InhibitTarget { INHIBIT_TARGET_UNSPECIFIED = 0; INHIBIT_TARGET_IDLE = 1; - INHIBIT_TARGET_SUSPEND = 2; - INHIBIT_TARGET_LOGOUT = 3; + INHIBIT_TARGET_SLEEP = 2; + INHIBIT_TARGET_SHUTDOWN = 3; } enum EventKind { @@ -101,6 +101,8 @@ enum EventKind { EVENT_KIND_HYPR_DESTROYWORKSPACEV2 = 57; EVENT_KIND_HYPR_WORKSPACEV2 = 58; EVENT_KIND_EXEC = 59; + EVENT_KIND_IDLE_INHIBITOR_INHIBIT = 60; + EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT = 61; } message HyprWorkspaceV2Value { @@ -340,6 +342,10 @@ message PowerChangeValue { double energy_full = 14; } +message IdleInhibitorValue { + InhibitTarget target = 1; +} + message Event { EventKind kind = 1; google.protobuf.Any data = 2; diff --git a/proto/hyprpanel/v1/hyprpanel.pb.go b/proto/hyprpanel/v1/hyprpanel.pb.go index 3d3dd31..f481824 100644 --- a/proto/hyprpanel/v1/hyprpanel.pb.go +++ b/proto/hyprpanel/v1/hyprpanel.pb.go @@ -2217,7 +2217,7 @@ func (x *HostServiceCaptureFrameRequest) GetHeight() int32 { return 0 } -type HostServiceIdleInhibitorToggleRequest struct { +type HostServiceIdleInhibitorRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2225,8 +2225,8 @@ type HostServiceIdleInhibitorToggleRequest struct { Target v11.InhibitTarget `protobuf:"varint,1,opt,name=target,proto3,enum=hyprpanel.event.v1.InhibitTarget" json:"target,omitempty"` } -func (x *HostServiceIdleInhibitorToggleRequest) Reset() { - *x = HostServiceIdleInhibitorToggleRequest{} +func (x *HostServiceIdleInhibitorRequest) Reset() { + *x = HostServiceIdleInhibitorRequest{} if protoimpl.UnsafeEnabled { mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2234,13 +2234,13 @@ func (x *HostServiceIdleInhibitorToggleRequest) Reset() { } } -func (x *HostServiceIdleInhibitorToggleRequest) String() string { +func (x *HostServiceIdleInhibitorRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HostServiceIdleInhibitorToggleRequest) ProtoMessage() {} +func (*HostServiceIdleInhibitorRequest) ProtoMessage() {} -func (x *HostServiceIdleInhibitorToggleRequest) ProtoReflect() protoreflect.Message { +func (x *HostServiceIdleInhibitorRequest) ProtoReflect() protoreflect.Message { mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2252,26 +2252,26 @@ func (x *HostServiceIdleInhibitorToggleRequest) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use HostServiceIdleInhibitorToggleRequest.ProtoReflect.Descriptor instead. -func (*HostServiceIdleInhibitorToggleRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use HostServiceIdleInhibitorRequest.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorRequest) Descriptor() ([]byte, []int) { return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{41} } -func (x *HostServiceIdleInhibitorToggleRequest) GetTarget() v11.InhibitTarget { +func (x *HostServiceIdleInhibitorRequest) GetTarget() v11.InhibitTarget { if x != nil { return x.Target } return v11.InhibitTarget(0) } -type HostServiceIdleInhibitorToggleResponse struct { +type HostServiceIdleInhibitorResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *HostServiceIdleInhibitorToggleResponse) Reset() { - *x = HostServiceIdleInhibitorToggleResponse{} +func (x *HostServiceIdleInhibitorResponse) Reset() { + *x = HostServiceIdleInhibitorResponse{} if protoimpl.UnsafeEnabled { mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2279,13 +2279,13 @@ func (x *HostServiceIdleInhibitorToggleResponse) Reset() { } } -func (x *HostServiceIdleInhibitorToggleResponse) String() string { +func (x *HostServiceIdleInhibitorResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HostServiceIdleInhibitorToggleResponse) ProtoMessage() {} +func (*HostServiceIdleInhibitorResponse) ProtoMessage() {} -func (x *HostServiceIdleInhibitorToggleResponse) ProtoReflect() protoreflect.Message { +func (x *HostServiceIdleInhibitorResponse) ProtoReflect() protoreflect.Message { mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2297,8 +2297,8 @@ func (x *HostServiceIdleInhibitorToggleResponse) ProtoReflect() protoreflect.Mes return mi.MessageOf(x) } -// Deprecated: Use HostServiceIdleInhibitorToggleResponse.ProtoReflect.Descriptor instead. -func (*HostServiceIdleInhibitorToggleResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use HostServiceIdleInhibitorResponse.ProtoReflect.Descriptor instead. +func (*HostServiceIdleInhibitorResponse) Descriptor() ([]byte, []int) { return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{42} } @@ -2643,215 +2643,221 @@ var file_hyprpanel_v1_hyprpanel_proto_rawDesc = []byte{ 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x62, 0x0a, 0x25, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x28, 0x0a, 0x26, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, 0x52, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, - 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, - 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, - 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, - 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, - 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, - 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, - 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, - 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, - 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x48, - 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x4f, 0x54, + 0x68, 0x74, 0x22, 0x5c, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x22, 0x22, 0x0a, 0x20, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x1f, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, + 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, + 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, + 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, + 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, + 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, + 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x48, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, + 0x18, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, 0x02, 0x0a, 0x0c, 0x50, - 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x04, 0x49, - 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x27, 0x2e, 0x68, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, + 0x24, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, + 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, + 0x49, 0x53, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, + 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x55, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, + 0x12, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf8, 0x10, 0x0a, 0x0b, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x45, 0x78, 0x65, - 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, - 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x64, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, - 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x53, - 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, - 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, - 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x12, 0x2d, 0x2e, - 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe5, 0x11, + 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, + 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, - 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x2e, 0x68, 0x79, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, + 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x6e, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, + 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, + 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x95, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, + 0x3a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, + 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, - 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x12, - 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, - 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, - 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, + 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, + 0x68, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, + 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, + 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, + 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, + 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, + 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, + 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, + 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, + 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, - 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, + 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x10, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, + 0x75, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, - 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x14, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, + 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, - 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, - 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x35, 0x2e, 0x68, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, - 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x42, - 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, - 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, - 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, - 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x16, + 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x69, + 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2913,8 +2919,8 @@ var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (*HostServiceBrightnessAdjustRequest)(nil), // 41: hyprpanel.v1.HostServiceBrightnessAdjustRequest (*HostServiceBrightnessAdjustResponse)(nil), // 42: hyprpanel.v1.HostServiceBrightnessAdjustResponse (*HostServiceCaptureFrameRequest)(nil), // 43: hyprpanel.v1.HostServiceCaptureFrameRequest - (*HostServiceIdleInhibitorToggleRequest)(nil), // 44: hyprpanel.v1.HostServiceIdleInhibitorToggleRequest - (*HostServiceIdleInhibitorToggleResponse)(nil), // 45: hyprpanel.v1.HostServiceIdleInhibitorToggleResponse + (*HostServiceIdleInhibitorRequest)(nil), // 44: hyprpanel.v1.HostServiceIdleInhibitorRequest + (*HostServiceIdleInhibitorResponse)(nil), // 45: hyprpanel.v1.HostServiceIdleInhibitorResponse (*HostServiceCaptureFrameResponse)(nil), // 46: hyprpanel.v1.HostServiceCaptureFrameResponse (*AppInfo_Action)(nil), // 47: hyprpanel.v1.AppInfo.Action (v1.LogLevel)(0), // 48: hyprpanel.config.v1.LogLevel @@ -2938,7 +2944,7 @@ var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ 52, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction 52, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction 52, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 53, // 13: hyprpanel.v1.HostServiceIdleInhibitorToggleRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget + 53, // 13: hyprpanel.v1.HostServiceIdleInhibitorRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget 3, // 14: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA 5, // 15: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest 7, // 16: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest @@ -2959,29 +2965,31 @@ var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ 39, // 31: hyprpanel.v1.HostService.AudioSourceMuteToggle:input_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleRequest 41, // 32: hyprpanel.v1.HostService.BrightnessAdjust:input_type -> hyprpanel.v1.HostServiceBrightnessAdjustRequest 43, // 33: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest - 44, // 34: hyprpanel.v1.HostService.IdleInhibitorToggle:input_type -> hyprpanel.v1.HostServiceIdleInhibitorToggleRequest - 6, // 35: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse - 8, // 36: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse - 12, // 37: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse - 14, // 38: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse - 16, // 39: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse - 18, // 40: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse - 20, // 41: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse - 22, // 42: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse - 24, // 43: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse - 26, // 44: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse - 28, // 45: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse - 30, // 46: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse - 32, // 47: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse - 34, // 48: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse - 36, // 49: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse - 38, // 50: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse - 40, // 51: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse - 42, // 52: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse - 46, // 53: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse - 45, // 54: hyprpanel.v1.HostService.IdleInhibitorToggle:output_type -> hyprpanel.v1.HostServiceIdleInhibitorToggleResponse - 35, // [35:55] is the sub-list for method output_type - 15, // [15:35] is the sub-list for method input_type + 44, // 34: hyprpanel.v1.HostService.IdleInhibitorInhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest + 44, // 35: hyprpanel.v1.HostService.IdleInhibitorUninhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest + 6, // 36: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse + 8, // 37: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse + 12, // 38: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse + 14, // 39: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse + 16, // 40: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse + 18, // 41: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse + 20, // 42: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse + 22, // 43: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse + 24, // 44: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse + 26, // 45: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse + 28, // 46: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse + 30, // 47: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse + 32, // 48: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse + 34, // 49: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse + 36, // 50: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse + 38, // 51: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse + 40, // 52: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse + 42, // 53: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse + 46, // 54: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse + 45, // 55: hyprpanel.v1.HostService.IdleInhibitorInhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 45, // 56: hyprpanel.v1.HostService.IdleInhibitorUninhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 36, // [36:57] is the sub-list for method output_type + 15, // [15:36] is the sub-list for method input_type 15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension extendee 0, // [0:15] is the sub-list for field type_name @@ -3486,7 +3494,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostServiceIdleInhibitorToggleRequest); i { + switch v := v.(*HostServiceIdleInhibitorRequest); i { case 0: return &v.state case 1: @@ -3498,7 +3506,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HostServiceIdleInhibitorToggleResponse); i { + switch v := v.(*HostServiceIdleInhibitorResponse); i { case 0: return &v.state case 1: diff --git a/proto/hyprpanel/v1/hyprpanel.proto b/proto/hyprpanel/v1/hyprpanel.proto index 7447fd0..d285369 100644 --- a/proto/hyprpanel/v1/hyprpanel.proto +++ b/proto/hyprpanel/v1/hyprpanel.proto @@ -181,11 +181,11 @@ message HostServiceCaptureFrameRequest { int32 height = 3; } -message HostServiceIdleInhibitorToggleRequest { +message HostServiceIdleInhibitorRequest { hyprpanel.event.v1.InhibitTarget target = 1; } -message HostServiceIdleInhibitorToggleResponse {} +message HostServiceIdleInhibitorResponse {} message HostServiceCaptureFrameResponse { ImageNRGBA image = 1; @@ -208,5 +208,6 @@ service HostService { rpc AudioSourceMuteToggle(HostServiceAudioSourceMuteToggleRequest) returns (HostServiceAudioSourceMuteToggleResponse); rpc BrightnessAdjust(HostServiceBrightnessAdjustRequest) returns (HostServiceBrightnessAdjustResponse); rpc CaptureFrame(HostServiceCaptureFrameRequest) returns (HostServiceCaptureFrameResponse); - rpc IdleInhibitorToggle(HostServiceIdleInhibitorToggleRequest) returns (HostServiceIdleInhibitorToggleResponse); + rpc IdleInhibitorInhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); + rpc IdleInhibitorUninhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); } diff --git a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go index 2954e2a..83fe347 100644 --- a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go +++ b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go @@ -199,7 +199,8 @@ const ( HostService_AudioSourceMuteToggle_FullMethodName = "/hyprpanel.v1.HostService/AudioSourceMuteToggle" HostService_BrightnessAdjust_FullMethodName = "/hyprpanel.v1.HostService/BrightnessAdjust" HostService_CaptureFrame_FullMethodName = "/hyprpanel.v1.HostService/CaptureFrame" - HostService_IdleInhibitorToggle_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorToggle" + HostService_IdleInhibitorInhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorInhibit" + HostService_IdleInhibitorUninhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorUninhibit" ) // HostServiceClient is the client API for HostService service. @@ -222,7 +223,8 @@ type HostServiceClient interface { AudioSourceMuteToggle(ctx context.Context, in *HostServiceAudioSourceMuteToggleRequest, opts ...grpc.CallOption) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(ctx context.Context, in *HostServiceBrightnessAdjustRequest, opts ...grpc.CallOption) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(ctx context.Context, in *HostServiceCaptureFrameRequest, opts ...grpc.CallOption) (*HostServiceCaptureFrameResponse, error) - IdleInhibitorToggle(ctx context.Context, in *HostServiceIdleInhibitorToggleRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorToggleResponse, error) + IdleInhibitorInhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) + IdleInhibitorUninhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) } type hostServiceClient struct { @@ -377,9 +379,18 @@ func (c *hostServiceClient) CaptureFrame(ctx context.Context, in *HostServiceCap return out, nil } -func (c *hostServiceClient) IdleInhibitorToggle(ctx context.Context, in *HostServiceIdleInhibitorToggleRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorToggleResponse, error) { - out := new(HostServiceIdleInhibitorToggleResponse) - err := c.cc.Invoke(ctx, HostService_IdleInhibitorToggle_FullMethodName, in, out, opts...) +func (c *hostServiceClient) IdleInhibitorInhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) { + out := new(HostServiceIdleInhibitorResponse) + err := c.cc.Invoke(ctx, HostService_IdleInhibitorInhibit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) IdleInhibitorUninhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) { + out := new(HostServiceIdleInhibitorResponse) + err := c.cc.Invoke(ctx, HostService_IdleInhibitorUninhibit_FullMethodName, in, out, opts...) if err != nil { return nil, err } @@ -406,7 +417,8 @@ type HostServiceServer interface { AudioSourceMuteToggle(context.Context, *HostServiceAudioSourceMuteToggleRequest) (*HostServiceAudioSourceMuteToggleResponse, error) BrightnessAdjust(context.Context, *HostServiceBrightnessAdjustRequest) (*HostServiceBrightnessAdjustResponse, error) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) - IdleInhibitorToggle(context.Context, *HostServiceIdleInhibitorToggleRequest) (*HostServiceIdleInhibitorToggleResponse, error) + IdleInhibitorInhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) + IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) mustEmbedUnimplementedHostServiceServer() } @@ -462,8 +474,11 @@ func (UnimplementedHostServiceServer) BrightnessAdjust(context.Context, *HostSer func (UnimplementedHostServiceServer) CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CaptureFrame not implemented") } -func (UnimplementedHostServiceServer) IdleInhibitorToggle(context.Context, *HostServiceIdleInhibitorToggleRequest) (*HostServiceIdleInhibitorToggleResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorToggle not implemented") +func (UnimplementedHostServiceServer) IdleInhibitorInhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorInhibit not implemented") +} +func (UnimplementedHostServiceServer) IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorUninhibit not implemented") } func (UnimplementedHostServiceServer) mustEmbedUnimplementedHostServiceServer() {} @@ -766,20 +781,38 @@ func _HostService_CaptureFrame_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _HostService_IdleInhibitorToggle_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HostServiceIdleInhibitorToggleRequest) +func _HostService_IdleInhibitorInhibit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceIdleInhibitorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).IdleInhibitorInhibit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_IdleInhibitorInhibit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).IdleInhibitorInhibit(ctx, req.(*HostServiceIdleInhibitorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_IdleInhibitorUninhibit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceIdleInhibitorRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(HostServiceServer).IdleInhibitorToggle(ctx, in) + return srv.(HostServiceServer).IdleInhibitorUninhibit(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: HostService_IdleInhibitorToggle_FullMethodName, + FullMethod: HostService_IdleInhibitorUninhibit_FullMethodName, } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HostServiceServer).IdleInhibitorToggle(ctx, req.(*HostServiceIdleInhibitorToggleRequest)) + return srv.(HostServiceServer).IdleInhibitorUninhibit(ctx, req.(*HostServiceIdleInhibitorRequest)) } return interceptor(ctx, in, info, handler) } @@ -856,8 +889,12 @@ var HostService_ServiceDesc = grpc.ServiceDesc{ Handler: _HostService_CaptureFrame_Handler, }, { - MethodName: "IdleInhibitorToggle", - Handler: _HostService_IdleInhibitorToggle_Handler, + MethodName: "IdleInhibitorInhibit", + Handler: _HostService_IdleInhibitorInhibit_Handler, + }, + { + MethodName: "IdleInhibitorUninhibit", + Handler: _HostService_IdleInhibitorUninhibit_Handler, }, }, Streams: []grpc.StreamDesc{}, From 3df493ce0cc3ff78f236591c3ad50c3c6f28f3d1 Mon Sep 17 00:00:00 2001 From: saiddis Date: Thu, 1 Jan 2026 19:12:39 +0500 Subject: [PATCH 05/10] feat: add default inhibit target option --- config/default.json | 4 +- proto/hyprpanel/module/v1/module.pb.go | 307 +++++++++++++++---------- proto/hyprpanel/module/v1/module.proto | 8 + 3 files changed, 201 insertions(+), 118 deletions(-) diff --git a/config/default.json b/config/default.json index 248b031..49c3aa9 100644 --- a/config/default.json +++ b/config/default.json @@ -143,8 +143,8 @@ { "idle_inhibitor": { "icon_size": 24, - "icon_symbolic": true - + "icon_symbolic": true, + "default_target": 1 } }, { diff --git a/proto/hyprpanel/module/v1/module.pb.go b/proto/hyprpanel/module/v1/module.pb.go index e40c58e..8c9cad1 100644 --- a/proto/hyprpanel/module/v1/module.pb.go +++ b/proto/hyprpanel/module/v1/module.pb.go @@ -143,6 +143,58 @@ func (Systray_Status) EnumDescriptor() ([]byte, []int) { return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{2, 0} } +type IdleInhibitor_DefaultTarget int32 + +const ( + IdleInhibitor_DEFAULT_TARGET_UNSPECIFIED IdleInhibitor_DefaultTarget = 0 + IdleInhibitor_DEFAULT_TARGET_LOCK IdleInhibitor_DefaultTarget = 1 + IdleInhibitor_DEFAULT_TARGET_SUSPEND IdleInhibitor_DefaultTarget = 2 + IdleInhibitor_DEFAULT_TARGET_SHUTDOWN IdleInhibitor_DefaultTarget = 3 +) + +// Enum value maps for IdleInhibitor_DefaultTarget. +var ( + IdleInhibitor_DefaultTarget_name = map[int32]string{ + 0: "DEFAULT_TARGET_UNSPECIFIED", + 1: "DEFAULT_TARGET_LOCK", + 2: "DEFAULT_TARGET_SUSPEND", + 3: "DEFAULT_TARGET_SHUTDOWN", + } + IdleInhibitor_DefaultTarget_value = map[string]int32{ + "DEFAULT_TARGET_UNSPECIFIED": 0, + "DEFAULT_TARGET_LOCK": 1, + "DEFAULT_TARGET_SUSPEND": 2, + "DEFAULT_TARGET_SHUTDOWN": 3, + } +) + +func (x IdleInhibitor_DefaultTarget) Enum() *IdleInhibitor_DefaultTarget { + p := new(IdleInhibitor_DefaultTarget) + *p = x + return p +} + +func (x IdleInhibitor_DefaultTarget) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IdleInhibitor_DefaultTarget) Descriptor() protoreflect.EnumDescriptor { + return file_hyprpanel_module_v1_module_proto_enumTypes[2].Descriptor() +} + +func (IdleInhibitor_DefaultTarget) Type() protoreflect.EnumType { + return &file_hyprpanel_module_v1_module_proto_enumTypes[2] +} + +func (x IdleInhibitor_DefaultTarget) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IdleInhibitor_DefaultTarget.Descriptor instead. +func (IdleInhibitor_DefaultTarget) EnumDescriptor() ([]byte, []int) { + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{11, 0} +} + type Pager struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1059,8 +1111,9 @@ type IdleInhibitor struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IconSize uint32 `protobuf:"varint,1,opt,name=icon_size,json=iconSize,proto3" json:"icon_size,omitempty"` // size in pixels for panel icon. - IconSymbolic bool `protobuf:"varint,2,opt,name=icon_symbolic,json=iconSymbolic,proto3" json:"icon_symbolic,omitempty"` // display symbolic or coloured icon in panel. + IconSize uint32 `protobuf:"varint,1,opt,name=icon_size,json=iconSize,proto3" json:"icon_size,omitempty"` // size in pixels for panel icon. + IconSymbolic bool `protobuf:"varint,2,opt,name=icon_symbolic,json=iconSymbolic,proto3" json:"icon_symbolic,omitempty"` // display symbolic or coloured icon in panel. + DefaultTarget IdleInhibitor_DefaultTarget `protobuf:"varint,3,opt,name=default_target,json=defaultTarget,proto3,enum=hyprpanel.module.v1.IdleInhibitor_DefaultTarget" json:"default_target,omitempty"` // default inhibit target for left click action. } func (x *IdleInhibitor) Reset() { @@ -1109,6 +1162,13 @@ func (x *IdleInhibitor) GetIconSymbolic() bool { return false } +func (x *IdleInhibitor) GetDefaultTarget() IdleInhibitor_DefaultTarget { + if x != nil { + return x.DefaultTarget + } + return IdleInhibitor_DEFAULT_TARGET_UNSPECIFIED +} + type Module struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1486,82 +1546,95 @@ var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x42, 0x06, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, - 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, 0x6e, - 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0xae, 0x02, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, + 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, + 0x6e, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x12, 0x57, 0x0a, 0x0e, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, + 0x62, 0x69, 0x74, 0x6f, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, + 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, + 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x46, + 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, + 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, + 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x12, + 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, 0x03, + 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, - 0x52, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, - 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, - 0x72, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, - 0x52, 0x03, 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x48, 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, - 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, - 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, 0x00, + 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, - 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x42, - 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, - 0x0a, 0x11, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, - 0x45, 0x46, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, - 0x54, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, - 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, - 0x4d, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, - 0x0d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, - 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, - 0x54, 0x45, 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, - 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, - 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x48, 0x4d, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, + 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x72, + 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, + 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x46, + 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, + 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, + 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, + 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, + 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, + 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, + 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x50, + 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, 0x12, 0x13, + 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, + 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, + 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, + 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x4d, + 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1576,52 +1649,54 @@ func file_hyprpanel_module_v1_module_proto_rawDescGZIP() []byte { return file_hyprpanel_module_v1_module_proto_rawDescData } -var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ - (Position)(0), // 0: hyprpanel.module.v1.Position - (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status - (*Pager)(nil), // 2: hyprpanel.module.v1.Pager - (*Taskbar)(nil), // 3: hyprpanel.module.v1.Taskbar - (*Systray)(nil), // 4: hyprpanel.module.v1.Systray - (*Notifications)(nil), // 5: hyprpanel.module.v1.Notifications - (*Hud)(nil), // 6: hyprpanel.module.v1.Hud - (*Clock)(nil), // 7: hyprpanel.module.v1.Clock - (*Audio)(nil), // 8: hyprpanel.module.v1.Audio - (*Power)(nil), // 9: hyprpanel.module.v1.Power - (*Session)(nil), // 10: hyprpanel.module.v1.Session - (*Spacer)(nil), // 11: hyprpanel.module.v1.Spacer - (*SystrayModule)(nil), // 12: hyprpanel.module.v1.SystrayModule - (*IdleInhibitor)(nil), // 13: hyprpanel.module.v1.IdleInhibitor - (*Module)(nil), // 14: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 15: google.protobuf.Duration + (Position)(0), // 0: hyprpanel.module.v1.Position + (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status + (IdleInhibitor_DefaultTarget)(0), // 2: hyprpanel.module.v1.IdleInhibitor.DefaultTarget + (*Pager)(nil), // 3: hyprpanel.module.v1.Pager + (*Taskbar)(nil), // 4: hyprpanel.module.v1.Taskbar + (*Systray)(nil), // 5: hyprpanel.module.v1.Systray + (*Notifications)(nil), // 6: hyprpanel.module.v1.Notifications + (*Hud)(nil), // 7: hyprpanel.module.v1.Hud + (*Clock)(nil), // 8: hyprpanel.module.v1.Clock + (*Audio)(nil), // 9: hyprpanel.module.v1.Audio + (*Power)(nil), // 10: hyprpanel.module.v1.Power + (*Session)(nil), // 11: hyprpanel.module.v1.Session + (*Spacer)(nil), // 12: hyprpanel.module.v1.Spacer + (*SystrayModule)(nil), // 13: hyprpanel.module.v1.SystrayModule + (*IdleInhibitor)(nil), // 14: hyprpanel.module.v1.IdleInhibitor + (*Module)(nil), // 15: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 16: google.protobuf.Duration } var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 1, // 0: hyprpanel.module.v1.Systray.auto_hide_statuses:type_name -> hyprpanel.module.v1.Systray.Status - 15, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration - 12, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule - 15, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration + 16, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration + 13, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule + 16, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration 0, // 4: hyprpanel.module.v1.Notifications.position:type_name -> hyprpanel.module.v1.Position - 15, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration + 16, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration 0, // 6: hyprpanel.module.v1.Hud.position:type_name -> hyprpanel.module.v1.Position - 8, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio - 9, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power - 2, // 9: hyprpanel.module.v1.Module.pager:type_name -> hyprpanel.module.v1.Pager - 3, // 10: hyprpanel.module.v1.Module.taskbar:type_name -> hyprpanel.module.v1.Taskbar - 4, // 11: hyprpanel.module.v1.Module.systray:type_name -> hyprpanel.module.v1.Systray - 5, // 12: hyprpanel.module.v1.Module.notifications:type_name -> hyprpanel.module.v1.Notifications - 6, // 13: hyprpanel.module.v1.Module.hud:type_name -> hyprpanel.module.v1.Hud - 8, // 14: hyprpanel.module.v1.Module.audio:type_name -> hyprpanel.module.v1.Audio - 9, // 15: hyprpanel.module.v1.Module.power:type_name -> hyprpanel.module.v1.Power - 7, // 16: hyprpanel.module.v1.Module.clock:type_name -> hyprpanel.module.v1.Clock - 10, // 17: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session - 11, // 18: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer - 13, // 19: hyprpanel.module.v1.Module.idle_inhibitor:type_name -> hyprpanel.module.v1.IdleInhibitor - 20, // [20:20] is the sub-list for method output_type - 20, // [20:20] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 9, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio + 10, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power + 2, // 9: hyprpanel.module.v1.IdleInhibitor.default_target:type_name -> hyprpanel.module.v1.IdleInhibitor.DefaultTarget + 3, // 10: hyprpanel.module.v1.Module.pager:type_name -> hyprpanel.module.v1.Pager + 4, // 11: hyprpanel.module.v1.Module.taskbar:type_name -> hyprpanel.module.v1.Taskbar + 5, // 12: hyprpanel.module.v1.Module.systray:type_name -> hyprpanel.module.v1.Systray + 6, // 13: hyprpanel.module.v1.Module.notifications:type_name -> hyprpanel.module.v1.Notifications + 7, // 14: hyprpanel.module.v1.Module.hud:type_name -> hyprpanel.module.v1.Hud + 9, // 15: hyprpanel.module.v1.Module.audio:type_name -> hyprpanel.module.v1.Audio + 10, // 16: hyprpanel.module.v1.Module.power:type_name -> hyprpanel.module.v1.Power + 8, // 17: hyprpanel.module.v1.Module.clock:type_name -> hyprpanel.module.v1.Clock + 11, // 18: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session + 12, // 19: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer + 14, // 20: hyprpanel.module.v1.Module.idle_inhibitor:type_name -> hyprpanel.module.v1.IdleInhibitor + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_hyprpanel_module_v1_module_proto_init() } @@ -1809,7 +1884,7 @@ func file_hyprpanel_module_v1_module_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_module_v1_module_proto_rawDesc, - NumEnums: 2, + NumEnums: 3, NumMessages: 13, NumExtensions: 0, NumServices: 0, diff --git a/proto/hyprpanel/module/v1/module.proto b/proto/hyprpanel/module/v1/module.proto index f258e2d..3a13444 100644 --- a/proto/hyprpanel/module/v1/module.proto +++ b/proto/hyprpanel/module/v1/module.proto @@ -117,8 +117,16 @@ message SystrayModule { } message IdleInhibitor { + enum DefaultTarget { + DEFAULT_TARGET_UNSPECIFIED = 0; + DEFAULT_TARGET_LOCK = 1; + DEFAULT_TARGET_SUSPEND = 2; + DEFAULT_TARGET_SHUTDOWN = 3; + } + uint32 icon_size = 1; // size in pixels for panel icon. bool icon_symbolic = 2; // display symbolic or coloured icon in panel. + DefaultTarget default_target = 3; // default inhibit target for left click action. } message Module { From facf337c062d7128fe1dddb859b8670628568b68 Mon Sep 17 00:00:00 2001 From: saiddis Date: Thu, 1 Jan 2026 19:14:13 +0500 Subject: [PATCH 06/10] fix: state handling & cleanup --- cmd/hyprpanel-client/idle_inhibitor.go | 344 ++++++++++++++++++++----- internal/dbus/fdo.go | 4 + internal/dbus/idle_inhibitor.go | 181 ++++++++++--- 3 files changed, 425 insertions(+), 104 deletions(-) diff --git a/cmd/hyprpanel-client/idle_inhibitor.go b/cmd/hyprpanel-client/idle_inhibitor.go index 0ce0d3e..55e337b 100644 --- a/cmd/hyprpanel-client/idle_inhibitor.go +++ b/cmd/hyprpanel-client/idle_inhibitor.go @@ -1,37 +1,104 @@ package main import ( + "encoding/xml" + "errors" + "github.com/jwijenbergh/puregotk/v4/gdk" + "github.com/jwijenbergh/puregotk/v4/gio" + "github.com/jwijenbergh/puregotk/v4/glib" "github.com/jwijenbergh/puregotk/v4/gtk" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" modulev1 "github.com/pdf/hyprpanel/proto/hyprpanel/module/v1" "github.com/pdf/hyprpanel/style" ) +const ( + inhibitTargetIdleLabel = `Lock` + inhibitTargetSleepLabel = `Suspend` + inhibitTargetShutdownLabel = `Shutdown` + idleInhibitorActionNamespace = `idleinhibitor` +) + type idleInhibitor struct { *refTracker *api cfg *modulev1.IdleInhibitor eventCh chan *eventv1.Event quitCh chan struct{} - active bool - container *gtk.CenterBox - icon *gtk.Image + actions map[eventv1.InhibitTarget]*gio.SimpleAction + active bool + icon *gtk.Image + iconContainer *gtk.CenterBox + container *gtk.Box + menuRefs *refTracker + wrapper *gtk.Overlay + actionGroup *gio.SimpleActionGroup + menu *gtk.PopoverMenu } func (i *idleInhibitor) build(container *gtk.Box) error { - i.container = gtk.NewCenterBox() + i.wrapper = gtk.NewOverlay() + i.AddRef(i.wrapper.Unref) + i.wrapper.SetHalign(gtk.AlignCenterValue) + i.wrapper.SetValign(gtk.AlignCenterValue) + i.wrapper.SetCanFocus(false) + i.wrapper.SetFocusOnClick(false) + + i.container = gtk.NewBox(i.orientation, 0) + i.AddRef(i.container.Unref) i.container.SetName(style.IdleInhibitorID) i.container.AddCssClass(style.ModuleClass) + container.Append(&i.wrapper.Widget) + + icon, err := createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + i.icon = icon + i.iconContainer = gtk.NewCenterBox() + i.AddRef(i.iconContainer.Unref) + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) + i.container.Append(&i.iconContainer.Widget) + i.wrapper.SetChild(&i.container.Widget) + + if err := i.buildMenu(); err != nil { + return err + } + clickCb := func(ctrl gtk.GestureClick, nPress int, x, y float64) { switch ctrl.GetCurrentButton() { case uint(gdk.BUTTON_PRIMARY): - if err := i.host.IdleInhibitorToggle(eventv1.InhibitTarget_INHIBIT_TARGET_IDLE); err != nil { - log.Warn(`Failed toggling idle inhibitor`, `err`, err) - } else if err = i.toggle(); err != nil { - log.Warn(`Failed updating idle inhibitor`, `err`, err) + defaultTarget := eventv1.InhibitTarget_INHIBIT_TARGET_IDLE + if v := i.cfg.DefaultTarget; v > 1 { + defaultTarget = eventv1.InhibitTarget(v) + } + if !i.active { + if err := i.host.IdleInhibitorInhibit(defaultTarget); err != nil { + log.Warn(`error uninhibiting target`, defaultTarget, err) + } + return + } + for t, a := range i.actions { + if a.GetState().GetBoolean() { + if err := i.host.IdleInhibitorUninhibit(t); err != nil { + log.Warn(`error uninhibiting target`, t, err) + } + } + } + case uint(gdk.BUTTON_SECONDARY): + if i.menu != nil { + i.menu.SetPointingTo(nil) + i.menu.Popup() } } } @@ -40,25 +107,11 @@ func (i *idleInhibitor) build(container *gtk.Box) error { unrefCallback(&clickCb) }) clickController := gtk.NewGestureClick() - clickController.SetButton(1) + i.AddRef(clickController.Unref) + clickController.SetButton(0) clickController.ConnectReleased(&clickCb) i.container.AddController(&clickController.EventController) - container.Append(&i.container.Widget) - - icon, err := createIcon( - `inhibit`, - int(i.cfg.IconSize), - i.cfg.IconSymbolic, - nil, - ) - if err != nil { - return err - } - i.icon = icon - i.container.SetCenterWidget(&i.icon.Widget) - i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) - go i.watch() return nil @@ -70,28 +123,12 @@ func (i *idleInhibitor) events() chan<- *eventv1.Event { func (i *idleInhibitor) close(container *gtk.Box) { defer i.Unref() - log.Info(`Closing module on request`, `module`, style.IdleInhibitorID) container.Remove(&i.container.Widget) if i.icon != nil { i.icon.Unref() } } -func newIdleInhibitor(cfg *modulev1.IdleInhibitor, a *api) *idleInhibitor { - i := &idleInhibitor{ - cfg: cfg, - refTracker: newRefTracker(), - api: a, - eventCh: make(chan *eventv1.Event), - quitCh: make(chan struct{}), - } - i.AddRef(func() { - close(i.quitCh) - close(i.eventCh) - }) - return i -} - func (i *idleInhibitor) watch() { for { select { @@ -101,50 +138,227 @@ func (i *idleInhibitor) watch() { select { case <-i.quitCh: return - case <-i.eventCh: + case evt := <-i.eventCh: + switch evt.Kind { + case eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT, eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT: + data := &eventv1.IdleInhibitorValue{} + if !evt.Data.MessageIs(data) { + log.Warn(`Invalid event`, `module`, style.AudioID, `evt`, evt) + continue + } + if err := evt.Data.UnmarshalTo(data); err != nil { + log.Warn(`Invalid event`, `module`, style.AudioID, `err`, err, `evt`, evt) + continue + } + var cb glib.SourceFunc + cb = func(uintptr) bool { + defer unrefCallback(&cb) + if evt.Kind == eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT { + if err := i.inhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) + } + } else { + if err := i.uninhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) + } + } + return false + } + glib.IdleAdd(&cb, 0) + } } } } } -func (i *idleInhibitor) toggle() error { +func (i *idleInhibitor) inhibit(target eventv1.InhibitTarget) error { if i.icon != nil { old := i.icon defer old.Unref() i.icon = nil } - var ( - icon *gtk.Image - err error + icon, err := createIcon( + `inhibit-active`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, ) + if err != nil { + return err + } + i.container.SetTooltipMarkup(`Idle inhibitor is active`) + i.icon = icon + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.actions[target].SetState(glib.NewVariantBoolean(true)) + i.active = true + return nil +} + +func (i *idleInhibitor) uninhibit(target eventv1.InhibitTarget) error { + toggleIcon := true + for t, a := range i.actions { + active := a.GetState().GetBoolean() + if t == target && active { + a.SetState(glib.NewVariantBoolean(false)) + } else if active { + toggleIcon = false + } + } - if i.active { - icon, err = createIcon( - `inhibit`, - int(i.cfg.IconSize), - i.cfg.IconSymbolic, - nil, - ) - i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) - i.active = false - } else { - icon, err = createIcon( - `inhibit-active`, - int(i.cfg.IconSize), - i.cfg.IconSymbolic, - nil, - ) - i.container.SetTooltipMarkup(`Idle inhibitor is active`) - i.active = true + if !toggleIcon { + return nil } + if i.icon != nil { + old := i.icon + defer old.Unref() + i.icon = nil + } + icon, err := createIcon( + `inhibit`, + int(i.cfg.IconSize), + i.cfg.IconSymbolic, + nil, + ) if err != nil { return err } - + i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) i.icon = icon - i.container.SetCenterWidget(&i.icon.Widget) + i.iconContainer.SetCenterWidget(&i.icon.Widget) + i.actions[target].SetState(glib.NewVariantBoolean(false)) + i.active = false + return nil +} + +func (i *idleInhibitor) buildMenu() error { + i.actionGroup = gio.NewSimpleActionGroup() + i.AddRef(i.actionGroup.Unref) + id, menuXML, err := i.buildMenuXML() + if err != nil { + return err + } + + builder := gtk.NewBuilderFromString(string(menuXML), len(menuXML)) + defer builder.Unref() + menuObj := builder.GetObject(id) + if menuObj == nil { + return errors.New(`menu object not found`) + } + defer menuObj.Unref() + if menuObj != nil { + menuModel := &gio.MenuModel{} + menuObj.Cast(menuModel) + i.menu = gtk.NewPopoverMenuFromModel(menuModel) + i.AddRef(i.menu.Unref) + switch i.panelCfg.Edge { + case configv1.Edge_EDGE_TOP: + i.menu.SetPosition(gtk.PosBottomValue) + case configv1.Edge_EDGE_RIGHT: + i.menu.SetPosition(gtk.PosLeftValue) + case configv1.Edge_EDGE_BOTTOM: + i.menu.SetPosition(gtk.PosTopValue) + case configv1.Edge_EDGE_LEFT: + i.menu.SetPosition(gtk.PosRightValue) + } + } + + i.menu.SetHasArrow(true) + i.menu.SetAutohide(true) + i.menu.SetParent(&i.container.Widget) + i.container.InsertActionGroup(idleInhibitorActionNamespace, i.actionGroup) + return nil } + +func (i *idleInhibitor) buildMenuXML() (string, []byte, error) { + x := menuXMLInterface{ + Menu: &menuXMLMenu{ + ID: `idle-inhibitor-menu`, + }, + } + section := new(menuXMLMenuSection) + targets := []struct { + value eventv1.InhibitTarget + label string + }{ + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_IDLE, + label: `Lock`, + }, + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP, + label: `Suspend`, + }, + { + value: eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN, + label: `Shutdown`, + }, + } + for _, t := range targets { + section.Items = append(section.Items, &menuXMLItem{ + Attributes: []*menuXMLAttribute{ + { + Name: `label`, + Value: t.label, + }, + { + Name: `action`, + Value: idleInhibitorActionNamespace + `.` + t.label, + }, + }, + }) + cb := func(a gio.SimpleAction, param uintptr) { + enabled := a.GetState().GetBoolean() + if enabled { + if err := i.host.IdleInhibitorUninhibit(t.value); err != nil { + log.Warn(`Failed toggling idle inhibitor`, `target`, t, `err`, err) + return + } + } else { + if err := i.host.IdleInhibitorInhibit(t.value); err != nil { + log.Warn(`Failed toggling idle inhibitor`, `target`, t, `err`, err) + return + } + } + } + act := gio.NewSimpleActionStateful(t.label, nil, glib.NewVariantBoolean(false)) + act.ConnectActivate(&cb) + i.actionGroup.AddAction(act) + i.actions[t.value] = act + i.menuRefs.AddRef(func() { + unrefCallback(&cb) + }) + } + + x.Menu.Sections = append(x.Menu.Sections, section) + + if len(x.Menu.Sections) == 0 { + return ``, nil, errors.New(`empty menu`) + } + + b, err := xml.Marshal(x) + return x.Menu.ID, b, err +} + +func newIdleInhibitor(cfg *modulev1.IdleInhibitor, a *api) *idleInhibitor { + i := &idleInhibitor{ + cfg: cfg, + refTracker: newRefTracker(), + api: a, + eventCh: make(chan *eventv1.Event), + quitCh: make(chan struct{}), + menuRefs: newRefTracker(), + actions: make(map[eventv1.InhibitTarget]*gio.SimpleAction), + } + i.AddRef(func() { + close(i.quitCh) + close(i.eventCh) + if i.menuRefs != nil { + i.menuRefs.Unref() + } + }) + return i +} diff --git a/internal/dbus/fdo.go b/internal/dbus/fdo.go index b99f78a..fb65dfa 100644 --- a/internal/dbus/fdo.go +++ b/internal/dbus/fdo.go @@ -51,6 +51,10 @@ const ( fdoUPowerDevicePropertyEnergy = `Energy` fdoUPowerDevicePropertyEnergyEmpty = `EnergyEmpty` fdoUPowerDevicePropertyEnergyFull = `EnergyFull` + + fdoIdleInhibitorPropertyShutdown = `shutdown` + fdoIdleInhibitorPropertySleep = `sleep` + fdoIdleInhibitorPropertyIdle = `idle` ) func systemdUnitToObjectPath(unitName string) (dbus.ObjectPath, error) { diff --git a/internal/dbus/idle_inhibitor.go b/internal/dbus/idle_inhibitor.go index 48f925d..bf2618b 100644 --- a/internal/dbus/idle_inhibitor.go +++ b/internal/dbus/idle_inhibitor.go @@ -1,12 +1,16 @@ package dbus import ( + "fmt" + "strings" + "sync" "syscall" "github.com/godbus/dbus/v5" "github.com/hashicorp/go-hclog" configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + "google.golang.org/protobuf/types/known/anypb" ) type idleInhibitor struct { @@ -14,7 +18,8 @@ type idleInhibitor struct { log hclog.Logger cfg *configv1.Config_DBUS_IdleInhibitor - fd dbus.UnixFD + mu sync.RWMutex + targets map[eventv1.InhibitTarget]dbus.UnixFD eventCh chan *eventv1.Event signals chan *dbus.Signal readyCh chan struct{} @@ -27,38 +32,19 @@ func (i *idleInhibitor) init() error { return nil } -func (i idleInhibitor) IsActive() bool { - if i.fd == 0 { - return false - } - return true -} - -func (i *idleInhibitor) String() string { - switch eventv1.InhibitTarget(i.fd) { - case eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: - return `idle` - case eventv1.InhibitTarget_INHIBIT_TARGET_SUSPEND: - return `suspend` - case eventv1.InhibitTarget_INHIBIT_TARGET_LOGOUT: - return `logout` - } - return `inactive` -} - func (i *idleInhibitor) Inhibit(target eventv1.InhibitTarget) error { var what string switch target { - case eventv1.InhibitTarget_INHIBIT_TARGET_LOGOUT: - what = `shutdown` - case eventv1.InhibitTarget_INHIBIT_TARGET_SUSPEND: - what = `sleep` + case eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN: + what = fdoIdleInhibitorPropertyShutdown + case eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP: + what = fdoIdleInhibitorPropertySleep case eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: - what = `idle` + what = fdoIdleInhibitorPropertyIdle default: - i.log.Warn(`Invalid inhibit target`, `target`, target) - return nil + return fmt.Errorf(`invalid inhibit target: %v`, target) } + var fd dbus.UnixFD obj := i.conn.Object(fdoLogindName, fdoLogindPath) if err := obj.Call( fdoLogindManagerMethodInhibit, @@ -67,21 +53,28 @@ func (i *idleInhibitor) Inhibit(target eventv1.InhibitTarget) error { `hyprpanel`, `user request`, `block`, - ).Store(&i.fd); err != nil { + ).Store(&fd); err != nil { return err } + i.mu.Lock() + defer i.mu.Unlock() + i.targets[target] = fd return nil - } -func (i *idleInhibitor) Uninhibit() error { - if i.fd == 0 { +func (i *idleInhibitor) Uninhibit(t eventv1.InhibitTarget) error { + i.mu.Lock() + defer i.mu.Unlock() + if i.targets[t] == 0 { + return nil + } else if fd, ok := i.targets[t]; ok { + if err := syscall.Close(int(fd)); err != nil { + return err + } + i.targets[t] = 0 return nil - } else if err := syscall.Close(int(i.fd)); err != nil { - return err } - i.fd = 0 - return nil + return fmt.Errorf(`could not find file descriptior for target: %d`, t) } func (i *idleInhibitor) watch() { @@ -97,16 +90,93 @@ func (i *idleInhibitor) watch() { i.readyCh = nil continue case <-i.quitCh: - if i.fd != 0 { - if err := i.Uninhibit(); err != nil { - i.log.Error(`Failed uninhibit`, `err`, err) + return + case sig, ok := <-i.signals: + if !ok { + return + } + switch sig.Name { + case fdoPropertiesSignalPropertiesChanged: + kind, ok := sig.Body[0].(string) + if !ok { + i.log.Warn(`Failed asserting DBUS PropertiesChanged body kind`, `kind`, sig.Body[0]) + continue + } + if kind != fdoLogindManagerName { + continue + } + + properties, ok := sig.Body[1].(map[string]dbus.Variant) + if !ok { + i.log.Warn(`Failed asserting DBUS PropertiesChanged body properties`, `properties`, sig.Body[1]) + continue + } + if len(properties) == 0 { + continue + } + pathVar, ok := properties[`BlockInhibited`] + if !ok { + continue + } + var targets string + if err := pathVar.Store(&targets); err != nil { + i.log.Warn(`Failed parsing SysFSPath`, `pathVar`, pathVar, `err`, err) + continue + } + + if err := i.updateTargets(targets); err != nil { + i.log.Warn(`error updating targets: %v`, err) } } - return } } } +func (i *idleInhibitor) updateTargets(raw string) error { + active := map[eventv1.InhibitTarget]bool{} + for _, part := range strings.Split(raw, ":") { + switch part { + case fdoIdleInhibitorPropertyShutdown: + active[eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN] = true + case fdoIdleInhibitorPropertySleep: + active[eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP] = true + case fdoIdleInhibitorPropertyIdle: + active[eventv1.InhibitTarget_INHIBIT_TARGET_IDLE] = true + } + } + + i.mu.RLock() + defer i.mu.RUnlock() + for t := range i.targets { + if active[t] { + i.eventCh <- i.mustEvent(t, true) + } else { + i.eventCh <- i.mustEvent(t, false) + } + } + + return nil +} + +func (i *idleInhibitor) mustEvent(t eventv1.InhibitTarget, enable bool) *eventv1.Event { + v := &eventv1.IdleInhibitorValue{ + Target: t, + } + data, err := anypb.New(v) + if err != nil { + i.log.Error(`error creating event`, err) + return nil + } + kind := eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT + if enable { + kind = eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT + } + return &eventv1.Event{ + Kind: kind, + Data: data, + } +} + func newIdleInhibitor(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv1.Event, cfg *configv1.Config_DBUS_IdleInhibitor) (*idleInhibitor, error) { i := &idleInhibitor{ conn: conn, @@ -116,6 +186,19 @@ func newIdleInhibitor(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv signals: make(chan *dbus.Signal), readyCh: make(chan struct{}), quitCh: make(chan struct{}), + mu: sync.RWMutex{}, + targets: map[eventv1.InhibitTarget]dbus.UnixFD{ + eventv1.InhibitTarget_INHIBIT_TARGET_IDLE: 0, + eventv1.InhibitTarget_INHIBIT_TARGET_SLEEP: 0, + eventv1.InhibitTarget_INHIBIT_TARGET_SHUTDOWN: 0, + }, + } + + if err := i.conn.AddMatchSignal( + dbus.WithMatchInterface(fdoPropertiesName), + dbus.WithMatchObjectPath(fdoLogindPath), + ); err != nil { + return nil, err } i.conn.Signal(i.signals) @@ -124,3 +207,23 @@ func newIdleInhibitor(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv } return i, nil } + +func (i *idleInhibitor) close() error { + select { + case <-i.quitCh: + default: + } + close(i.quitCh) + + i.mu.Lock() + defer i.mu.Unlock() + + for t, fd := range i.targets { + if fd != 0 { + _ = syscall.Close(int(fd)) + i.targets[t] = 0 + } + } + + return nil +} From 8df5d2d0d02b115f670729a9defa1bcbcb91adc5 Mon Sep 17 00:00:00 2001 From: saiddis Date: Thu, 1 Jan 2026 19:14:56 +0500 Subject: [PATCH 07/10] fix: snake to camel case --- style/style.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/style/style.go b/style/style.go index d69f722..7e314be 100644 --- a/style/style.go +++ b/style/style.go @@ -42,7 +42,7 @@ const ( // HudOverlayID element identifier. HudOverlayID = `hudOverlay` // IdleID element identifier. - IdleInhibitorID = `idle_inhibitor` + IdleInhibitorID = `idleInhibitor` // ModuleClass class name. ModuleClass = `module` From e6ea6387c6b8aa6c48aec680b5ab6b78c67c2439 Mon Sep 17 00:00:00 2001 From: saiddis Date: Sat, 21 Feb 2026 22:24:06 +0500 Subject: [PATCH 08/10] fix: cleanup --- internal/dbus/idle_inhibitor.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/dbus/idle_inhibitor.go b/internal/dbus/idle_inhibitor.go index bf2618b..a63f54e 100644 --- a/internal/dbus/idle_inhibitor.go +++ b/internal/dbus/idle_inhibitor.go @@ -28,7 +28,7 @@ type idleInhibitor struct { func (i *idleInhibitor) init() error { go i.watch() - i.readyCh <- struct{}{} + close(i.readyCh) return nil } @@ -86,7 +86,6 @@ func (i *idleInhibitor) watch() { for { select { case <-i.readyCh: - close(i.readyCh) i.readyCh = nil continue case <-i.quitCh: @@ -225,5 +224,7 @@ func (i *idleInhibitor) close() error { } } - return nil + i.conn.RemoveSignal(i.signals) + + return i.conn.Close() } From 9d9f915604a834926ac532d24771f2e90dd9a98a Mon Sep 17 00:00:00 2001 From: saiddis Date: Sun, 22 Feb 2026 12:41:02 +0500 Subject: [PATCH 09/10] fix: remove wrapper --- cmd/hyprpanel-client/idle_inhibitor.go | 69 ++++++++++++-------------- 1 file changed, 31 insertions(+), 38 deletions(-) diff --git a/cmd/hyprpanel-client/idle_inhibitor.go b/cmd/hyprpanel-client/idle_inhibitor.go index 55e337b..1139c48 100644 --- a/cmd/hyprpanel-client/idle_inhibitor.go +++ b/cmd/hyprpanel-client/idle_inhibitor.go @@ -34,26 +34,17 @@ type idleInhibitor struct { iconContainer *gtk.CenterBox container *gtk.Box menuRefs *refTracker - wrapper *gtk.Overlay actionGroup *gio.SimpleActionGroup menu *gtk.PopoverMenu } func (i *idleInhibitor) build(container *gtk.Box) error { - i.wrapper = gtk.NewOverlay() - i.AddRef(i.wrapper.Unref) - i.wrapper.SetHalign(gtk.AlignCenterValue) - i.wrapper.SetValign(gtk.AlignCenterValue) - i.wrapper.SetCanFocus(false) - i.wrapper.SetFocusOnClick(false) i.container = gtk.NewBox(i.orientation, 0) i.AddRef(i.container.Unref) i.container.SetName(style.IdleInhibitorID) i.container.AddCssClass(style.ModuleClass) - container.Append(&i.wrapper.Widget) - icon, err := createIcon( `inhibit`, int(i.cfg.IconSize), @@ -69,7 +60,6 @@ func (i *idleInhibitor) build(container *gtk.Box) error { i.iconContainer.SetCenterWidget(&i.icon.Widget) i.container.SetTooltipMarkup(`Idle inhibitor is inactive`) i.container.Append(&i.iconContainer.Widget) - i.wrapper.SetChild(&i.container.Widget) if err := i.buildMenu(); err != nil { return err @@ -106,12 +96,15 @@ func (i *idleInhibitor) build(container *gtk.Box) error { i.AddRef(func() { unrefCallback(&clickCb) }) + clickController := gtk.NewGestureClick() i.AddRef(clickController.Unref) clickController.SetButton(0) clickController.ConnectReleased(&clickCb) i.container.AddController(&clickController.EventController) + container.Append(&i.container.Widget) + go i.watch() return nil @@ -135,37 +128,37 @@ func (i *idleInhibitor) watch() { case <-i.quitCh: return default: - select { - case <-i.quitCh: - return - case evt := <-i.eventCh: - switch evt.Kind { - case eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT, eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT: - data := &eventv1.IdleInhibitorValue{} - if !evt.Data.MessageIs(data) { - log.Warn(`Invalid event`, `module`, style.AudioID, `evt`, evt) - continue - } - if err := evt.Data.UnmarshalTo(data); err != nil { - log.Warn(`Invalid event`, `module`, style.AudioID, `err`, err, `evt`, evt) - continue - } - var cb glib.SourceFunc - cb = func(uintptr) bool { - defer unrefCallback(&cb) - if evt.Kind == eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT { - if err := i.inhibit(data.Target); err != nil { - log.Warn(`Failed to toggle idle inhibitor`, `err`, err) - } - } else { - if err := i.uninhibit(data.Target); err != nil { - log.Warn(`Failed to toggle idle inhibitor`, `err`, err) - } + } + select { + case <-i.quitCh: + return + case evt := <-i.eventCh: + switch evt.Kind { + case eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT, eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT: + data := &eventv1.IdleInhibitorValue{} + if !evt.Data.MessageIs(data) { + log.Warn(`Invalid event`, `module`, style.AudioID, `evt`, evt) + continue + } + if err := evt.Data.UnmarshalTo(data); err != nil { + log.Warn(`Invalid event`, `module`, style.AudioID, `err`, err, `evt`, evt) + continue + } + var cb glib.SourceFunc + cb = func(uintptr) bool { + defer unrefCallback(&cb) + if evt.Kind == eventv1.EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT { + if err := i.inhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) + } + } else { + if err := i.uninhibit(data.Target); err != nil { + log.Warn(`Failed to toggle idle inhibitor`, `err`, err) } - return false } - glib.IdleAdd(&cb, 0) + return false } + glib.IdleAdd(&cb, 0) } } } From 929a0e9edd1f32c7ed7e839e8fc06af60b633259 Mon Sep 17 00:00:00 2001 From: saiddis Date: Sun, 22 Feb 2026 14:59:10 +0500 Subject: [PATCH 10/10] feat: add mpris media player --- cmd/hyprpanel-client/media_player.go | 350 +++++ cmd/hyprpanel-client/panel.go | 4 + cmd/hyprpanel/host.go | 67 +- config/default.json | 423 +++--- internal/dbus/dbus.go | 27 + internal/dbus/fdo.go | 23 +- internal/dbus/media_player.go | 476 +++++++ internal/panelplugin/grpc.go | 127 ++ internal/panelplugin/interface.go | 8 + proto/doc/hyprpanel/config/v1/doc.md | 17 + proto/doc/hyprpanel/event/v1/doc.md | 45 + proto/doc/hyprpanel/module/v1/doc.md | 18 + proto/doc/hyprpanel/v1/doc.md | 63 + proto/hyprpanel/config/v1/config.pb.go | 265 ++-- proto/hyprpanel/config/v1/config.proto | 5 + proto/hyprpanel/event/v1/event.pb.go | 1715 +++++++++++++---------- proto/hyprpanel/event/v1/event.proto | 26 + proto/hyprpanel/module/v1/module.pb.go | 262 ++-- proto/hyprpanel/module/v1/module.proto | 6 + proto/hyprpanel/v1/hyprpanel.pb.go | 778 +++++++--- proto/hyprpanel/v1/hyprpanel.proto | 21 + proto/hyprpanel/v1/hyprpanel_grpc.pb.go | 296 ++++ style/default.css | 200 +-- style/style.go | 8 + 24 files changed, 3808 insertions(+), 1422 deletions(-) create mode 100644 cmd/hyprpanel-client/media_player.go create mode 100644 internal/dbus/media_player.go diff --git a/cmd/hyprpanel-client/media_player.go b/cmd/hyprpanel-client/media_player.go new file mode 100644 index 0000000..ec08b39 --- /dev/null +++ b/cmd/hyprpanel-client/media_player.go @@ -0,0 +1,350 @@ +package main + +import ( + "github.com/jwijenbergh/puregotk/v4/gdk" + "github.com/jwijenbergh/puregotk/v4/gio" + "github.com/jwijenbergh/puregotk/v4/gtk" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + modulev1 "github.com/pdf/hyprpanel/proto/hyprpanel/module/v1" + "github.com/pdf/hyprpanel/style" +) + +const mediaPlayerActionNamespace = `mediaplayer` + +type mediaPlayer struct { + *refTracker + *api + cfg *modulev1.MediaPlayer + eventCh chan *eventv1.Event + quitCh chan struct{} + + titleLabel *gtk.Label + artistLabel *gtk.Label + playButton *gtk.Button + prevButton *gtk.Button + nextButton *gtk.Button + icon *gtk.Image + iconContainer *gtk.CenterBox + container *gtk.Box + menuRefs *refTracker + actionGroup *gio.SimpleActionGroup + popover *gtk.Popover +} + +func (m *mediaPlayer) build(container *gtk.Box) error { + m.container = gtk.NewBox(m.orientation, 0) + m.AddRef(m.container.Unref) + m.container.SetName(style.MediaPlayerID) + m.container.AddCssClass(style.ModuleClass) + + icon, err := createIcon( + `media-audio`, + int(m.cfg.IconSize), + m.cfg.IconSymbolic, + nil, + ) + if err != nil { + return err + } + m.icon = icon + m.iconContainer = gtk.NewCenterBox() + m.AddRef(m.iconContainer.Unref) + m.iconContainer.SetCenterWidget(&icon.Widget) + + m.container.Append(&m.iconContainer.Widget) + + m.initActions() + + if err := m.buildMenu(); err != nil { + return err + } + + m.container.InsertActionGroup(mediaPlayerActionNamespace, m.actionGroup) + + clickCb := func(ctrl gtk.GestureClick, nPress int, x, y float64) { + switch ctrl.GetCurrentButton() { + case uint(gdk.BUTTON_PRIMARY): + if err := m.host.MediaPlayerPlayPause(); err != nil { + log.Warn(`Media player play/pause failed`, `err`, err) + } + case uint(gdk.BUTTON_SECONDARY): + if m.popover != nil { + m.popover.SetPointingTo(nil) + m.popover.Popup() + } + case uint(gdk.BUTTON_MIDDLE): + if err := m.host.MediaPlayerStop(); err != nil { + log.Warn(`Media player stop failed`, `err`, err) + } + } + } + + m.AddRef(func() { + unrefCallback(&clickCb) + }) + clickController := gtk.NewGestureClick() + m.AddRef(clickController.Unref) + clickController.SetButton(0) + clickController.ConnectReleased(&clickCb) + m.container.AddController(&clickController.EventController) + + scrollCb := func(_ gtk.EventControllerScroll, dx, dy float64) bool { + if err := m.host.MediaPlayerSeek(int64(dy - dy*2)); err != nil { + log.Warn(`Media player seek failed`, `err`, err) + } + return true + } + + m.AddRef(func() { + unrefCallback(&scrollCb) + }) + + scrollController := gtk.NewEventControllerScroll(gtk.EventControllerScrollDiscreteValue | gtk.EventControllerScrollVerticalValue) + scrollController.ConnectScroll(&scrollCb) + m.container.AddController(&scrollController.EventController) + m.AddRef(scrollController.Unref) + + container.Append(&m.container.Widget) + + go m.watch() + + return nil +} + +func (m *mediaPlayer) watch() { + for { + select { + case <-m.quitCh: + return + default: + } + select { + case <-m.quitCh: + return + case evt := <-m.eventCh: + switch evt.Kind { + case eventv1.EventKind_EVENT_KIND_MEDIA_PLAYER_CHANGE: + log.Info(`Media player change`, evt.Kind) + data := &eventv1.MediaPlayerValueChange{} + if !evt.Data.MessageIs(data) { + log.Warn(`Invalid event`, `module`, style.AudioID, `evt`, evt) + continue + } + if err := evt.Data.UnmarshalTo(data); err != nil { + log.Warn(`Invalid event`, `module`, style.AudioID, `err`, err, `evt`, evt) + continue + } + m.update(data) + } + } + } +} + +func (m *mediaPlayer) update(e *eventv1.MediaPlayerValueChange) { + log.Info(`Media player state`, e.State) + switch e.State { + case eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_UNSPECIFIED: + m.setDefaultState(e) + + case eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_PLAYING: + m.setPlayingState(e) + + case eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_PAUSED: + m.setPausedState(e) + + case eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_STOPPED: + m.setDefaultState(e) + } +} + +func (m *mediaPlayer) setDefaultState(e *eventv1.MediaPlayerValueChange) { + m.container.SetTooltipMarkup(`Nothing playing`) + + m.titleLabel.SetLabel(`Nothing playing`) + m.artistLabel.SetLabel(``) + + m.prevButton.SetSensitive(false) + m.playButton.SetSensitive(false) + m.nextButton.SetSensitive(false) + + m.playButton.SetIconName(`media-playback-start-symbolic`) + + m.icon.SetFromIconName(`media-audio-symbolic`) +} + +func (m *mediaPlayer) setPlayingState(e *eventv1.MediaPlayerValueChange) { + title := valueOr(e.Title, `Unknown title`) + artist := valueOr(e.Artist, ``) + + m.titleLabel.SetLabel(title) + m.artistLabel.SetLabel(artist) + + m.container.SetTooltipMarkup(title) + + m.prevButton.SetSensitive(e.CanGoPrevious) + m.nextButton.SetSensitive(e.CanGoNext) + m.playButton.SetSensitive(true) + + m.playButton.SetIconName(`media-playback-pause-symbolic`) + m.icon.SetFromIconName(`mediaplayer-app-symbolic`) +} + +func (m *mediaPlayer) setPausedState(e *eventv1.MediaPlayerValueChange) { + title := valueOr(e.Title, `Unknown title`) + artist := valueOr(e.Artist, ``) + + m.titleLabel.SetLabel(title) + m.artistLabel.SetLabel(artist) + + m.container.SetTooltipMarkup(`Paused: ` + title) + + m.prevButton.SetSensitive(e.CanGoPrevious) + m.nextButton.SetSensitive(e.CanGoNext) + m.playButton.SetSensitive(true) + + m.playButton.SetIconName(`media-playback-start-symbolic`) + + m.icon.SetFromIconName(`media-playback-pause-symbolic`) +} + +func (m *mediaPlayer) buildMenu() error { + popover := gtk.NewPopover() + m.AddRef(popover.Unref) + + popover.SetAutohide(true) + popover.SetHasArrow(true) + popover.SetParent(&m.container.Widget) + + switch m.panelCfg.Edge { + case configv1.Edge_EDGE_TOP: + popover.SetPosition(gtk.PosBottomValue) + case configv1.Edge_EDGE_RIGHT: + popover.SetPosition(gtk.PosLeftValue) + case configv1.Edge_EDGE_BOTTOM: + popover.SetPosition(gtk.PosTopValue) + case configv1.Edge_EDGE_LEFT: + popover.SetPosition(gtk.PosRightValue) + } + + root := gtk.NewBox(gtk.OrientationVerticalValue, 12) + root.SetMarginTop(16) + root.SetMarginBottom(16) + root.SetMarginStart(16) + root.SetMarginEnd(16) + + title := gtk.NewLabel(`Nothing playing`) + title.AddCssClass(style.MediaPlayerTitleClass) + + artist := gtk.NewLabel(``) + artist.AddCssClass(style.MediaPlayerArtistClass) + + controls := gtk.NewBox(gtk.OrientationHorizontalValue, 12) + controls.SetHalign(gtk.AlignCenterValue) + + prev := gtk.NewButtonFromIconName(`media-skip-backward-symbolic`) + play := gtk.NewButtonFromIconName(`media-playback-start-symbolic`) + next := gtk.NewButtonFromIconName(`media-skip-forward-symbolic`) + + play.SetActionName(mediaPlayerActionNamespace + `.play-pause`) + play.AddCssClass(style.MediaPlayerButtonClass) + play.SetSensitive(false) + + prev.SetActionName(mediaPlayerActionNamespace + `.previous`) + prev.SetSensitive(false) + + next.SetActionName(mediaPlayerActionNamespace + `.next`) + next.SetSensitive(false) + + controls.Append(&prev.Widget) + controls.Append(&play.Widget) + controls.Append(&next.Widget) + + root.Append(&title.Widget) + root.Append(&artist.Widget) + root.Append(&controls.Widget) + + popover.SetChild(&root.Widget) + m.container.Append(&popover.Widget) + m.titleLabel = title + m.artistLabel = artist + m.playButton = play + m.prevButton = prev + m.nextButton = next + m.popover = popover + + return nil +} + +func (m *mediaPlayer) initActions() { + m.actionGroup = gio.NewSimpleActionGroup() + m.AddRef(m.actionGroup.Unref) + + actions := []string{ + `previous`, + `play-pause`, + `next`, + } + + for _, name := range actions { + act := gio.NewSimpleAction(name, nil) + + cb := func(a gio.SimpleAction, _ uintptr) { + switch a.GetName() { + case `previous`: + if err := m.host.MediaPlayerPrevious(); err != nil { + log.Error(`Media player previous failed`, `err`, err) + } + case `play-pause`: + if err := m.host.MediaPlayerPlayPause(); err != nil { + log.Error(`Media player play/pause failed`, `err`, err) + } + case `next`: + if err := m.host.MediaPlayerNext(); err != nil { + log.Error(`Media player next failed`, `err`, err) + } + } + } + + act.ConnectActivate(&cb) + m.actionGroup.AddAction(act) + } +} + +func (m *mediaPlayer) events() chan<- *eventv1.Event { + return m.eventCh +} + +func newMediaPlayer(cfg *modulev1.MediaPlayer, a *api) *mediaPlayer { + m := &mediaPlayer{ + cfg: cfg, + refTracker: newRefTracker(), + api: a, + eventCh: make(chan *eventv1.Event), + quitCh: make(chan struct{}), + menuRefs: newRefTracker(), + } + m.AddRef(func() { + close(m.quitCh) + close(m.eventCh) + if m.menuRefs != nil { + m.menuRefs.Unref() + } + }) + return m +} + +func (m *mediaPlayer) close(container *gtk.Box) { + defer m.Unref() + container.Remove(&m.container.Widget) + if m.icon != nil { + m.icon.Unref() + } +} + +func valueOr(v *string, fallback string) string { + if v == nil || *v == `` { + return fallback + } + return *v +} diff --git a/cmd/hyprpanel-client/panel.go b/cmd/hyprpanel-client/panel.go index 3d92629..2ac1b3e 100644 --- a/cmd/hyprpanel-client/panel.go +++ b/cmd/hyprpanel-client/panel.go @@ -218,6 +218,10 @@ func (p *panel) build() error { for _, modCfg := range p.panelCfg.Modules { modCfg := modCfg switch modCfg.Kind.(type) { + case *modulev1.Module_MediaPlayer: + cfg := modCfg.GetMediaPlayer() + mod := newMediaPlayer(cfg, p.api) + p.modules = append(p.modules, mod) case *modulev1.Module_IdleInhibitor: cfg := modCfg.GetIdleInhibitor() mod := newIdleInhibitor(cfg, p.api) diff --git a/cmd/hyprpanel/host.go b/cmd/hyprpanel/host.go index cb7f46b..6769527 100644 --- a/cmd/hyprpanel/host.go +++ b/cmd/hyprpanel/host.go @@ -189,8 +189,71 @@ func (h *host) IdleInhibitorUninhibit(target eventv1.InhibitTarget) error { return errDisabled } - h.dbus.IdleInhibitor().Uninhibit(target) - return nil + return h.dbus.IdleInhibitor().Uninhibit(target) +} + +func (h *host) MediaPlayerPlayPause() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().PlayPause() +} + +func (h *host) MediaPlayerPause() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Pause() +} + +func (h *host) MediaPlayerPlay() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Play() +} + +func (h *host) MediaPlayerStop() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Stop() +} + +func (h *host) MediaPlayerNext() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Next() +} + +func (h *host) MediaPlayerPrevious() error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Previous() +} + +func (h *host) MediaPlayerSeek(offset int64) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().Seek(offset) +} + +func (h *host) MediaPlayerSetPosition(trackId string, pos int64) error { + if h.cfg.Dbus == nil || !h.cfg.Dbus.Enabled || h.cfg.Dbus.MediaPlayer == nil || !h.cfg.Dbus.MediaPlayer.Enabled { + return errDisabled + } + + return h.dbus.MediaPlayer().SetPostion(trackId, pos) } func (h *host) CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) { diff --git a/config/default.json b/config/default.json index 49c3aa9..1dac96b 100644 --- a/config/default.json +++ b/config/default.json @@ -1,211 +1,216 @@ { - "log_level": "LOG_LEVEL_INFO", - "dbus": { - "enabled": true, - "connect_timeout": "20s", - "connect_interval": "0.200s", - "notifications": { - "enabled": true - }, - "systray": { - "enabled": true - }, - "shortcuts": { - "enabled": true - }, - "brightness": { - "enabled": true, - "adjust_step_percent": 5, - "min_brightness": 1, - "enable_logind": true, - "hud_notifications": true - }, - "power": { - "enabled": true, - "low_percent": 10, - "critical_percent": 5, - "low_command": "", - "critical_command": "", - "hud_notifications": true - }, - "idle_inhibitor": { - "enabled": true - } - }, - "audio": { - "enabled": true, - "volume_step_percent": 5, - "volume_exceed_maximum": false, - "hud_notifications": true - }, - "icon_overrides": [], - "launch_wrapper": ["sh", "-c"], - "panels": [ - { - "id": "panel0", - "edge": "EDGE_RIGHT", - "size": 64, - "monitor": "", - "modules": [ - { - "pager": { - "icon_size": 12, - "active_monitor_only": false, - "scroll_wrap_workspaces": true, - "scroll_include_inactive": true, - "enable_workspace_names": false, - "pinned": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "ignore_windows": [], - "preview_width": 256, - "follow_window_on_move": false - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "taskbar": { - "icon_size": 48, - "active_workspace_only": true, - "active_monitor_only": true, - "group_tasks": true, - "hide_indicators": false, - "expand": true, - "max_size": 0, - "pinned": [], - "preview_width": 256 - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "systray": { - "icon_size": 22, - "menu_icon_size": 22, - "auto_hide_statuses": [ - "STATUS_UNSPECIFIED", - "STATUS_PASSIVE", - "STATUS_ACTIVE" - ], - "auto_hide_delay": "4s", - "pinned": [ - "nm-applet", - "chrome_status_icon_1" - ], - "modules": [ - { - "power": { - "icon_size": 22, - "icon_symbolic": true - } - } - ] - } - }, - { - "notifications": { - "icon_size": 24, - "notification_icon_size": 48, - "default_timeout": "7s", - "position": "POSITION_TOP_RIGHT", - "margin": 24, - "persistent": [] - } - }, - { - "hud": { - "notification_icon_size": 64, - "timeout": "2s", - "position": "POSITION_BOTTOM", - "margin": 256 - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "idle_inhibitor": { - "icon_size": 24, - "icon_symbolic": true, - "default_target": 1 - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "audio": { - "icon_size": 32, - "icon_symbolic": true, - "command_mixer": "pavucontrol", - "enable_source": true - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "clock": { - "time_format": "15:04", - "date_format": "2006-01-02", - "tooltip_time_format": "15:04", - "tooltip_date_format": "Mon, 02 Jan 2006 MST", - "additional_regions": [ - "America/Los_Angeles", - "America/Chicago", - "America/New_York", - "Europe/London" - ] - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - }, - { - "session": { - "icon_size": 48, - "icon_symbolic": true, - "overlay_icon_size": 96, - "overlay_icon_symbolic": true, - "command_logout": "loginctl terminate-session $XDG_SESSION_ID", - "command_reboot": "systemctl reboot", - "command_suspend": "systemctl suspend", - "command_shutdown": "systemctl poweroff" - } - }, - { - "spacer": { - "size": 16, - "expand": false - } - } - ] - } - ] + "log_level": "LOG_LEVEL_INFO", + "dbus": { + "enabled": true, + "connect_timeout": "20s", + "connect_interval": "0.200s", + "notifications": { + "enabled": true + }, + "systray": { + "enabled": true + }, + "shortcuts": { + "enabled": true + }, + "brightness": { + "enabled": true, + "adjust_step_percent": 5, + "min_brightness": 1, + "enable_logind": true, + "hud_notifications": true + }, + "power": { + "enabled": true, + "low_percent": 10, + "critical_percent": 5, + "low_command": "", + "critical_command": "", + "hud_notifications": true + }, + "idle_inhibitor": { + "enabled": true + }, + "media_player": { + "enabled": true + } + }, + "audio": { + "enabled": true, + "volume_step_percent": 5, + "volume_exceed_maximum": false, + "hud_notifications": true + }, + "icon_overrides": [], + "launch_wrapper": ["sh", "-c"], + "panels": [ + { + "id": "panel0", + "edge": "EDGE_RIGHT", + "size": 64, + "monitor": "", + "modules": [ + { + "pager": { + "icon_size": 12, + "active_monitor_only": false, + "scroll_wrap_workspaces": true, + "scroll_include_inactive": true, + "enable_workspace_names": false, + "pinned": [1, 2, 3, 4, 5, 6], + "ignore_windows": [], + "preview_width": 256, + "follow_window_on_move": false + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "taskbar": { + "icon_size": 48, + "active_workspace_only": true, + "active_monitor_only": true, + "group_tasks": true, + "hide_indicators": false, + "expand": true, + "max_size": 0, + "pinned": [], + "preview_width": 256 + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "systray": { + "icon_size": 22, + "menu_icon_size": 22, + "auto_hide_statuses": [ + "STATUS_UNSPECIFIED", + "STATUS_PASSIVE", + "STATUS_ACTIVE" + ], + "auto_hide_delay": "4s", + "pinned": ["nm-applet", "chrome_status_icon_1"], + "modules": [ + { + "power": { + "icon_size": 22, + "icon_symbolic": true + } + } + ] + } + }, + { + "notifications": { + "icon_size": 24, + "notification_icon_size": 48, + "default_timeout": "7s", + "position": "POSITION_TOP_RIGHT", + "margin": 24, + "persistent": [] + } + }, + { + "hud": { + "notification_icon_size": 64, + "timeout": "2s", + "position": "POSITION_BOTTOM", + "margin": 256 + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "idle_inhibitor": { + "icon_size": 24, + "icon_symbolic": true, + "default_target": 1 + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "audio": { + "icon_size": 32, + "icon_symbolic": true, + "command_mixer": "pavucontrol", + "enable_source": true + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "media_player": { + "icon_size": 24, + "icon_symbolic": true + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "clock": { + "time_format": "15:04", + "date_format": "2006-01-02", + "tooltip_time_format": "15:04", + "tooltip_date_format": "Mon, 02 Jan 2006 MST", + "additional_regions": [ + "America/Los_Angeles", + "America/Chicago", + "America/New_York", + "Europe/London" + ] + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + }, + { + "session": { + "icon_size": 48, + "icon_symbolic": true, + "overlay_icon_size": 96, + "overlay_icon_symbolic": true, + "command_logout": "loginctl terminate-session $XDG_SESSION_ID", + "command_reboot": "systemctl reboot", + "command_suspend": "systemctl suspend", + "command_shutdown": "systemctl poweroff" + } + }, + { + "spacer": { + "size": 16, + "expand": false + } + } + ] + } + ] } diff --git a/internal/dbus/dbus.go b/internal/dbus/dbus.go index 1243323..0f2c931 100644 --- a/internal/dbus/dbus.go +++ b/internal/dbus/dbus.go @@ -49,6 +49,17 @@ type IdleInhibitor interface { Uninhibit(target eventv1.InhibitTarget) error } +type MediaPlayer interface { + PlayPause() error + Play() error + Pause() error + Stop() error + Next() error + Previous() error + Seek(offset int64) error + SetPostion(trackId string, pos int64) error +} + // Client for DBUS. type Client struct { cfg *configv1.Config_DBUS @@ -63,6 +74,7 @@ type Client struct { brightness *brightness power *power idleInhibitor *idleInhibitor + mediaPlayer *mediaPlayer } // Systray API. @@ -85,6 +97,10 @@ func (c *Client) IdleInhibitor() IdleInhibitor { return c.idleInhibitor } +func (c *Client) MediaPlayer() MediaPlayer { + return c.mediaPlayer +} + // Events channel will deliver events from DBUS. func (c *Client) Events() <-chan *eventv1.Event { return c.eventCh @@ -103,6 +119,11 @@ func (c *Client) Close() error { c.log.Warn(`Failed closing IdleInhibitor session`, `err`, err) } } + if c.mediaPlayer != nil { + if err := c.mediaPlayer.close(); err != nil { + c.log.Warn(`Failed closing MediaPlayer session`, `err`, err) + } + } if c.notifications != nil { if err := c.notifications.close(); err != nil { c.log.Warn(`Failed closing Notifications session`, `err`, err) @@ -178,6 +199,12 @@ func New(cfg *configv1.Config_DBUS, logger hclog.Logger) (*Client, <-chan *event } } + if cfg.MediaPlayer.Enabled { + if c.mediaPlayer, err = newMediaPlayer(sessionConn, logger, c.eventCh, cfg.MediaPlayer); err != nil { + return nil, nil, err + } + } + if err := c.init(); err != nil { return nil, nil, err } diff --git a/internal/dbus/fdo.go b/internal/dbus/fdo.go index fb65dfa..9b9fa17 100644 --- a/internal/dbus/fdo.go +++ b/internal/dbus/fdo.go @@ -10,7 +10,8 @@ import ( const ( fdoName = `org.freedesktop.DBus` fdoPath = dbus.ObjectPath(`/org/freedesktop/DBus`) - fdoSignalNameOwnerChanged = fdoName + `.NameOwnerChanged` + fdoMemberNameOwnerChanged = `NameOwnerChanged` + fdoSignalNameOwnerChanged = fdoName + `.` + fdoMemberNameOwnerChanged fdoIntrospectableName = fdoName + `.Introspectable` fdoPropertiesName = fdoName + `.Properties` @@ -36,6 +37,26 @@ const ( fdoUPowerPath = `/org/freedesktop/UPower` fdoUPowerMethodGetDisplayDevice = fdoUPowerName + `.GetDisplayDevice` + fdoMediaPlayerPath = `/org/mpris/MediaPlayer2` + fdoMediaPlayerName = `org.mpris.MediaPlayer2` + fdoPlayerName = fdoMediaPlayerName + ".Player" + + fdoPlayerMethodPlayPause = fdoPlayerName + `.PlayPause` + fdoPlayerMethodPlay = fdoPlayerName + `.Play` + fdoPlayerMethodPause = fdoPlayerName + `.Pause` + fdoPlayerMethodNext = fdoPlayerName + `.Next` + fdoPlayerMethodPrevious = fdoPlayerName + `.Previous` + fdoPlayerMethodStop = fdoPlayerName + `.Stop` + fdoPlayerMethodSeek = fdoPlayerName + `.Seek` + fdoPlayerMethodSetPosition = fdoPlayerName + `.SetPosition` + + fdoPlayerPropertyPlaybackStatus = `PlaybackStatus` + fdoPlayerPropertyCanGoNext = `CanGoNext` + fdoPlayerPropertyCanGoPrevious = `CanGoPrevious` + fdoPlayerPropertyIdentity = `Identity` + fdoPlayerPropertyDesktopEntry = `DesktopEntry` + fdoPlayerPropertyMetadata = `Metadata` + fdoUPowerDeviceName = fdoUPowerName + `.Device` fdoUPowerDevicePropertyVendor = `Vendor` fdoUPowerDevicePropertyModel = `Model` diff --git a/internal/dbus/media_player.go b/internal/dbus/media_player.go new file mode 100644 index 0000000..d8f82a7 --- /dev/null +++ b/internal/dbus/media_player.go @@ -0,0 +1,476 @@ +package dbus + +import ( + "strings" + "sync" + "time" + + "github.com/godbus/dbus/v5" + "github.com/hashicorp/go-hclog" + configv1 "github.com/pdf/hyprpanel/proto/hyprpanel/config/v1" + eventv1 "github.com/pdf/hyprpanel/proto/hyprpanel/event/v1" + "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + playbackPlaying = `Playing` + playbackPaused = `Paused` +) + +type mediaPlayer struct { + cfg *configv1.Config_DBUS_MediaPlayer + log hclog.Logger + + conn *dbus.Conn + players map[string]*player + signals chan *dbus.Signal + + mu sync.RWMutex + + eventCh chan *eventv1.Event + readyCh chan struct{} + quitCh chan struct{} +} + +type player struct { + metadata metadata + identity string + desktopEntry string + playback string + canGoNext bool + canGoPrevious bool + updatedAt time.Time + + // indicates that the next signal of a player should be skipped + skipNextSignal bool +} + +func (p player) isPlaying() bool { + return p.playback == playbackPlaying +} + +func (p player) eventState() eventv1.MediaPlayerState { + switch p.playback { + case playbackPlaying: + return eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_PLAYING + case playbackPaused: + return eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_PAUSED + } + return eventv1.MediaPlayerState_MEDIA_PLAYER_STATE_UNSPECIFIED +} + +type metadata struct { + title string + artist string + album string + artUrl string + url string + trackId dbus.ObjectPath + length int64 +} + +func (m *mediaPlayer) PlayPause() error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodPlayPause) +} + +func (m *mediaPlayer) Pause() error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodPause) +} + +func (m *mediaPlayer) Next() error { + _, sender, ok := m.latestPlayerCopy() + + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodNext) +} + +func (m *mediaPlayer) Previous() error { + _, sender, ok := m.latestPlayerCopy() + + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodPrevious) +} + +func (m *mediaPlayer) Play() error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodPlay) +} + +func (m *mediaPlayer) Stop() error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodStop) +} + +func (m *mediaPlayer) Seek(offset int64) error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodSeek, offset) +} + +func (m *mediaPlayer) SetPostion(trackId string, pos int64) error { + _, sender, ok := m.latestPlayerCopy() + if !ok { + return nil + } + return m.callMediaPlayer(sender, fdoPlayerMethodSetPosition, trackId, pos) +} + +func (m *mediaPlayer) watch() { + select { + case <-m.quitCh: + return + default: + } + for { + select { + case <-m.readyCh: + m.readyCh = nil + continue + case <-m.quitCh: + return + case sig, ok := <-m.signals: + if !ok { + m.log.Warn(`signal channel closed`) + return + } + var p player + switch sig.Name { + case fdoPropertiesSignalPropertiesChanged: + p, ok = m.handlePropertiesChanged(sig) + case fdoSignalNameOwnerChanged: + p, ok = m.handleNameOwnerChanged(sig) + default: + continue + } + if ok { + m.eventCh <- m.mustEvent(p) + } + } + } +} + +func (m *mediaPlayer) handleNameOwnerChanged(sig *dbus.Signal) (player, bool) { + name := sig.Body[0].(string) + oldOwner := sig.Body[1].(string) + newOwner := sig.Body[2].(string) + + if !strings.Contains(name, `MediaPlayer2`) { + return player{}, false + } + + if newOwner == `` { + m.mu.Lock() + delete(m.players, oldOwner) + m.mu.Unlock() + + p, _, ok := m.latestPlayerCopy() + return p, ok + } + + if oldOwner == `` { + + newPlayer := &player{playback: playbackPlaying} + + defer func() { + m.mu.Lock() + m.players[newOwner] = newPlayer + m.mu.Unlock() + }() + + var props map[string]dbus.Variant + + err := m.conn.Object(name, fdoMediaPlayerPath). + Call(fdoPropertiesMethodGetAll, 0, fdoMediaPlayerName). + Store(&props) + + if err != nil { + m.log.Warn(`failed fetching initial state`, `player`, name, `err`, err) + return player{}, false + } + + latestPlayer, _, ok := m.latestPlayerCopy() + + m.mu.Lock() + defer m.mu.Unlock() + + m.mustApplyPlayerProperties(newPlayer, props) + + // check if new player overlaps with the last one + if ok && latestPlayer.isPlaying() && newPlayer.isPlaying() { + m.pauseOthersLocked(newOwner) + } + + return *newPlayer, true + } + + return player{}, false +} + +func (m *mediaPlayer) handlePropertiesChanged(sig *dbus.Signal) (player, bool) { + changed := sig.Body[1].(map[string]dbus.Variant) + if _, ok := changed[`Rate`]; ok { + p, _, ok := m.latestPlayerCopy() + return p, ok + } + + sender := sig.Sender + + m.mu.RLock() + p, ok := m.players[sender] + m.mu.RUnlock() + if !ok { + p = &player{playback: playbackPlaying} + defer func() { + m.mu.Lock() + m.players[sender] = p + m.mu.Unlock() + }() + } else if p.skipNextSignal { + p.skipNextSignal = false + return player{}, false + } + + latestPlayer, latestSender, ok := m.latestPlayerCopy() + + m.mu.Lock() + defer m.mu.Unlock() + + m.mustApplyPlayerProperties(p, changed) + + // check if two different players overlap + if ok && latestSender != sender && latestPlayer.isPlaying() && p.isPlaying() { + m.pauseOthersLocked(sender) + } + + return *p, true +} + +func (m *mediaPlayer) pauseOthersLocked(current string) { + for sender, other := range m.players { + if sender != current && other.isPlaying() { + + // manually set "Paused" playback state and skip the + // next signal to keep ui in sync + other.playback = playbackPaused + other.skipNextSignal = true + + // force the overlapping player to stop + go m.callMediaPlayer(sender, fdoPlayerMethodPause) + } + } +} + +func (m *mediaPlayer) callMediaPlayer(sender, method string, args ...interface{}) error { + return m.conn.Object(sender, fdoMediaPlayerPath).Call(method, 0, args...).Err +} + +func (m *mediaPlayer) mustApplyPlayerProperties(p *player, props map[string]dbus.Variant) { + + defer func() { + p.updatedAt = time.Now() + }() + + for k, v := range props { + switch k { + case fdoPlayerPropertyPlaybackStatus: + p.playback = v.Value().(string) + case fdoPlayerPropertyCanGoNext: + p.canGoNext = v.Value().(bool) + case fdoPlayerPropertyCanGoPrevious: + p.canGoPrevious = v.Value().(bool) + case fdoPlayerPropertyIdentity: + p.identity = v.Value().(string) + case fdoPlayerPropertyDesktopEntry: + p.desktopEntry = v.Value().(string) + case fdoPlayerPropertyMetadata: + m.mustParseMetadata(p, v.Value().(map[string]dbus.Variant)) + } + } +} + +func (m *mediaPlayer) mustParseMetadata(p *player, md map[string]dbus.Variant) { + for k, v := range md { + switch k { + case `xesam:title`: + p.metadata.title = v.Value().(string) + case `xesam:artist`: + arr := v.Value().([]string) + if len(arr) > 0 { + p.metadata.artist = arr[0] + } + case `xesam:album`: + p.metadata.album = v.Value().(string) + case `xesam:url`: + p.metadata.url = v.Value().(string) + case `mpris:length`: + p.metadata.length = v.Value().(int64) + case `mpris:artUrl`: + p.metadata.artUrl = v.Value().(string) + case `mpris:trackid`: + trackId := v.Value().(dbus.ObjectPath) + p.metadata.trackId = trackId + } + + } +} + +func (m *mediaPlayer) mustEvent(p player) *eventv1.Event { + event := &eventv1.MediaPlayerValueChange{ + State: p.eventState(), + TrackId: string(p.metadata.trackId), + CanGoNext: p.canGoNext, + CanGoPrevious: p.canGoPrevious, + UpdatedAt: timestamppb.New(p.updatedAt), + } + + if v := p.metadata.title; v != `` { + event.Title = &v + } + + if v := p.metadata.artist; v != `` { + event.Artist = &v + } + + if v := p.metadata.album; v != `` { + event.Album = &v + } + + if v := p.desktopEntry; v != `` { + event.DesktopEntry = &v + } + + if v := p.identity; v != `` { + event.Identity = &v + } + + if v := p.metadata.length; v != 0 { + event.LengthUs = &v + } + + if v := p.metadata.artUrl; v != "" { + event.ArtUrl = &v + } + + if v := p.metadata.url; v != "" { + event.Url = &v + } + + data, err := anypb.New(event) + if err != nil { + m.log.Error(`error creating event`, err) + return &eventv1.Event{} + } + return &eventv1.Event{ + Kind: eventv1.EventKind_EVENT_KIND_MEDIA_PLAYER_CHANGE, + Data: data, + } + +} +func (m *mediaPlayer) latestPlayerCopy() (player, string, bool) { + m.mu.RLock() + defer m.mu.RUnlock() + + var ( + playingPlayer, recentPlayer *player + playingSender, recentSender string + ) + + for sender, p := range m.players { + + if p.isPlaying() { + if playingPlayer == nil || p.updatedAt.After(playingPlayer.updatedAt) { + playingPlayer = p + playingSender = sender + } + } + + if recentPlayer == nil || p.updatedAt.After(recentPlayer.updatedAt) { + recentPlayer = p + recentSender = sender + } + } + + if playingSender != `` { + return *playingPlayer, playingSender, true + } + + if recentSender != `` { + return *recentPlayer, recentSender, true + } + + return player{}, ``, false +} + +func newMediaPlayer(conn *dbus.Conn, logger hclog.Logger, eventCh chan *eventv1.Event, cfg *configv1.Config_DBUS_MediaPlayer) (*mediaPlayer, error) { + m := &mediaPlayer{ + conn: conn, + cfg: cfg, + log: logger, + eventCh: eventCh, + signals: make(chan *dbus.Signal, 10), + readyCh: make(chan struct{}), + quitCh: make(chan struct{}), + players: make(map[string]*player), + mu: sync.RWMutex{}, + } + + err := m.conn.AddMatchSignal( + dbus.WithMatchInterface(fdoPropertiesName), + dbus.WithMatchMember(fdoPropertiesMemberPropertiesChanged), + dbus.WithMatchObjectPath(fdoMediaPlayerPath), + ) + if err != nil { + return nil, err + } + + err = conn.AddMatchSignal( + dbus.WithMatchInterface(fdoName), + dbus.WithMatchMember(fdoMemberNameOwnerChanged), + ) + if err != nil { + return nil, err + } + + m.conn.Signal(m.signals) + + return m, m.init() +} + +func (m *mediaPlayer) init() error { + go m.watch() + close(m.readyCh) + return nil +} + +func (m *mediaPlayer) close() error { + select { + case <-m.quitCh: + default: + } + close(m.quitCh) + + m.conn.RemoveSignal(m.signals) + + return m.conn.Close() +} diff --git a/internal/panelplugin/grpc.go b/internal/panelplugin/grpc.go index 9dc3074..676d992 100644 --- a/internal/panelplugin/grpc.go +++ b/internal/panelplugin/grpc.go @@ -126,6 +126,69 @@ func (c *HostGRPCClient) IdleInhibitorUninhibit(target eventv1.InhibitTarget) er return nil } +func (c *HostGRPCClient) MediaPlayerPlayPause() error { + if _, err := c.client.MediaPlayerPlayPause(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerPlay() error { + if _, err := c.client.MediaPlayerPlay(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerPause() error { + if _, err := c.client.MediaPlayerPause(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerStop() error { + if _, err := c.client.MediaPlayerStop(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerNext() error { + if _, err := c.client.MediaPlayerNext(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerPrevious() error { + if _, err := c.client.MediaPlayerPrevious(context.Background(), &hyprpanelv1.HostServiceMediaPlayerRequest{}); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerSeek(offset int64) error { + if _, err := c.client.MediaPlayerSeek(context.Background(), + &hyprpanelv1.HostServiceMediaPlayerSeekRequest{ + OffsetUs: offset, + }); err != nil { + return err + } + return nil +} + +func (c *HostGRPCClient) MediaPlayerSetPosition(trackId string, pos int64) error { + if _, err := c.client.MediaPlayerSetPosition(context.Background(), + &hyprpanelv1.HostServiceMediaPlayerSetPostionRequest{ + TrackId: trackId, + PositionUs: pos, + }); err != nil { + return err + } + return nil +} + // Exec implmenetation. func (c *HostGRPCClient) Exec(action *hyprpanelv1.AppInfo_Action) error { _, err := c.client.Exec(context.Background(), &hyprpanelv1.HostServiceExecRequest{ @@ -303,6 +366,70 @@ func (s *HostGRPCServer) IdleInhibitorUninhibit(ctx context.Context, req *hyprpa return &hyprpanelv1.HostServiceIdleInhibitorResponse{}, nil } +func (s *HostGRPCServer) MediaPlayerPlayPause(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerPlayPause() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerPlay(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerPlay() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerPause(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerPause() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerNext(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerNext() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerPrevious(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerPrevious() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerStop(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerStop() + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerSeek(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerSeekRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerSeek(req.OffsetUs) + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + +func (s *HostGRPCServer) MediaPlayerSetPosition(ctx context.Context, req *hyprpanelv1.HostServiceMediaPlayerSetPostionRequest) (*hyprpanelv1.HostServiceMediaPlayerResponse, error) { + err := s.Impl.MediaPlayerSetPosition(req.TrackId, req.PositionUs) + if err != nil { + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, err + } + return &hyprpanelv1.HostServiceMediaPlayerResponse{}, nil +} + // Exec implementation. func (s *HostGRPCServer) Exec(_ context.Context, req *hyprpanelv1.HostServiceExecRequest) (*hyprpanelv1.HostServiceExecResponse, error) { err := s.Impl.Exec(req.Action) diff --git a/internal/panelplugin/interface.go b/internal/panelplugin/interface.go index f1b9c69..510f5e8 100644 --- a/internal/panelplugin/interface.go +++ b/internal/panelplugin/interface.go @@ -51,6 +51,14 @@ type Host interface { CaptureFrame(address uint64, width, height int32) (*hyprpanelv1.ImageNRGBA, error) IdleInhibitorInhibit(target eventv1.InhibitTarget) error IdleInhibitorUninhibit(target eventv1.InhibitTarget) error + MediaPlayerPlayPause() error + MediaPlayerPlay() error + MediaPlayerPause() error + MediaPlayerStop() error + MediaPlayerNext() error + MediaPlayerPrevious() error + MediaPlayerSeek(offset int64) error + MediaPlayerSetPosition(trackId string, pos int64) error } // Panel interface. diff --git a/proto/doc/hyprpanel/config/v1/doc.md b/proto/doc/hyprpanel/config/v1/doc.md index 227e2e5..c7afba8 100644 --- a/proto/doc/hyprpanel/config/v1/doc.md +++ b/proto/doc/hyprpanel/config/v1/doc.md @@ -9,6 +9,7 @@ - [Config.DBUS](#hyprpanel-config-v1-Config-DBUS) - [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) - [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) + - [Config.DBUS.MediaPlayer](#hyprpanel-config-v1-Config-DBUS-MediaPlayer) - [Config.DBUS.Notifications](#hyprpanel-config-v1-Config-DBUS-Notifications) - [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) - [Config.DBUS.Shortcuts](#hyprpanel-config-v1-Config-DBUS-Shortcuts) @@ -86,6 +87,7 @@ | brightness | [Config.DBUS.Brightness](#hyprpanel-config-v1-Config-DBUS-Brightness) | | brightness configuration. | | power | [Config.DBUS.Power](#hyprpanel-config-v1-Config-DBUS-Power) | | power configuration. | | idle_inhibitor | [Config.DBUS.IdleInhibitor](#hyprpanel-config-v1-Config-DBUS-IdleInhibitor) | | idle inhibitor configuration. | +| media_player | [Config.DBUS.MediaPlayer](#hyprpanel-config-v1-Config-DBUS-MediaPlayer) | | media player configuration. | @@ -126,6 +128,21 @@ + + +### Config.DBUS.MediaPlayer + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| enabled | [bool](#bool) | | toggles the MediaPlayer functionality, required for "media_player" module. | + + + + + + ### Config.DBUS.Notifications diff --git a/proto/doc/hyprpanel/event/v1/doc.md b/proto/doc/hyprpanel/event/v1/doc.md index 14969c9..7340442 100644 --- a/proto/doc/hyprpanel/event/v1/doc.md +++ b/proto/doc/hyprpanel/event/v1/doc.md @@ -25,6 +25,7 @@ - [HyprRenameWorkspaceValue](#hyprpanel-event-v1-HyprRenameWorkspaceValue) - [HyprWorkspaceV2Value](#hyprpanel-event-v1-HyprWorkspaceV2Value) - [IdleInhibitorValue](#hyprpanel-event-v1-IdleInhibitorValue) + - [MediaPlayerValueChange](#hyprpanel-event-v1-MediaPlayerValueChange) - [NotificationValue](#hyprpanel-event-v1-NotificationValue) - [NotificationValue.Action](#hyprpanel-event-v1-NotificationValue-Action) - [NotificationValue.Hint](#hyprpanel-event-v1-NotificationValue-Hint) @@ -45,6 +46,7 @@ - [Direction](#hyprpanel-event-v1-Direction) - [EventKind](#hyprpanel-event-v1-EventKind) - [InhibitTarget](#hyprpanel-event-v1-InhibitTarget) + - [MediaPlayerState](#hyprpanel-event-v1-MediaPlayerState) - [PowerState](#hyprpanel-event-v1-PowerState) - [PowerType](#hyprpanel-event-v1-PowerType) @@ -413,6 +415,34 @@ + + +### MediaPlayerValueChange + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| state | [MediaPlayerState](#hyprpanel-event-v1-MediaPlayerState) | | | +| can_go_next | [bool](#bool) | | | +| can_go_previous | [bool](#bool) | | | +| track_id | [string](#string) | | | +| updated_at | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | | +| position_us | [int64](#int64) | optional | | +| length_us | [int64](#int64) | optional | | +| title | [string](#string) | optional | | +| artist | [string](#string) | optional | | +| album | [string](#string) | optional | | +| desktop_entry | [string](#string) | optional | | +| identity | [string](#string) | optional | | +| art_url | [string](#string) | optional | | +| url | [string](#string) | optional | | + + + + + + ### NotificationValue @@ -796,6 +826,7 @@ | EVENT_KIND_EXEC | 59 | | | EVENT_KIND_IDLE_INHIBITOR_INHIBIT | 60 | | | EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT | 61 | | +| EVENT_KIND_MEDIA_PLAYER_CHANGE | 62 | | @@ -813,6 +844,20 @@ + + +### MediaPlayerState + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| MEDIA_PLAYER_STATE_UNSPECIFIED | 0 | | +| MEDIA_PLAYER_STATE_PLAYING | 1 | | +| MEDIA_PLAYER_STATE_PAUSED | 2 | | +| MEDIA_PLAYER_STATE_STOPPED | 3 | | + + + ### PowerState diff --git a/proto/doc/hyprpanel/module/v1/doc.md b/proto/doc/hyprpanel/module/v1/doc.md index af926bb..19758bd 100644 --- a/proto/doc/hyprpanel/module/v1/doc.md +++ b/proto/doc/hyprpanel/module/v1/doc.md @@ -8,6 +8,7 @@ - [Clock](#hyprpanel-module-v1-Clock) - [Hud](#hyprpanel-module-v1-Hud) - [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) + - [MediaPlayer](#hyprpanel-module-v1-MediaPlayer) - [Module](#hyprpanel-module-v1-Module) - [Notifications](#hyprpanel-module-v1-Notifications) - [Pager](#hyprpanel-module-v1-Pager) @@ -105,6 +106,22 @@ + + +### MediaPlayer + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| icon_size | [uint32](#uint32) | | | +| icon_symbolic | [bool](#bool) | | | + + + + + + ### Module @@ -124,6 +141,7 @@ | session | [Session](#hyprpanel-module-v1-Session) | | | | spacer | [Spacer](#hyprpanel-module-v1-Spacer) | | | | idle_inhibitor | [IdleInhibitor](#hyprpanel-module-v1-IdleInhibitor) | | | +| media_player | [MediaPlayer](#hyprpanel-module-v1-MediaPlayer) | | | diff --git a/proto/doc/hyprpanel/v1/doc.md b/proto/doc/hyprpanel/v1/doc.md index 62a0315..65edef5 100644 --- a/proto/doc/hyprpanel/v1/doc.md +++ b/proto/doc/hyprpanel/v1/doc.md @@ -24,6 +24,10 @@ - [HostServiceFindApplicationResponse](#hyprpanel-v1-HostServiceFindApplicationResponse) - [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) - [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) + - [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) + - [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) + - [HostServiceMediaPlayerSeekRequest](#hyprpanel-v1-HostServiceMediaPlayerSeekRequest) + - [HostServiceMediaPlayerSetPostionRequest](#hyprpanel-v1-HostServiceMediaPlayerSetPostionRequest) - [HostServiceNotificationActionRequest](#hyprpanel-v1-HostServiceNotificationActionRequest) - [HostServiceNotificationActionResponse](#hyprpanel-v1-HostServiceNotificationActionResponse) - [HostServiceNotificationClosedRequest](#hyprpanel-v1-HostServiceNotificationClosedRequest) @@ -350,6 +354,57 @@ + + +### HostServiceMediaPlayerRequest + + + + + + + + + +### HostServiceMediaPlayerResponse + + + + + + + + + +### HostServiceMediaPlayerSeekRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| offset_us | [int64](#int64) | | | + + + + + + + + +### HostServiceMediaPlayerSetPostionRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| track_id | [string](#string) | | | +| position_us | [int64](#int64) | | | + + + + + + ### HostServiceNotificationActionRequest @@ -753,6 +808,14 @@ | CaptureFrame | [HostServiceCaptureFrameRequest](#hyprpanel-v1-HostServiceCaptureFrameRequest) | [HostServiceCaptureFrameResponse](#hyprpanel-v1-HostServiceCaptureFrameResponse) | | | IdleInhibitorInhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | | IdleInhibitorUninhibit | [HostServiceIdleInhibitorRequest](#hyprpanel-v1-HostServiceIdleInhibitorRequest) | [HostServiceIdleInhibitorResponse](#hyprpanel-v1-HostServiceIdleInhibitorResponse) | | +| MediaPlayerPlayPause | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerPlay | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerPause | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerStop | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerNext | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerPrevious | [HostServiceMediaPlayerRequest](#hyprpanel-v1-HostServiceMediaPlayerRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerSeek | [HostServiceMediaPlayerSeekRequest](#hyprpanel-v1-HostServiceMediaPlayerSeekRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | +| MediaPlayerSetPosition | [HostServiceMediaPlayerSetPostionRequest](#hyprpanel-v1-HostServiceMediaPlayerSetPostionRequest) | [HostServiceMediaPlayerResponse](#hyprpanel-v1-HostServiceMediaPlayerResponse) | | diff --git a/proto/hyprpanel/config/v1/config.pb.go b/proto/hyprpanel/config/v1/config.pb.go index 8917869..29f7d1c 100644 --- a/proto/hyprpanel/config/v1/config.pb.go +++ b/proto/hyprpanel/config/v1/config.pb.go @@ -383,6 +383,7 @@ type Config_DBUS struct { Brightness *Config_DBUS_Brightness `protobuf:"bytes,7,opt,name=brightness,proto3" json:"brightness,omitempty"` // brightness configuration. Power *Config_DBUS_Power `protobuf:"bytes,8,opt,name=power,proto3" json:"power,omitempty"` // power configuration. IdleInhibitor *Config_DBUS_IdleInhibitor `protobuf:"bytes,9,opt,name=idle_inhibitor,json=idleInhibitor,proto3" json:"idle_inhibitor,omitempty"` // idle inhibitor configuration. + MediaPlayer *Config_DBUS_MediaPlayer `protobuf:"bytes,10,opt,name=media_player,json=mediaPlayer,proto3" json:"media_player,omitempty"` // media player configuration. } func (x *Config_DBUS) Reset() { @@ -480,6 +481,13 @@ func (x *Config_DBUS) GetIdleInhibitor() *Config_DBUS_IdleInhibitor { return nil } +func (x *Config_DBUS) GetMediaPlayer() *Config_DBUS_MediaPlayer { + if x != nil { + return x.MediaPlayer + } + return nil +} + type Config_Audio struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -905,6 +913,53 @@ func (x *Config_DBUS_IdleInhibitor) GetEnabled() bool { return false } +type Config_DBUS_MediaPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` // toggles the MediaPlayer functionality, required for "media_player" module. +} + +func (x *Config_DBUS_MediaPlayer) Reset() { + *x = Config_DBUS_MediaPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Config_DBUS_MediaPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Config_DBUS_MediaPlayer) ProtoMessage() {} + +func (x *Config_DBUS_MediaPlayer) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_config_v1_config_proto_msgTypes[11] + 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 Config_DBUS_MediaPlayer.ProtoReflect.Descriptor instead. +func (*Config_DBUS_MediaPlayer) Descriptor() ([]byte, []int) { + return file_hyprpanel_config_v1_config_proto_rawDescGZIP(), []int{2, 0, 6} +} + +func (x *Config_DBUS_MediaPlayer) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + var File_hyprpanel_config_v1_config_proto protoreflect.FileDescriptor var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ @@ -930,8 +985,8 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0xa0, - 0x0e, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x9a, + 0x0f, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x6c, 0x6f, 0x67, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x08, 0x6c, 0x6f, 0x67, @@ -956,7 +1011,7 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x52, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x6c, - 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xcd, 0x09, 0x0a, + 0x61, 0x75, 0x6e, 0x63, 0x68, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x1a, 0xc7, 0x0a, 0x0a, 0x04, 0x44, 0x42, 0x55, 0x53, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, @@ -995,86 +1050,94 @@ var file_hyprpanel_config_v1_config_proto_rawDesc = []byte{ 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x42, 0x55, 0x53, 0x2e, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, - 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x1a, - 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, 0x79, - 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, - 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, 0x68, - 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x64, - 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, - 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, - 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, - 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, 0x5f, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, - 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x69, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x1a, 0x29, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a, - 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, + 0x4f, 0x0a, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x44, 0x42, 0x55, 0x53, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x1a, 0x29, 0x0a, 0x0d, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x23, 0x0a, 0x07, 0x53, + 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x1a, 0x25, 0x0a, 0x09, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x63, 0x75, 0x74, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xcf, 0x01, 0x0a, 0x0a, 0x42, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, - 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, - 0x12, 0x32, 0x0a, 0x15, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, - 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, - 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2a, 0x5a, 0x0a, 0x04, 0x45, 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, - 0x0b, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, - 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, - 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, - 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, - 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, - 0x4f, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, - 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, - 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, - 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, - 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, - 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x2e, 0x0a, 0x13, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, + 0x64, 0x6a, 0x75, 0x73, 0x74, 0x53, 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x42, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, + 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xe6, 0x01, 0x0a, 0x05, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x6c, 0x6f, 0x77, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x29, + 0x0a, 0x10, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, + 0x61, 0x6c, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x77, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, + 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x43, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x1a, 0x29, 0x0a, 0x0d, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x27, 0x0a, + 0x0b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0xb2, 0x01, 0x0a, 0x05, 0x41, 0x75, 0x64, 0x69, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, + 0x74, 0x65, 0x70, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x69, + 0x6d, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x4d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x2b, + 0x0a, 0x11, 0x68, 0x75, 0x64, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x75, 0x64, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x5a, 0x0a, 0x04, 0x45, + 0x64, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x44, 0x47, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x44, 0x47, + 0x45, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x44, 0x47, 0x45, 0x5f, + 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x44, 0x47, 0x45, 0x5f, + 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x45, 0x44, 0x47, 0x45, + 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x04, 0x2a, 0x9f, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, + 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, + 0x43, 0x45, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, + 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, + 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, 0x03, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, + 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, + 0x56, 0x45, 0x4c, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, + 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x48, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1090,7 +1153,7 @@ func file_hyprpanel_config_v1_config_proto_rawDescGZIP() []byte { } var file_hyprpanel_config_v1_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_hyprpanel_config_v1_config_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (Edge)(0), // 0: hyprpanel.config.v1.Edge (LogLevel)(0), // 1: hyprpanel.config.v1.LogLevel @@ -1105,30 +1168,32 @@ var file_hyprpanel_config_v1_config_proto_goTypes = []interface{}{ (*Config_DBUS_Brightness)(nil), // 10: hyprpanel.config.v1.Config.DBUS.Brightness (*Config_DBUS_Power)(nil), // 11: hyprpanel.config.v1.Config.DBUS.Power (*Config_DBUS_IdleInhibitor)(nil), // 12: hyprpanel.config.v1.Config.DBUS.IdleInhibitor - (*v1.Module)(nil), // 13: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 14: google.protobuf.Duration + (*Config_DBUS_MediaPlayer)(nil), // 13: hyprpanel.config.v1.Config.DBUS.MediaPlayer + (*v1.Module)(nil), // 14: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 15: google.protobuf.Duration } var file_hyprpanel_config_v1_config_proto_depIdxs = []int32{ 0, // 0: hyprpanel.config.v1.Panel.edge:type_name -> hyprpanel.config.v1.Edge - 13, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module + 14, // 1: hyprpanel.config.v1.Panel.modules:type_name -> hyprpanel.module.v1.Module 1, // 2: hyprpanel.config.v1.Config.log_level:type_name -> hyprpanel.config.v1.LogLevel 5, // 3: hyprpanel.config.v1.Config.dbus:type_name -> hyprpanel.config.v1.Config.DBUS 6, // 4: hyprpanel.config.v1.Config.audio:type_name -> hyprpanel.config.v1.Config.Audio 2, // 5: hyprpanel.config.v1.Config.panels:type_name -> hyprpanel.config.v1.Panel 3, // 6: hyprpanel.config.v1.Config.icon_overrides:type_name -> hyprpanel.config.v1.IconOverride - 14, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration - 14, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration + 15, // 7: hyprpanel.config.v1.Config.DBUS.connect_timeout:type_name -> google.protobuf.Duration + 15, // 8: hyprpanel.config.v1.Config.DBUS.connect_interval:type_name -> google.protobuf.Duration 7, // 9: hyprpanel.config.v1.Config.DBUS.notifications:type_name -> hyprpanel.config.v1.Config.DBUS.Notifications 8, // 10: hyprpanel.config.v1.Config.DBUS.systray:type_name -> hyprpanel.config.v1.Config.DBUS.Systray 9, // 11: hyprpanel.config.v1.Config.DBUS.shortcuts:type_name -> hyprpanel.config.v1.Config.DBUS.Shortcuts 10, // 12: hyprpanel.config.v1.Config.DBUS.brightness:type_name -> hyprpanel.config.v1.Config.DBUS.Brightness 11, // 13: hyprpanel.config.v1.Config.DBUS.power:type_name -> hyprpanel.config.v1.Config.DBUS.Power 12, // 14: hyprpanel.config.v1.Config.DBUS.idle_inhibitor:type_name -> hyprpanel.config.v1.Config.DBUS.IdleInhibitor - 15, // [15:15] is the sub-list for method output_type - 15, // [15:15] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 13, // 15: hyprpanel.config.v1.Config.DBUS.media_player:type_name -> hyprpanel.config.v1.Config.DBUS.MediaPlayer + 16, // [16:16] is the sub-list for method output_type + 16, // [16:16] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_hyprpanel_config_v1_config_proto_init() } @@ -1269,6 +1334,18 @@ func file_hyprpanel_config_v1_config_proto_init() { return nil } } + file_hyprpanel_config_v1_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Config_DBUS_MediaPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1276,7 +1353,7 @@ func file_hyprpanel_config_v1_config_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_config_v1_config_proto_rawDesc, NumEnums: 2, - NumMessages: 11, + NumMessages: 12, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/config/v1/config.proto b/proto/hyprpanel/config/v1/config.proto index 1aae95c..c28beb7 100644 --- a/proto/hyprpanel/config/v1/config.proto +++ b/proto/hyprpanel/config/v1/config.proto @@ -71,6 +71,10 @@ message Config { bool enabled = 1; // toggles the idle inhibitor functionality, required for "idle_inhibitor" module. } + message MediaPlayer { + bool enabled = 1; // toggles the MediaPlayer functionality, required for "media_player" module. + } + bool enabled = 1; // if false, no DBUS functionality is available. google.protobuf.Duration connect_timeout = 2; // specifies the maximum time we will attempt to connect to the bus before failing (format: "20s"). google.protobuf.Duration connect_interval = 3; // specifies the interval that we will attempt to connect to the session bus on startup (format: "0.200s"). @@ -81,6 +85,7 @@ message Config { Brightness brightness = 7; // brightness configuration. Power power = 8; // power configuration. IdleInhibitor idle_inhibitor = 9; // idle inhibitor configuration. + MediaPlayer media_player = 10; // media player configuration. } message Audio { diff --git a/proto/hyprpanel/event/v1/event.pb.go b/proto/hyprpanel/event/v1/event.pb.go index 059b803..b4850c2 100644 --- a/proto/hyprpanel/event/v1/event.pb.go +++ b/proto/hyprpanel/event/v1/event.pb.go @@ -12,6 +12,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -252,6 +253,58 @@ func (InhibitTarget) EnumDescriptor() ([]byte, []int) { return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} } +type MediaPlayerState int32 + +const ( + MediaPlayerState_MEDIA_PLAYER_STATE_UNSPECIFIED MediaPlayerState = 0 + MediaPlayerState_MEDIA_PLAYER_STATE_PLAYING MediaPlayerState = 1 + MediaPlayerState_MEDIA_PLAYER_STATE_PAUSED MediaPlayerState = 2 + MediaPlayerState_MEDIA_PLAYER_STATE_STOPPED MediaPlayerState = 3 +) + +// Enum value maps for MediaPlayerState. +var ( + MediaPlayerState_name = map[int32]string{ + 0: "MEDIA_PLAYER_STATE_UNSPECIFIED", + 1: "MEDIA_PLAYER_STATE_PLAYING", + 2: "MEDIA_PLAYER_STATE_PAUSED", + 3: "MEDIA_PLAYER_STATE_STOPPED", + } + MediaPlayerState_value = map[string]int32{ + "MEDIA_PLAYER_STATE_UNSPECIFIED": 0, + "MEDIA_PLAYER_STATE_PLAYING": 1, + "MEDIA_PLAYER_STATE_PAUSED": 2, + "MEDIA_PLAYER_STATE_STOPPED": 3, + } +) + +func (x MediaPlayerState) Enum() *MediaPlayerState { + p := new(MediaPlayerState) + *p = x + return p +} + +func (x MediaPlayerState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MediaPlayerState) Descriptor() protoreflect.EnumDescriptor { + return file_hyprpanel_event_v1_event_proto_enumTypes[4].Descriptor() +} + +func (MediaPlayerState) Type() protoreflect.EnumType { + return &file_hyprpanel_event_v1_event_proto_enumTypes[4] +} + +func (x MediaPlayerState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MediaPlayerState.Descriptor instead. +func (MediaPlayerState) EnumDescriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} +} + type EventKind int32 const ( @@ -316,6 +369,7 @@ const ( EventKind_EVENT_KIND_EXEC EventKind = 59 EventKind_EVENT_KIND_IDLE_INHIBITOR_INHIBIT EventKind = 60 EventKind_EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT EventKind = 61 + EventKind_EVENT_KIND_MEDIA_PLAYER_CHANGE EventKind = 62 ) // Enum value maps for EventKind. @@ -382,6 +436,7 @@ var ( 59: "EVENT_KIND_EXEC", 60: "EVENT_KIND_IDLE_INHIBITOR_INHIBIT", 61: "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT", + 62: "EVENT_KIND_MEDIA_PLAYER_CHANGE", } EventKind_value = map[string]int32{ "EVENT_KIND_UNSPECIFIED": 0, @@ -445,6 +500,7 @@ var ( "EVENT_KIND_EXEC": 59, "EVENT_KIND_IDLE_INHIBITOR_INHIBIT": 60, "EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT": 61, + "EVENT_KIND_MEDIA_PLAYER_CHANGE": 62, } ) @@ -459,11 +515,11 @@ func (x EventKind) String() string { } func (EventKind) Descriptor() protoreflect.EnumDescriptor { - return file_hyprpanel_event_v1_event_proto_enumTypes[4].Descriptor() + return file_hyprpanel_event_v1_event_proto_enumTypes[5].Descriptor() } func (EventKind) Type() protoreflect.EnumType { - return &file_hyprpanel_event_v1_event_proto_enumTypes[4] + return &file_hyprpanel_event_v1_event_proto_enumTypes[5] } func (x EventKind) Number() protoreflect.EnumNumber { @@ -472,7 +528,158 @@ func (x EventKind) Number() protoreflect.EnumNumber { // Deprecated: Use EventKind.Descriptor instead. func (EventKind) EnumDescriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{5} +} + +type MediaPlayerValueChange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State MediaPlayerState `protobuf:"varint,1,opt,name=state,proto3,enum=hyprpanel.event.v1.MediaPlayerState" json:"state,omitempty"` + CanGoNext bool `protobuf:"varint,2,opt,name=can_go_next,json=canGoNext,proto3" json:"can_go_next,omitempty"` + CanGoPrevious bool `protobuf:"varint,3,opt,name=can_go_previous,json=canGoPrevious,proto3" json:"can_go_previous,omitempty"` + TrackId string `protobuf:"bytes,4,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` + UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` + PositionUs *int64 `protobuf:"varint,6,opt,name=position_us,json=positionUs,proto3,oneof" json:"position_us,omitempty"` + LengthUs *int64 `protobuf:"varint,7,opt,name=length_us,json=lengthUs,proto3,oneof" json:"length_us,omitempty"` + Title *string `protobuf:"bytes,8,opt,name=title,proto3,oneof" json:"title,omitempty"` + Artist *string `protobuf:"bytes,9,opt,name=artist,proto3,oneof" json:"artist,omitempty"` + Album *string `protobuf:"bytes,10,opt,name=album,proto3,oneof" json:"album,omitempty"` + DesktopEntry *string `protobuf:"bytes,11,opt,name=desktop_entry,json=desktopEntry,proto3,oneof" json:"desktop_entry,omitempty"` + Identity *string `protobuf:"bytes,12,opt,name=identity,proto3,oneof" json:"identity,omitempty"` + ArtUrl *string `protobuf:"bytes,13,opt,name=art_url,json=artUrl,proto3,oneof" json:"art_url,omitempty"` + Url *string `protobuf:"bytes,14,opt,name=url,proto3,oneof" json:"url,omitempty"` +} + +func (x *MediaPlayerValueChange) Reset() { + *x = MediaPlayerValueChange{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MediaPlayerValueChange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaPlayerValueChange) ProtoMessage() {} + +func (x *MediaPlayerValueChange) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MediaPlayerValueChange.ProtoReflect.Descriptor instead. +func (*MediaPlayerValueChange) Descriptor() ([]byte, []int) { + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{0} +} + +func (x *MediaPlayerValueChange) GetState() MediaPlayerState { + if x != nil { + return x.State + } + return MediaPlayerState_MEDIA_PLAYER_STATE_UNSPECIFIED +} + +func (x *MediaPlayerValueChange) GetCanGoNext() bool { + if x != nil { + return x.CanGoNext + } + return false +} + +func (x *MediaPlayerValueChange) GetCanGoPrevious() bool { + if x != nil { + return x.CanGoPrevious + } + return false +} + +func (x *MediaPlayerValueChange) GetTrackId() string { + if x != nil { + return x.TrackId + } + return "" +} + +func (x *MediaPlayerValueChange) GetUpdatedAt() *timestamppb.Timestamp { + if x != nil { + return x.UpdatedAt + } + return nil +} + +func (x *MediaPlayerValueChange) GetPositionUs() int64 { + if x != nil && x.PositionUs != nil { + return *x.PositionUs + } + return 0 +} + +func (x *MediaPlayerValueChange) GetLengthUs() int64 { + if x != nil && x.LengthUs != nil { + return *x.LengthUs + } + return 0 +} + +func (x *MediaPlayerValueChange) GetTitle() string { + if x != nil && x.Title != nil { + return *x.Title + } + return "" +} + +func (x *MediaPlayerValueChange) GetArtist() string { + if x != nil && x.Artist != nil { + return *x.Artist + } + return "" +} + +func (x *MediaPlayerValueChange) GetAlbum() string { + if x != nil && x.Album != nil { + return *x.Album + } + return "" +} + +func (x *MediaPlayerValueChange) GetDesktopEntry() string { + if x != nil && x.DesktopEntry != nil { + return *x.DesktopEntry + } + return "" +} + +func (x *MediaPlayerValueChange) GetIdentity() string { + if x != nil && x.Identity != nil { + return *x.Identity + } + return "" +} + +func (x *MediaPlayerValueChange) GetArtUrl() string { + if x != nil && x.ArtUrl != nil { + return *x.ArtUrl + } + return "" +} + +func (x *MediaPlayerValueChange) GetUrl() string { + if x != nil && x.Url != nil { + return *x.Url + } + return "" } type HyprWorkspaceV2Value struct { @@ -487,7 +694,7 @@ type HyprWorkspaceV2Value struct { func (x *HyprWorkspaceV2Value) Reset() { *x = HyprWorkspaceV2Value{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[0] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -500,7 +707,7 @@ func (x *HyprWorkspaceV2Value) String() string { func (*HyprWorkspaceV2Value) ProtoMessage() {} func (x *HyprWorkspaceV2Value) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[0] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -513,7 +720,7 @@ func (x *HyprWorkspaceV2Value) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprWorkspaceV2Value.ProtoReflect.Descriptor instead. func (*HyprWorkspaceV2Value) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{0} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{1} } func (x *HyprWorkspaceV2Value) GetId() int32 { @@ -542,7 +749,7 @@ type HyprDestroyWorkspaceV2Value struct { func (x *HyprDestroyWorkspaceV2Value) Reset() { *x = HyprDestroyWorkspaceV2Value{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[1] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -555,7 +762,7 @@ func (x *HyprDestroyWorkspaceV2Value) String() string { func (*HyprDestroyWorkspaceV2Value) ProtoMessage() {} func (x *HyprDestroyWorkspaceV2Value) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[1] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -568,7 +775,7 @@ func (x *HyprDestroyWorkspaceV2Value) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprDestroyWorkspaceV2Value.ProtoReflect.Descriptor instead. func (*HyprDestroyWorkspaceV2Value) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{1} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{2} } func (x *HyprDestroyWorkspaceV2Value) GetId() int32 { @@ -597,7 +804,7 @@ type HyprCreateWorkspaceV2Value struct { func (x *HyprCreateWorkspaceV2Value) Reset() { *x = HyprCreateWorkspaceV2Value{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[2] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -610,7 +817,7 @@ func (x *HyprCreateWorkspaceV2Value) String() string { func (*HyprCreateWorkspaceV2Value) ProtoMessage() {} func (x *HyprCreateWorkspaceV2Value) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[2] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -623,7 +830,7 @@ func (x *HyprCreateWorkspaceV2Value) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprCreateWorkspaceV2Value.ProtoReflect.Descriptor instead. func (*HyprCreateWorkspaceV2Value) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{2} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} } func (x *HyprCreateWorkspaceV2Value) GetId() int32 { @@ -652,7 +859,7 @@ type HyprMoveWindowValue struct { func (x *HyprMoveWindowValue) Reset() { *x = HyprMoveWindowValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[3] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -665,7 +872,7 @@ func (x *HyprMoveWindowValue) String() string { func (*HyprMoveWindowValue) ProtoMessage() {} func (x *HyprMoveWindowValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[3] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -678,7 +885,7 @@ func (x *HyprMoveWindowValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprMoveWindowValue.ProtoReflect.Descriptor instead. func (*HyprMoveWindowValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{3} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} } func (x *HyprMoveWindowValue) GetAddress() string { @@ -708,7 +915,7 @@ type HyprMoveWindowV2Value struct { func (x *HyprMoveWindowV2Value) Reset() { *x = HyprMoveWindowV2Value{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[4] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -721,7 +928,7 @@ func (x *HyprMoveWindowV2Value) String() string { func (*HyprMoveWindowV2Value) ProtoMessage() {} func (x *HyprMoveWindowV2Value) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[4] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -734,7 +941,7 @@ func (x *HyprMoveWindowV2Value) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprMoveWindowV2Value.ProtoReflect.Descriptor instead. func (*HyprMoveWindowV2Value) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{4} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{5} } func (x *HyprMoveWindowV2Value) GetAddress() string { @@ -770,7 +977,7 @@ type HyprMoveWorkspaceValue struct { func (x *HyprMoveWorkspaceValue) Reset() { *x = HyprMoveWorkspaceValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[5] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -783,7 +990,7 @@ func (x *HyprMoveWorkspaceValue) String() string { func (*HyprMoveWorkspaceValue) ProtoMessage() {} func (x *HyprMoveWorkspaceValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[5] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -796,7 +1003,7 @@ func (x *HyprMoveWorkspaceValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprMoveWorkspaceValue.ProtoReflect.Descriptor instead. func (*HyprMoveWorkspaceValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{5} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{6} } func (x *HyprMoveWorkspaceValue) GetName() string { @@ -826,7 +1033,7 @@ type HyprMoveWorkspaceV2Value struct { func (x *HyprMoveWorkspaceV2Value) Reset() { *x = HyprMoveWorkspaceV2Value{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[6] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -839,7 +1046,7 @@ func (x *HyprMoveWorkspaceV2Value) String() string { func (*HyprMoveWorkspaceV2Value) ProtoMessage() {} func (x *HyprMoveWorkspaceV2Value) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[6] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -852,7 +1059,7 @@ func (x *HyprMoveWorkspaceV2Value) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprMoveWorkspaceV2Value.ProtoReflect.Descriptor instead. func (*HyprMoveWorkspaceV2Value) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{6} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{7} } func (x *HyprMoveWorkspaceV2Value) GetId() int32 { @@ -888,7 +1095,7 @@ type HyprRenameWorkspaceValue struct { func (x *HyprRenameWorkspaceValue) Reset() { *x = HyprRenameWorkspaceValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[7] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -901,7 +1108,7 @@ func (x *HyprRenameWorkspaceValue) String() string { func (*HyprRenameWorkspaceValue) ProtoMessage() {} func (x *HyprRenameWorkspaceValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[7] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -914,7 +1121,7 @@ func (x *HyprRenameWorkspaceValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprRenameWorkspaceValue.ProtoReflect.Descriptor instead. func (*HyprRenameWorkspaceValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{7} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{8} } func (x *HyprRenameWorkspaceValue) GetId() int32 { @@ -943,7 +1150,7 @@ type HyprActiveWindowValue struct { func (x *HyprActiveWindowValue) Reset() { *x = HyprActiveWindowValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[8] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -956,7 +1163,7 @@ func (x *HyprActiveWindowValue) String() string { func (*HyprActiveWindowValue) ProtoMessage() {} func (x *HyprActiveWindowValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[8] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -969,7 +1176,7 @@ func (x *HyprActiveWindowValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprActiveWindowValue.ProtoReflect.Descriptor instead. func (*HyprActiveWindowValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{8} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{9} } func (x *HyprActiveWindowValue) GetClass() string { @@ -1000,7 +1207,7 @@ type HyprOpenWindowValue struct { func (x *HyprOpenWindowValue) Reset() { *x = HyprOpenWindowValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[9] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1013,7 +1220,7 @@ func (x *HyprOpenWindowValue) String() string { func (*HyprOpenWindowValue) ProtoMessage() {} func (x *HyprOpenWindowValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[9] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1026,7 +1233,7 @@ func (x *HyprOpenWindowValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HyprOpenWindowValue.ProtoReflect.Descriptor instead. func (*HyprOpenWindowValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{9} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10} } func (x *HyprOpenWindowValue) GetAddress() string { @@ -1076,7 +1283,7 @@ type StatusNotifierValue struct { func (x *StatusNotifierValue) Reset() { *x = StatusNotifierValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[10] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1089,7 +1296,7 @@ func (x *StatusNotifierValue) String() string { func (*StatusNotifierValue) ProtoMessage() {} func (x *StatusNotifierValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[10] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1102,7 +1309,7 @@ func (x *StatusNotifierValue) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusNotifierValue.ProtoReflect.Descriptor instead. func (*StatusNotifierValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11} } func (x *StatusNotifierValue) GetBusName() string { @@ -1180,7 +1387,7 @@ type UpdateTitleValue struct { func (x *UpdateTitleValue) Reset() { *x = UpdateTitleValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[11] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1193,7 +1400,7 @@ func (x *UpdateTitleValue) String() string { func (*UpdateTitleValue) ProtoMessage() {} func (x *UpdateTitleValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[11] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1206,7 +1413,7 @@ func (x *UpdateTitleValue) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTitleValue.ProtoReflect.Descriptor instead. func (*UpdateTitleValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{12} } func (x *UpdateTitleValue) GetBusName() string { @@ -1235,7 +1442,7 @@ type UpdateTooltipValue struct { func (x *UpdateTooltipValue) Reset() { *x = UpdateTooltipValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[12] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1248,7 +1455,7 @@ func (x *UpdateTooltipValue) String() string { func (*UpdateTooltipValue) ProtoMessage() {} func (x *UpdateTooltipValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[12] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1261,7 +1468,7 @@ func (x *UpdateTooltipValue) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateTooltipValue.ProtoReflect.Descriptor instead. func (*UpdateTooltipValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{12} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{13} } func (x *UpdateTooltipValue) GetBusName() string { @@ -1290,7 +1497,7 @@ type UpdateIconValue struct { func (x *UpdateIconValue) Reset() { *x = UpdateIconValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[13] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1303,7 +1510,7 @@ func (x *UpdateIconValue) String() string { func (*UpdateIconValue) ProtoMessage() {} func (x *UpdateIconValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[13] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1316,7 +1523,7 @@ func (x *UpdateIconValue) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateIconValue.ProtoReflect.Descriptor instead. func (*UpdateIconValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{13} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{14} } func (x *UpdateIconValue) GetBusName() string { @@ -1345,7 +1552,7 @@ type UpdateStatusValue struct { func (x *UpdateStatusValue) Reset() { *x = UpdateStatusValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[14] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1358,7 +1565,7 @@ func (x *UpdateStatusValue) String() string { func (*UpdateStatusValue) ProtoMessage() {} func (x *UpdateStatusValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[14] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1371,7 +1578,7 @@ func (x *UpdateStatusValue) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStatusValue.ProtoReflect.Descriptor instead. func (*UpdateStatusValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{14} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{15} } func (x *UpdateStatusValue) GetBusName() string { @@ -1400,7 +1607,7 @@ type UpdateMenuValue struct { func (x *UpdateMenuValue) Reset() { *x = UpdateMenuValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[15] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1413,7 +1620,7 @@ func (x *UpdateMenuValue) String() string { func (*UpdateMenuValue) ProtoMessage() {} func (x *UpdateMenuValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[15] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1426,7 +1633,7 @@ func (x *UpdateMenuValue) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMenuValue.ProtoReflect.Descriptor instead. func (*UpdateMenuValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{15} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{16} } func (x *UpdateMenuValue) GetBusName() string { @@ -1462,7 +1669,7 @@ type NotificationValue struct { func (x *NotificationValue) Reset() { *x = NotificationValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[16] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1475,7 +1682,7 @@ func (x *NotificationValue) String() string { func (*NotificationValue) ProtoMessage() {} func (x *NotificationValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[16] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1488,7 +1695,7 @@ func (x *NotificationValue) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationValue.ProtoReflect.Descriptor instead. func (*NotificationValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{16} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{17} } func (x *NotificationValue) GetId() uint32 { @@ -1571,7 +1778,7 @@ type HudNotificationValue struct { func (x *HudNotificationValue) Reset() { *x = HudNotificationValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[17] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1584,7 +1791,7 @@ func (x *HudNotificationValue) String() string { func (*HudNotificationValue) ProtoMessage() {} func (x *HudNotificationValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[17] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1597,7 +1804,7 @@ func (x *HudNotificationValue) ProtoReflect() protoreflect.Message { // Deprecated: Use HudNotificationValue.ProtoReflect.Descriptor instead. func (*HudNotificationValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{17} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{18} } func (x *HudNotificationValue) GetId() string { @@ -1666,7 +1873,7 @@ type AudioSinkChangeValue struct { func (x *AudioSinkChangeValue) Reset() { *x = AudioSinkChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[18] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1679,7 +1886,7 @@ func (x *AudioSinkChangeValue) String() string { func (*AudioSinkChangeValue) ProtoMessage() {} func (x *AudioSinkChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[18] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1692,7 +1899,7 @@ func (x *AudioSinkChangeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSinkChangeValue.ProtoReflect.Descriptor instead. func (*AudioSinkChangeValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{18} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{19} } func (x *AudioSinkChangeValue) GetId() string { @@ -1761,7 +1968,7 @@ type AudioSourceChangeValue struct { func (x *AudioSourceChangeValue) Reset() { *x = AudioSourceChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[19] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1774,7 +1981,7 @@ func (x *AudioSourceChangeValue) String() string { func (*AudioSourceChangeValue) ProtoMessage() {} func (x *AudioSourceChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[19] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1787,7 +1994,7 @@ func (x *AudioSourceChangeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSourceChangeValue.ProtoReflect.Descriptor instead. func (*AudioSourceChangeValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{19} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{20} } func (x *AudioSourceChangeValue) GetId() string { @@ -1851,7 +2058,7 @@ type AudioSinkVolumeAdjust struct { func (x *AudioSinkVolumeAdjust) Reset() { *x = AudioSinkVolumeAdjust{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[20] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1864,7 +2071,7 @@ func (x *AudioSinkVolumeAdjust) String() string { func (*AudioSinkVolumeAdjust) ProtoMessage() {} func (x *AudioSinkVolumeAdjust) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[20] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1877,7 +2084,7 @@ func (x *AudioSinkVolumeAdjust) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSinkVolumeAdjust.ProtoReflect.Descriptor instead. func (*AudioSinkVolumeAdjust) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{20} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{21} } func (x *AudioSinkVolumeAdjust) GetId() string { @@ -1905,7 +2112,7 @@ type AudioSinkMuteToggle struct { func (x *AudioSinkMuteToggle) Reset() { *x = AudioSinkMuteToggle{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[21] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1918,7 +2125,7 @@ func (x *AudioSinkMuteToggle) String() string { func (*AudioSinkMuteToggle) ProtoMessage() {} func (x *AudioSinkMuteToggle) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[21] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1931,7 +2138,7 @@ func (x *AudioSinkMuteToggle) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSinkMuteToggle.ProtoReflect.Descriptor instead. func (*AudioSinkMuteToggle) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{21} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{22} } func (x *AudioSinkMuteToggle) GetId() string { @@ -1953,7 +2160,7 @@ type AudioSourceVolumeAdjust struct { func (x *AudioSourceVolumeAdjust) Reset() { *x = AudioSourceVolumeAdjust{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[22] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1966,7 +2173,7 @@ func (x *AudioSourceVolumeAdjust) String() string { func (*AudioSourceVolumeAdjust) ProtoMessage() {} func (x *AudioSourceVolumeAdjust) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[22] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1979,7 +2186,7 @@ func (x *AudioSourceVolumeAdjust) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSourceVolumeAdjust.ProtoReflect.Descriptor instead. func (*AudioSourceVolumeAdjust) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{22} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{23} } func (x *AudioSourceVolumeAdjust) GetId() string { @@ -2007,7 +2214,7 @@ type AudioSourceMuteToggle struct { func (x *AudioSourceMuteToggle) Reset() { *x = AudioSourceMuteToggle{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[23] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2020,7 +2227,7 @@ func (x *AudioSourceMuteToggle) String() string { func (*AudioSourceMuteToggle) ProtoMessage() {} func (x *AudioSourceMuteToggle) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[23] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2033,7 +2240,7 @@ func (x *AudioSourceMuteToggle) ProtoReflect() protoreflect.Message { // Deprecated: Use AudioSourceMuteToggle.ProtoReflect.Descriptor instead. func (*AudioSourceMuteToggle) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{23} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{24} } func (x *AudioSourceMuteToggle) GetId() string { @@ -2057,7 +2264,7 @@ type BrightnessChangeValue struct { func (x *BrightnessChangeValue) Reset() { *x = BrightnessChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[24] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2070,7 +2277,7 @@ func (x *BrightnessChangeValue) String() string { func (*BrightnessChangeValue) ProtoMessage() {} func (x *BrightnessChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[24] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2083,7 +2290,7 @@ func (x *BrightnessChangeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use BrightnessChangeValue.ProtoReflect.Descriptor instead. func (*BrightnessChangeValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{24} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{25} } func (x *BrightnessChangeValue) GetId() string { @@ -2126,7 +2333,7 @@ type BrightnessAdjustValue struct { func (x *BrightnessAdjustValue) Reset() { *x = BrightnessAdjustValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[25] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2139,7 +2346,7 @@ func (x *BrightnessAdjustValue) String() string { func (*BrightnessAdjustValue) ProtoMessage() {} func (x *BrightnessAdjustValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[25] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2152,7 +2359,7 @@ func (x *BrightnessAdjustValue) ProtoReflect() protoreflect.Message { // Deprecated: Use BrightnessAdjustValue.ProtoReflect.Descriptor instead. func (*BrightnessAdjustValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{25} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{26} } func (x *BrightnessAdjustValue) GetDevName() string { @@ -2193,7 +2400,7 @@ type PowerChangeValue struct { func (x *PowerChangeValue) Reset() { *x = PowerChangeValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[26] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2206,7 +2413,7 @@ func (x *PowerChangeValue) String() string { func (*PowerChangeValue) ProtoMessage() {} func (x *PowerChangeValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[26] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2219,7 +2426,7 @@ func (x *PowerChangeValue) ProtoReflect() protoreflect.Message { // Deprecated: Use PowerChangeValue.ProtoReflect.Descriptor instead. func (*PowerChangeValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{26} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} } func (x *PowerChangeValue) GetId() string { @@ -2331,7 +2538,7 @@ type IdleInhibitorValue struct { func (x *IdleInhibitorValue) Reset() { *x = IdleInhibitorValue{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2344,7 +2551,7 @@ func (x *IdleInhibitorValue) String() string { func (*IdleInhibitorValue) ProtoMessage() {} func (x *IdleInhibitorValue) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[27] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2357,7 +2564,7 @@ func (x *IdleInhibitorValue) ProtoReflect() protoreflect.Message { // Deprecated: Use IdleInhibitorValue.ProtoReflect.Descriptor instead. func (*IdleInhibitorValue) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{27} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{28} } func (x *IdleInhibitorValue) GetTarget() InhibitTarget { @@ -2379,7 +2586,7 @@ type Event struct { func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2392,7 +2599,7 @@ func (x *Event) String() string { func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[28] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2405,7 +2612,7 @@ func (x *Event) ProtoReflect() protoreflect.Message { // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{28} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{29} } func (x *Event) GetKind() EventKind { @@ -2435,7 +2642,7 @@ type StatusNotifierValue_Pixmap struct { func (x *StatusNotifierValue_Pixmap) Reset() { *x = StatusNotifierValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2448,7 +2655,7 @@ func (x *StatusNotifierValue_Pixmap) String() string { func (*StatusNotifierValue_Pixmap) ProtoMessage() {} func (x *StatusNotifierValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[29] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2461,7 +2668,7 @@ func (x *StatusNotifierValue_Pixmap) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusNotifierValue_Pixmap.ProtoReflect.Descriptor instead. func (*StatusNotifierValue_Pixmap) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10, 0} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11, 0} } func (x *StatusNotifierValue_Pixmap) GetWidth() int32 { @@ -2499,7 +2706,7 @@ type StatusNotifierValue_Tooltip struct { func (x *StatusNotifierValue_Tooltip) Reset() { *x = StatusNotifierValue_Tooltip{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2512,7 +2719,7 @@ func (x *StatusNotifierValue_Tooltip) String() string { func (*StatusNotifierValue_Tooltip) ProtoMessage() {} func (x *StatusNotifierValue_Tooltip) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[30] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2525,7 +2732,7 @@ func (x *StatusNotifierValue_Tooltip) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusNotifierValue_Tooltip.ProtoReflect.Descriptor instead. func (*StatusNotifierValue_Tooltip) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10, 1} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11, 1} } func (x *StatusNotifierValue_Tooltip) GetIconName() string { @@ -2569,7 +2776,7 @@ type StatusNotifierValue_Icon struct { func (x *StatusNotifierValue_Icon) Reset() { *x = StatusNotifierValue_Icon{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2582,7 +2789,7 @@ func (x *StatusNotifierValue_Icon) String() string { func (*StatusNotifierValue_Icon) ProtoMessage() {} func (x *StatusNotifierValue_Icon) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[31] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2595,7 +2802,7 @@ func (x *StatusNotifierValue_Icon) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusNotifierValue_Icon.ProtoReflect.Descriptor instead. func (*StatusNotifierValue_Icon) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10, 2} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11, 2} } func (x *StatusNotifierValue_Icon) GetIconName() string { @@ -2632,7 +2839,7 @@ type StatusNotifierValue_Menu struct { func (x *StatusNotifierValue_Menu) Reset() { *x = StatusNotifierValue_Menu{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2645,7 +2852,7 @@ func (x *StatusNotifierValue_Menu) String() string { func (*StatusNotifierValue_Menu) ProtoMessage() {} func (x *StatusNotifierValue_Menu) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[32] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2658,7 +2865,7 @@ func (x *StatusNotifierValue_Menu) ProtoReflect() protoreflect.Message { // Deprecated: Use StatusNotifierValue_Menu.ProtoReflect.Descriptor instead. func (*StatusNotifierValue_Menu) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10, 3} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11, 3} } func (x *StatusNotifierValue_Menu) GetId() int32 { @@ -2702,7 +2909,7 @@ type StatusNotifierValue_Menu_Properties struct { func (x *StatusNotifierValue_Menu_Properties) Reset() { *x = StatusNotifierValue_Menu_Properties{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2715,7 +2922,7 @@ func (x *StatusNotifierValue_Menu_Properties) String() string { func (*StatusNotifierValue_Menu_Properties) ProtoMessage() {} func (x *StatusNotifierValue_Menu_Properties) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[33] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2728,7 +2935,7 @@ func (x *StatusNotifierValue_Menu_Properties) ProtoReflect() protoreflect.Messag // Deprecated: Use StatusNotifierValue_Menu_Properties.ProtoReflect.Descriptor instead. func (*StatusNotifierValue_Menu_Properties) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{10, 3, 0} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{11, 3, 0} } func (x *StatusNotifierValue_Menu_Properties) GetLabel() string { @@ -2813,7 +3020,7 @@ type NotificationValue_Hint struct { func (x *NotificationValue_Hint) Reset() { *x = NotificationValue_Hint{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2826,7 +3033,7 @@ func (x *NotificationValue_Hint) String() string { func (*NotificationValue_Hint) ProtoMessage() {} func (x *NotificationValue_Hint) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[34] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2839,7 +3046,7 @@ func (x *NotificationValue_Hint) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationValue_Hint.ProtoReflect.Descriptor instead. func (*NotificationValue_Hint) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{16, 0} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{17, 0} } func (x *NotificationValue_Hint) GetKey() string { @@ -2868,7 +3075,7 @@ type NotificationValue_Action struct { func (x *NotificationValue_Action) Reset() { *x = NotificationValue_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2881,7 +3088,7 @@ func (x *NotificationValue_Action) String() string { func (*NotificationValue_Action) ProtoMessage() {} func (x *NotificationValue_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[35] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2894,7 +3101,7 @@ func (x *NotificationValue_Action) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationValue_Action.ProtoReflect.Descriptor instead. func (*NotificationValue_Action) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{16, 1} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{17, 1} } func (x *NotificationValue_Action) GetKey() string { @@ -2928,7 +3135,7 @@ type NotificationValue_Pixmap struct { func (x *NotificationValue_Pixmap) Reset() { *x = NotificationValue_Pixmap{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2941,7 +3148,7 @@ func (x *NotificationValue_Pixmap) String() string { func (*NotificationValue_Pixmap) ProtoMessage() {} func (x *NotificationValue_Pixmap) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_event_v1_event_proto_msgTypes[36] + mi := &file_hyprpanel_event_v1_event_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2954,7 +3161,7 @@ func (x *NotificationValue_Pixmap) ProtoReflect() protoreflect.Message { // Deprecated: Use NotificationValue_Pixmap.ProtoReflect.Descriptor instead. func (*NotificationValue_Pixmap) Descriptor() ([]byte, []int) { - return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{16, 2} + return file_hyprpanel_event_v1_event_proto_rawDescGZIP(), []int{17, 2} } func (x *NotificationValue_Pixmap) GetWidth() int32 { @@ -3016,520 +3223,574 @@ var file_hyprpanel_event_v1_event_proto_rawDesc = []byte{ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x20, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x3a, 0x0a, 0x14, 0x48, 0x79, 0x70, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x41, 0x0a, - 0x1b, 0x48, 0x79, 0x70, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x57, 0x6f, 0x72, 0x6b, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x20, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xfd, 0x04, 0x0a, 0x16, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3a, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x63, 0x61, 0x6e, + 0x5f, 0x67, 0x6f, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x63, 0x61, 0x6e, 0x47, 0x6f, 0x4e, 0x65, 0x78, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x63, 0x61, 0x6e, + 0x5f, 0x67, 0x6f, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x63, 0x61, 0x6e, 0x47, 0x6f, 0x50, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, + 0x73, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0a, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x01, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x55, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x06, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x05, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x88, + 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x5f, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x73, + 0x6b, 0x74, 0x6f, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, + 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x61, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x07, + 0x52, 0x06, 0x61, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x08, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, + 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x75, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x5f, 0x75, 0x73, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x61, + 0x72, 0x74, 0x69, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x62, 0x75, 0x6d, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x61, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, + 0x72, 0x6c, 0x22, 0x3a, 0x0a, 0x14, 0x48, 0x79, 0x70, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x41, + 0x0a, 0x1b, 0x48, 0x79, 0x70, 0x72, 0x44, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x57, 0x6f, 0x72, + 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x40, 0x0a, 0x1a, 0x48, 0x79, 0x70, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, + 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, + 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x15, 0x48, + 0x79, 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x16, 0x48, 0x79, 0x70, 0x72, + 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x22, 0x58, 0x0a, 0x18, 0x48, 0x79, 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x40, 0x0a, 0x1a, 0x48, 0x79, 0x70, 0x72, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x7b, 0x0a, 0x15, 0x48, 0x79, - 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x32, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x0a, - 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x46, 0x0a, 0x16, 0x48, 0x79, 0x70, 0x72, 0x4d, - 0x6f, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x22, - 0x58, 0x0a, 0x18, 0x48, 0x79, 0x70, 0x72, 0x4d, 0x6f, 0x76, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x56, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x0a, 0x18, 0x48, 0x79, 0x70, - 0x72, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x48, 0x79, 0x70, - 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x82, - 0x01, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x22, 0xaf, 0x0a, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, - 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, - 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3b, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, - 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x07, 0x74, 0x6f, - 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x52, 0x07, 0x74, 0x6f, - 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x12, 0x40, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x49, 0x63, 0x6f, - 0x6e, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, - 0x65, 0x6e, 0x75, 0x52, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x6e, - 0x75, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0c, 0x6d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x4a, - 0x0a, 0x06, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, - 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa1, 0x01, 0x0a, 0x07, 0x54, - 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x78, 0x6d, - 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x2e, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x50, 0x69, - 0x78, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, 0x9c, - 0x01, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x65, - 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, - 0x63, 0x6f, 0x6e, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4f, 0x0a, 0x0b, - 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x50, 0x69, 0x78, 0x6d, 0x61, - 0x70, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x1a, 0xf5, 0x03, - 0x0a, 0x04, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x57, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, - 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, - 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x48, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, - 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0xb9, 0x02, 0x0a, 0x0a, 0x50, 0x72, - 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x63, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, - 0x69, 0x63, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x67, 0x67, - 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, - 0x73, 0x5f, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x69, 0x73, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x64, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, - 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x5f, - 0x72, 0x61, 0x64, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x52, - 0x61, 0x64, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x62, 0x6f, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x43, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x7a, 0x0a, 0x12, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x74, - 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x22, 0x3e, 0x0a, 0x18, 0x48, 0x79, + 0x70, 0x72, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x43, 0x0a, 0x15, 0x48, 0x79, + 0x70, 0x72, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, + 0x82, 0x01, 0x0a, 0x13, 0x48, 0x79, 0x70, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x57, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x22, 0xaf, 0x0a, 0x0a, 0x13, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x62, 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x62, 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x3b, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x07, 0x74, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x52, 0x07, 0x74, - 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x22, 0x6e, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x49, 0x63, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x12, 0x40, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x49, 0x63, + 0x6f, 0x6e, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, + 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, + 0x6e, 0x75, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x6d, 0x65, 0x6e, 0x75, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x4a, 0x0a, 0x06, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa1, 0x01, 0x0a, 0x07, + 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x0b, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x78, + 0x6d, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x50, + 0x69, 0x78, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x1a, + 0x9c, 0x01, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x74, 0x68, + 0x65, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x69, 0x63, 0x6f, 0x6e, 0x54, 0x68, 0x65, 0x6d, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4f, 0x0a, + 0x0b, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x70, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x50, 0x69, 0x78, 0x6d, + 0x61, 0x70, 0x52, 0x0a, 0x69, 0x63, 0x6f, 0x6e, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, 0x1a, 0xf5, + 0x03, 0x0a, 0x04, 0x4d, 0x65, 0x6e, 0x75, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x57, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x49, 0x63, 0x6f, 0x6e, - 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, - 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, - 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, - 0x74, 0x72, 0x61, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6e, - 0x75, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x04, 0x6d, - 0x65, 0x6e, 0x75, 0x22, 0xac, 0x05, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x61, - 0x63, 0x65, 0x73, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x63, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, 0x6e, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, - 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x18, - 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x48, 0x69, 0x6e, - 0x74, 0x52, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x44, 0x0a, - 0x04, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x1a, 0x30, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x50, 0x69, 0x78, 0x6d, 0x61, 0x70, - 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x53, 0x74, 0x72, 0x69, 0x64, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x68, 0x61, 0x73, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x69, - 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x69, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x48, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, - 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, - 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x22, 0xbb, 0x01, 0x0a, 0x14, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, 0x74, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x16, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, 0x70, - 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, 0x74, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, + 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x1a, 0xb9, 0x02, 0x0a, 0x0a, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x74, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x69, 0x73, 0x5f, 0x73, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x65, 0x70, 0x61, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x69, 0x73, 0x5f, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x69, 0x73, 0x48, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x69, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, + 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, + 0x52, 0x61, 0x64, 0x69, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x62, 0x6f, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x22, 0x43, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, + 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x7a, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x49, 0x0a, 0x07, + 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x54, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x52, 0x07, + 0x74, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x70, 0x22, 0x6e, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x49, 0x63, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, + 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x49, 0x63, 0x6f, + 0x6e, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x22, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x62, 0x75, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x62, 0x75, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, + 0x73, 0x74, 0x72, 0x61, 0x79, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x6e, 0x75, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x75, 0x73, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x75, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x6d, 0x65, 0x6e, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x4d, 0x65, 0x6e, 0x75, 0x52, 0x04, + 0x6d, 0x65, 0x6e, 0x75, 0x22, 0xac, 0x05, 0x0a, 0x11, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, + 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x73, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6c, + 0x61, 0x63, 0x65, 0x73, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x69, 0x63, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x49, 0x63, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, + 0x46, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, + 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x48, 0x69, + 0x6e, 0x74, 0x52, 0x05, 0x68, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x1a, 0x44, + 0x0a, 0x04, 0x48, 0x69, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x30, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xca, 0x01, 0x0a, 0x06, 0x50, 0x69, 0x78, 0x6d, 0x61, + 0x70, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, + 0x1d, 0x0a, 0x0a, 0x72, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x77, 0x53, 0x74, 0x72, 0x69, 0x64, 0x65, 0x12, 0x1b, + 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x62, + 0x69, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x69, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xc4, 0x01, 0x0a, 0x14, 0x48, 0x75, 0x64, 0x4e, 0x6f, 0x74, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, + 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, + 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, 0x6e, 0x53, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x22, 0xbb, 0x01, 0x0a, 0x14, 0x41, + 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0xbd, 0x01, 0x0a, 0x16, 0x41, 0x75, 0x64, + 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x07, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0a, + 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x64, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x25, + 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, + 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x66, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x25, 0x0a, - 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, - 0x67, 0x67, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x22, 0x66, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, + 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x15, 0x42, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x22, 0x6f, 0x0a, 0x15, 0x42, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x27, 0x0a, 0x15, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, - 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x15, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, - 0x6e, 0x65, 0x73, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, - 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x4d, 0x61, 0x78, 0x22, 0x6f, 0x0a, 0x15, 0x42, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x64, 0x65, 0x76, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x76, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3b, - 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x04, 0x0a, 0x10, - 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x31, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3d, 0x0a, 0x0d, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, - 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x54, 0x6f, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, - 0x65, 0x72, 0x67, 0x79, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, 0x4f, - 0x0a, 0x12, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, - 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, - 0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, - 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, 0x12, - 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, - 0x4e, 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, - 0x15, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x45, - 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, 0x02, - 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x50, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, - 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, 0x45, - 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, 0x12, - 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, - 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, - 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, 0x45, - 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, 0x12, - 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, - 0x55, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1e, - 0x0a, 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, 0x21, - 0x0a, 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, - 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, - 0x06, 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, - 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, - 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x49, - 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x4c, - 0x45, 0x45, 0x50, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, - 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, - 0x10, 0x03, 0x2a, 0xd6, 0x10, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x04, 0x0a, + 0x10, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x65, 0x6e, 0x64, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, + 0x31, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3d, 0x0a, + 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, + 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, + 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x65, + 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1f, + 0x0a, 0x0b, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0a, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x46, 0x75, 0x6c, 0x6c, 0x22, + 0x4f, 0x0a, 0x12, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x22, 0x64, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x2a, 0x4c, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, + 0x0a, 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x10, 0x01, + 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x02, 0x2a, 0xdf, 0x01, 0x0a, 0x09, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, + 0x0a, 0x15, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4c, 0x49, 0x4e, + 0x45, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, + 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x41, 0x54, 0x54, 0x45, 0x52, 0x59, 0x10, + 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x50, 0x53, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, + 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x4f, 0x55, 0x53, + 0x45, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4b, 0x45, 0x59, 0x42, 0x4f, 0x41, 0x52, 0x44, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, + 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x44, 0x41, 0x10, 0x07, + 0x12, 0x14, 0x0a, 0x10, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x48, 0x4f, 0x4e, 0x45, 0x10, 0x08, 0x2a, 0xd9, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x43, + 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x57, + 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x03, + 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x46, 0x55, 0x4c, 0x4c, 0x59, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x44, 0x10, 0x04, 0x12, + 0x1e, 0x0a, 0x1a, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, 0x10, 0x05, 0x12, + 0x21, 0x0a, 0x1d, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x45, + 0x10, 0x06, 0x2a, 0x7f, 0x0a, 0x0d, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x1e, 0x0a, 0x1a, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, + 0x4c, 0x45, 0x45, 0x50, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, + 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x03, 0x2a, 0x95, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x4d, 0x45, 0x44, 0x49, + 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, + 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, + 0x45, 0x44, 0x49, 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x2a, 0xfa, 0x10, 0x0a, 0x09, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x4f, 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, + 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, + 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, + 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, + 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, + 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, + 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, + 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, + 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, + 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, + 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, + 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, + 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, + 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, + 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, + 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, + 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, + 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, + 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, - 0x4f, 0x43, 0x55, 0x53, 0x45, 0x44, 0x4d, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, - 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x04, 0x12, 0x22, 0x0a, - 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, - 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x10, - 0x06, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, - 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x52, 0x45, 0x4d, 0x4f, - 0x56, 0x45, 0x44, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, - 0x41, 0x44, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x09, 0x12, 0x24, 0x0a, 0x20, + 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, + 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, + 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, + 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, + 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, - 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x10, 0x0a, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, - 0x41, 0x43, 0x45, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x52, 0x45, 0x4e, 0x41, 0x4d, 0x45, 0x57, - 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x0c, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x45, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x10, 0x0d, 0x12, 0x20, 0x0a, - 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x4c, 0x41, 0x59, 0x4f, 0x55, 0x54, 0x10, 0x0e, 0x12, - 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x0f, 0x12, - 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x10, - 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x10, 0x11, - 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, - 0x59, 0x50, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x12, 0x12, - 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x10, 0x13, 0x12, - 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x41, 0x50, 0x10, 0x14, 0x12, 0x26, 0x0a, 0x22, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x4d, 0x4f, 0x44, - 0x45, 0x10, 0x15, 0x12, 0x1a, 0x0a, 0x16, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x55, 0x52, 0x47, 0x45, 0x4e, 0x54, 0x10, 0x16, 0x12, - 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x17, 0x12, 0x1e, 0x0a, - 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x53, 0x43, 0x52, 0x45, 0x45, 0x4e, 0x43, 0x41, 0x53, 0x54, 0x10, 0x18, 0x12, 0x1f, 0x0a, - 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x19, 0x12, 0x23, - 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, - 0x52, 0x5f, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x45, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x4c, 0x4f, 0x43, - 0x4b, 0x10, 0x1a, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, - 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, - 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, - 0x45, 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, - 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, - 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, - 0x45, 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, - 0x4c, 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, - 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, - 0x24, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x4c, 0x4f, 0x43, 0x4b, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x53, 0x10, + 0x1b, 0x12, 0x2a, 0x0a, 0x26, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x44, 0x42, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x1c, 0x12, 0x2c, 0x0a, + 0x28, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, + 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x45, 0x52, 0x10, 0x1d, 0x12, 0x1f, 0x0a, 0x1b, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x55, + 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x1e, 0x12, 0x21, 0x0a, 0x1d, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x54, 0x4f, 0x4f, 0x4c, 0x54, 0x49, 0x50, 0x10, 0x1f, 0x12, + 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, + 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x20, 0x12, + 0x1e, 0x0a, 0x1a, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, + 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x21, 0x12, + 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, + 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, + 0x22, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, + 0x44, 0x42, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x23, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x4e, 0x4f, 0x54, 0x49, + 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x24, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, + 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, + 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, + 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, - 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x25, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, - 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x42, 0x52, 0x49, 0x47, - 0x48, 0x54, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, - 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, - 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, - 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, - 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, - 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, - 0x10, 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, - 0x57, 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, - 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, - 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, - 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, + 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x26, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, + 0x4b, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x27, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, + 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x28, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, + 0x4e, 0x4b, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x29, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, - 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, - 0x41, 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, + 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x2a, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, - 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, - 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, - 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x2b, + 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x52, 0x45, 0x4d, 0x4f, + 0x56, 0x45, 0x10, 0x2c, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x4e, 0x45, + 0x57, 0x10, 0x2d, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, + 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x43, 0x48, 0x41, + 0x4e, 0x47, 0x45, 0x10, 0x2e, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, + 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x52, + 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x2f, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, - 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, - 0x0a, 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, - 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, - 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, - 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, - 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, - 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, - 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, - 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, - 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x56, 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, - 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, - 0x4f, 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, - 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, - 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, - 0x45, 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, - 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, - 0x43, 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x10, 0x3b, 0x12, 0x25, 0x0a, 0x21, 0x45, + 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, 0x10, 0x30, + 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, + 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x49, 0x4e, 0x4b, 0x5f, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x54, + 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x31, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x56, 0x45, 0x4e, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x41, 0x44, 0x4a, 0x55, 0x53, 0x54, + 0x10, 0x32, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, + 0x5f, 0x41, 0x55, 0x44, 0x49, 0x4f, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x4d, 0x55, + 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x47, 0x47, 0x4c, 0x45, 0x10, 0x33, 0x12, 0x19, 0x0a, 0x15, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x55, 0x44, 0x5f, 0x4e, 0x4f, + 0x54, 0x49, 0x46, 0x59, 0x10, 0x34, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x44, 0x42, 0x55, 0x53, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x35, 0x12, 0x23, 0x0a, 0x1f, 0x45, 0x56, 0x45, 0x4e, + 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x4d, 0x4f, 0x56, 0x45, + 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x36, 0x12, 0x20, 0x0a, + 0x1c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, + 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x57, 0x49, 0x4e, 0x44, 0x4f, 0x57, 0x56, 0x32, 0x10, 0x37, 0x12, + 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, + 0x50, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, + 0x43, 0x45, 0x56, 0x32, 0x10, 0x38, 0x12, 0x26, 0x0a, 0x22, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, + 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, + 0x59, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x39, 0x12, 0x1f, + 0x0a, 0x1b, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x48, 0x59, 0x50, + 0x52, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x53, 0x50, 0x41, 0x43, 0x45, 0x56, 0x32, 0x10, 0x3a, 0x12, + 0x13, 0x0a, 0x0f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x45, 0x58, + 0x45, 0x43, 0x10, 0x3b, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, + 0x52, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x10, 0x3c, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, - 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, - 0x10, 0x3c, 0x12, 0x27, 0x0a, 0x23, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, - 0x5f, 0x49, 0x44, 0x4c, 0x45, 0x5f, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, - 0x55, 0x4e, 0x49, 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x10, 0x3d, 0x42, 0xc9, 0x01, 0x0a, 0x16, - 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, - 0x76, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x48, 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x14, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4e, 0x48, 0x49, 0x42, 0x49, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x49, 0x4e, 0x48, 0x49, 0x42, + 0x49, 0x54, 0x10, 0x3d, 0x12, 0x22, 0x0a, 0x1e, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x4b, 0x49, + 0x4e, 0x44, 0x5f, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x5f, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, + 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x3e, 0x42, 0xc9, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, + 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x2f, 0x76, 0x31, 0x3b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, + 0x45, 0x58, 0xaa, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x48, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, + 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3544,87 +3805,92 @@ func file_hyprpanel_event_v1_event_proto_rawDescGZIP() []byte { return file_hyprpanel_event_v1_event_proto_rawDescData } -var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_hyprpanel_event_v1_event_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_hyprpanel_event_v1_event_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_hyprpanel_event_v1_event_proto_goTypes = []interface{}{ (Direction)(0), // 0: hyprpanel.event.v1.Direction (PowerType)(0), // 1: hyprpanel.event.v1.PowerType (PowerState)(0), // 2: hyprpanel.event.v1.PowerState (InhibitTarget)(0), // 3: hyprpanel.event.v1.InhibitTarget - (EventKind)(0), // 4: hyprpanel.event.v1.EventKind - (*HyprWorkspaceV2Value)(nil), // 5: hyprpanel.event.v1.HyprWorkspaceV2Value - (*HyprDestroyWorkspaceV2Value)(nil), // 6: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value - (*HyprCreateWorkspaceV2Value)(nil), // 7: hyprpanel.event.v1.HyprCreateWorkspaceV2Value - (*HyprMoveWindowValue)(nil), // 8: hyprpanel.event.v1.HyprMoveWindowValue - (*HyprMoveWindowV2Value)(nil), // 9: hyprpanel.event.v1.HyprMoveWindowV2Value - (*HyprMoveWorkspaceValue)(nil), // 10: hyprpanel.event.v1.HyprMoveWorkspaceValue - (*HyprMoveWorkspaceV2Value)(nil), // 11: hyprpanel.event.v1.HyprMoveWorkspaceV2Value - (*HyprRenameWorkspaceValue)(nil), // 12: hyprpanel.event.v1.HyprRenameWorkspaceValue - (*HyprActiveWindowValue)(nil), // 13: hyprpanel.event.v1.HyprActiveWindowValue - (*HyprOpenWindowValue)(nil), // 14: hyprpanel.event.v1.HyprOpenWindowValue - (*StatusNotifierValue)(nil), // 15: hyprpanel.event.v1.StatusNotifierValue - (*UpdateTitleValue)(nil), // 16: hyprpanel.event.v1.UpdateTitleValue - (*UpdateTooltipValue)(nil), // 17: hyprpanel.event.v1.UpdateTooltipValue - (*UpdateIconValue)(nil), // 18: hyprpanel.event.v1.UpdateIconValue - (*UpdateStatusValue)(nil), // 19: hyprpanel.event.v1.UpdateStatusValue - (*UpdateMenuValue)(nil), // 20: hyprpanel.event.v1.UpdateMenuValue - (*NotificationValue)(nil), // 21: hyprpanel.event.v1.NotificationValue - (*HudNotificationValue)(nil), // 22: hyprpanel.event.v1.HudNotificationValue - (*AudioSinkChangeValue)(nil), // 23: hyprpanel.event.v1.AudioSinkChangeValue - (*AudioSourceChangeValue)(nil), // 24: hyprpanel.event.v1.AudioSourceChangeValue - (*AudioSinkVolumeAdjust)(nil), // 25: hyprpanel.event.v1.AudioSinkVolumeAdjust - (*AudioSinkMuteToggle)(nil), // 26: hyprpanel.event.v1.AudioSinkMuteToggle - (*AudioSourceVolumeAdjust)(nil), // 27: hyprpanel.event.v1.AudioSourceVolumeAdjust - (*AudioSourceMuteToggle)(nil), // 28: hyprpanel.event.v1.AudioSourceMuteToggle - (*BrightnessChangeValue)(nil), // 29: hyprpanel.event.v1.BrightnessChangeValue - (*BrightnessAdjustValue)(nil), // 30: hyprpanel.event.v1.BrightnessAdjustValue - (*PowerChangeValue)(nil), // 31: hyprpanel.event.v1.PowerChangeValue - (*IdleInhibitorValue)(nil), // 32: hyprpanel.event.v1.IdleInhibitorValue - (*Event)(nil), // 33: hyprpanel.event.v1.Event - (*StatusNotifierValue_Pixmap)(nil), // 34: hyprpanel.event.v1.StatusNotifierValue.Pixmap - (*StatusNotifierValue_Tooltip)(nil), // 35: hyprpanel.event.v1.StatusNotifierValue.Tooltip - (*StatusNotifierValue_Icon)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Icon - (*StatusNotifierValue_Menu)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Menu - (*StatusNotifierValue_Menu_Properties)(nil), // 38: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - (*NotificationValue_Hint)(nil), // 39: hyprpanel.event.v1.NotificationValue.Hint - (*NotificationValue_Action)(nil), // 40: hyprpanel.event.v1.NotificationValue.Action - (*NotificationValue_Pixmap)(nil), // 41: hyprpanel.event.v1.NotificationValue.Pixmap - (v1.Systray_Status)(0), // 42: hyprpanel.module.v1.Systray.Status - (*durationpb.Duration)(nil), // 43: google.protobuf.Duration - (*anypb.Any)(nil), // 44: google.protobuf.Any + (MediaPlayerState)(0), // 4: hyprpanel.event.v1.MediaPlayerState + (EventKind)(0), // 5: hyprpanel.event.v1.EventKind + (*MediaPlayerValueChange)(nil), // 6: hyprpanel.event.v1.MediaPlayerValueChange + (*HyprWorkspaceV2Value)(nil), // 7: hyprpanel.event.v1.HyprWorkspaceV2Value + (*HyprDestroyWorkspaceV2Value)(nil), // 8: hyprpanel.event.v1.HyprDestroyWorkspaceV2Value + (*HyprCreateWorkspaceV2Value)(nil), // 9: hyprpanel.event.v1.HyprCreateWorkspaceV2Value + (*HyprMoveWindowValue)(nil), // 10: hyprpanel.event.v1.HyprMoveWindowValue + (*HyprMoveWindowV2Value)(nil), // 11: hyprpanel.event.v1.HyprMoveWindowV2Value + (*HyprMoveWorkspaceValue)(nil), // 12: hyprpanel.event.v1.HyprMoveWorkspaceValue + (*HyprMoveWorkspaceV2Value)(nil), // 13: hyprpanel.event.v1.HyprMoveWorkspaceV2Value + (*HyprRenameWorkspaceValue)(nil), // 14: hyprpanel.event.v1.HyprRenameWorkspaceValue + (*HyprActiveWindowValue)(nil), // 15: hyprpanel.event.v1.HyprActiveWindowValue + (*HyprOpenWindowValue)(nil), // 16: hyprpanel.event.v1.HyprOpenWindowValue + (*StatusNotifierValue)(nil), // 17: hyprpanel.event.v1.StatusNotifierValue + (*UpdateTitleValue)(nil), // 18: hyprpanel.event.v1.UpdateTitleValue + (*UpdateTooltipValue)(nil), // 19: hyprpanel.event.v1.UpdateTooltipValue + (*UpdateIconValue)(nil), // 20: hyprpanel.event.v1.UpdateIconValue + (*UpdateStatusValue)(nil), // 21: hyprpanel.event.v1.UpdateStatusValue + (*UpdateMenuValue)(nil), // 22: hyprpanel.event.v1.UpdateMenuValue + (*NotificationValue)(nil), // 23: hyprpanel.event.v1.NotificationValue + (*HudNotificationValue)(nil), // 24: hyprpanel.event.v1.HudNotificationValue + (*AudioSinkChangeValue)(nil), // 25: hyprpanel.event.v1.AudioSinkChangeValue + (*AudioSourceChangeValue)(nil), // 26: hyprpanel.event.v1.AudioSourceChangeValue + (*AudioSinkVolumeAdjust)(nil), // 27: hyprpanel.event.v1.AudioSinkVolumeAdjust + (*AudioSinkMuteToggle)(nil), // 28: hyprpanel.event.v1.AudioSinkMuteToggle + (*AudioSourceVolumeAdjust)(nil), // 29: hyprpanel.event.v1.AudioSourceVolumeAdjust + (*AudioSourceMuteToggle)(nil), // 30: hyprpanel.event.v1.AudioSourceMuteToggle + (*BrightnessChangeValue)(nil), // 31: hyprpanel.event.v1.BrightnessChangeValue + (*BrightnessAdjustValue)(nil), // 32: hyprpanel.event.v1.BrightnessAdjustValue + (*PowerChangeValue)(nil), // 33: hyprpanel.event.v1.PowerChangeValue + (*IdleInhibitorValue)(nil), // 34: hyprpanel.event.v1.IdleInhibitorValue + (*Event)(nil), // 35: hyprpanel.event.v1.Event + (*StatusNotifierValue_Pixmap)(nil), // 36: hyprpanel.event.v1.StatusNotifierValue.Pixmap + (*StatusNotifierValue_Tooltip)(nil), // 37: hyprpanel.event.v1.StatusNotifierValue.Tooltip + (*StatusNotifierValue_Icon)(nil), // 38: hyprpanel.event.v1.StatusNotifierValue.Icon + (*StatusNotifierValue_Menu)(nil), // 39: hyprpanel.event.v1.StatusNotifierValue.Menu + (*StatusNotifierValue_Menu_Properties)(nil), // 40: hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + (*NotificationValue_Hint)(nil), // 41: hyprpanel.event.v1.NotificationValue.Hint + (*NotificationValue_Action)(nil), // 42: hyprpanel.event.v1.NotificationValue.Action + (*NotificationValue_Pixmap)(nil), // 43: hyprpanel.event.v1.NotificationValue.Pixmap + (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp + (v1.Systray_Status)(0), // 45: hyprpanel.module.v1.Systray.Status + (*durationpb.Duration)(nil), // 46: google.protobuf.Duration + (*anypb.Any)(nil), // 47: google.protobuf.Any } var file_hyprpanel_event_v1_event_proto_depIdxs = []int32{ - 42, // 0: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 35, // 1: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 36, // 2: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 37, // 3: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 35, // 4: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip - 36, // 5: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon - 42, // 6: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status - 37, // 7: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 40, // 8: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action - 39, // 9: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint - 43, // 10: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration - 0, // 11: hyprpanel.event.v1.AudioSinkVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction - 0, // 12: hyprpanel.event.v1.AudioSourceVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction - 0, // 13: hyprpanel.event.v1.BrightnessAdjustValue.direction:type_name -> hyprpanel.event.v1.Direction - 1, // 14: hyprpanel.event.v1.PowerChangeValue.type:type_name -> hyprpanel.event.v1.PowerType - 43, // 15: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration - 43, // 16: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration - 2, // 17: hyprpanel.event.v1.PowerChangeValue.state:type_name -> hyprpanel.event.v1.PowerState - 3, // 18: hyprpanel.event.v1.IdleInhibitorValue.target:type_name -> hyprpanel.event.v1.InhibitTarget - 4, // 19: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind - 44, // 20: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any - 34, // 21: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 34, // 22: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap - 38, // 23: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties - 37, // 24: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu - 44, // 25: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any - 26, // [26:26] is the sub-list for method output_type - 26, // [26:26] is the sub-list for method input_type - 26, // [26:26] is the sub-list for extension type_name - 26, // [26:26] is the sub-list for extension extendee - 0, // [0:26] is the sub-list for field type_name + 4, // 0: hyprpanel.event.v1.MediaPlayerValueChange.state:type_name -> hyprpanel.event.v1.MediaPlayerState + 44, // 1: hyprpanel.event.v1.MediaPlayerValueChange.updated_at:type_name -> google.protobuf.Timestamp + 45, // 2: hyprpanel.event.v1.StatusNotifierValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 37, // 3: hyprpanel.event.v1.StatusNotifierValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 38, // 4: hyprpanel.event.v1.StatusNotifierValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 39, // 5: hyprpanel.event.v1.StatusNotifierValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 37, // 6: hyprpanel.event.v1.UpdateTooltipValue.tooltip:type_name -> hyprpanel.event.v1.StatusNotifierValue.Tooltip + 38, // 7: hyprpanel.event.v1.UpdateIconValue.icon:type_name -> hyprpanel.event.v1.StatusNotifierValue.Icon + 45, // 8: hyprpanel.event.v1.UpdateStatusValue.status:type_name -> hyprpanel.module.v1.Systray.Status + 39, // 9: hyprpanel.event.v1.UpdateMenuValue.menu:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 42, // 10: hyprpanel.event.v1.NotificationValue.actions:type_name -> hyprpanel.event.v1.NotificationValue.Action + 41, // 11: hyprpanel.event.v1.NotificationValue.hints:type_name -> hyprpanel.event.v1.NotificationValue.Hint + 46, // 12: hyprpanel.event.v1.NotificationValue.timeout:type_name -> google.protobuf.Duration + 0, // 13: hyprpanel.event.v1.AudioSinkVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction + 0, // 14: hyprpanel.event.v1.AudioSourceVolumeAdjust.direction:type_name -> hyprpanel.event.v1.Direction + 0, // 15: hyprpanel.event.v1.BrightnessAdjustValue.direction:type_name -> hyprpanel.event.v1.Direction + 1, // 16: hyprpanel.event.v1.PowerChangeValue.type:type_name -> hyprpanel.event.v1.PowerType + 46, // 17: hyprpanel.event.v1.PowerChangeValue.time_to_empty:type_name -> google.protobuf.Duration + 46, // 18: hyprpanel.event.v1.PowerChangeValue.time_to_full:type_name -> google.protobuf.Duration + 2, // 19: hyprpanel.event.v1.PowerChangeValue.state:type_name -> hyprpanel.event.v1.PowerState + 3, // 20: hyprpanel.event.v1.IdleInhibitorValue.target:type_name -> hyprpanel.event.v1.InhibitTarget + 5, // 21: hyprpanel.event.v1.Event.kind:type_name -> hyprpanel.event.v1.EventKind + 47, // 22: hyprpanel.event.v1.Event.data:type_name -> google.protobuf.Any + 36, // 23: hyprpanel.event.v1.StatusNotifierValue.Tooltip.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 36, // 24: hyprpanel.event.v1.StatusNotifierValue.Icon.icon_pixmap:type_name -> hyprpanel.event.v1.StatusNotifierValue.Pixmap + 40, // 25: hyprpanel.event.v1.StatusNotifierValue.Menu.properties:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu.Properties + 39, // 26: hyprpanel.event.v1.StatusNotifierValue.Menu.children:type_name -> hyprpanel.event.v1.StatusNotifierValue.Menu + 47, // 27: hyprpanel.event.v1.NotificationValue.Hint.value:type_name -> google.protobuf.Any + 28, // [28:28] is the sub-list for method output_type + 28, // [28:28] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_hyprpanel_event_v1_event_proto_init() } @@ -3634,7 +3900,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } if !protoimpl.UnsafeEnabled { file_hyprpanel_event_v1_event_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprWorkspaceV2Value); i { + switch v := v.(*MediaPlayerValueChange); i { case 0: return &v.state case 1: @@ -3646,7 +3912,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprDestroyWorkspaceV2Value); i { + switch v := v.(*HyprWorkspaceV2Value); i { case 0: return &v.state case 1: @@ -3658,7 +3924,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprCreateWorkspaceV2Value); i { + switch v := v.(*HyprDestroyWorkspaceV2Value); i { case 0: return &v.state case 1: @@ -3670,7 +3936,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprMoveWindowValue); i { + switch v := v.(*HyprCreateWorkspaceV2Value); i { case 0: return &v.state case 1: @@ -3682,7 +3948,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprMoveWindowV2Value); i { + switch v := v.(*HyprMoveWindowValue); i { case 0: return &v.state case 1: @@ -3694,7 +3960,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprMoveWorkspaceValue); i { + switch v := v.(*HyprMoveWindowV2Value); i { case 0: return &v.state case 1: @@ -3706,7 +3972,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprMoveWorkspaceV2Value); i { + switch v := v.(*HyprMoveWorkspaceValue); i { case 0: return &v.state case 1: @@ -3718,7 +3984,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprRenameWorkspaceValue); i { + switch v := v.(*HyprMoveWorkspaceV2Value); i { case 0: return &v.state case 1: @@ -3730,7 +3996,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprActiveWindowValue); i { + switch v := v.(*HyprRenameWorkspaceValue); i { case 0: return &v.state case 1: @@ -3742,7 +4008,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HyprOpenWindowValue); i { + switch v := v.(*HyprActiveWindowValue); i { case 0: return &v.state case 1: @@ -3754,7 +4020,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue); i { + switch v := v.(*HyprOpenWindowValue); i { case 0: return &v.state case 1: @@ -3766,7 +4032,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateTitleValue); i { + switch v := v.(*StatusNotifierValue); i { case 0: return &v.state case 1: @@ -3778,7 +4044,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateTooltipValue); i { + switch v := v.(*UpdateTitleValue); i { case 0: return &v.state case 1: @@ -3790,7 +4056,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateIconValue); i { + switch v := v.(*UpdateTooltipValue); i { case 0: return &v.state case 1: @@ -3802,7 +4068,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStatusValue); i { + switch v := v.(*UpdateIconValue); i { case 0: return &v.state case 1: @@ -3814,7 +4080,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateMenuValue); i { + switch v := v.(*UpdateStatusValue); i { case 0: return &v.state case 1: @@ -3826,7 +4092,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue); i { + switch v := v.(*UpdateMenuValue); i { case 0: return &v.state case 1: @@ -3838,7 +4104,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HudNotificationValue); i { + switch v := v.(*NotificationValue); i { case 0: return &v.state case 1: @@ -3850,7 +4116,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSinkChangeValue); i { + switch v := v.(*HudNotificationValue); i { case 0: return &v.state case 1: @@ -3862,7 +4128,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSourceChangeValue); i { + switch v := v.(*AudioSinkChangeValue); i { case 0: return &v.state case 1: @@ -3874,7 +4140,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSinkVolumeAdjust); i { + switch v := v.(*AudioSourceChangeValue); i { case 0: return &v.state case 1: @@ -3886,7 +4152,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSinkMuteToggle); i { + switch v := v.(*AudioSinkVolumeAdjust); i { case 0: return &v.state case 1: @@ -3898,7 +4164,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSourceVolumeAdjust); i { + switch v := v.(*AudioSinkMuteToggle); i { case 0: return &v.state case 1: @@ -3910,7 +4176,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AudioSourceMuteToggle); i { + switch v := v.(*AudioSourceVolumeAdjust); i { case 0: return &v.state case 1: @@ -3922,7 +4188,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BrightnessChangeValue); i { + switch v := v.(*AudioSourceMuteToggle); i { case 0: return &v.state case 1: @@ -3934,7 +4200,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BrightnessAdjustValue); i { + switch v := v.(*BrightnessChangeValue); i { case 0: return &v.state case 1: @@ -3946,7 +4212,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PowerChangeValue); i { + switch v := v.(*BrightnessAdjustValue); i { case 0: return &v.state case 1: @@ -3958,7 +4224,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IdleInhibitorValue); i { + switch v := v.(*PowerChangeValue); i { case 0: return &v.state case 1: @@ -3970,7 +4236,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Event); i { + switch v := v.(*IdleInhibitorValue); i { case 0: return &v.state case 1: @@ -3982,7 +4248,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Pixmap); i { + switch v := v.(*Event); i { case 0: return &v.state case 1: @@ -3994,7 +4260,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Tooltip); i { + switch v := v.(*StatusNotifierValue_Pixmap); i { case 0: return &v.state case 1: @@ -4006,7 +4272,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Icon); i { + switch v := v.(*StatusNotifierValue_Tooltip); i { case 0: return &v.state case 1: @@ -4018,7 +4284,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu); i { + switch v := v.(*StatusNotifierValue_Icon); i { case 0: return &v.state case 1: @@ -4030,7 +4296,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StatusNotifierValue_Menu_Properties); i { + switch v := v.(*StatusNotifierValue_Menu); i { case 0: return &v.state case 1: @@ -4042,7 +4308,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Hint); i { + switch v := v.(*StatusNotifierValue_Menu_Properties); i { case 0: return &v.state case 1: @@ -4054,7 +4320,7 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NotificationValue_Action); i { + switch v := v.(*NotificationValue_Hint); i { case 0: return &v.state case 1: @@ -4066,6 +4332,18 @@ func file_hyprpanel_event_v1_event_proto_init() { } } file_hyprpanel_event_v1_event_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NotificationValue_Action); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_event_v1_event_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotificationValue_Pixmap); i { case 0: return &v.state @@ -4078,13 +4356,14 @@ func file_hyprpanel_event_v1_event_proto_init() { } } } + file_hyprpanel_event_v1_event_proto_msgTypes[0].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_event_v1_event_proto_rawDesc, - NumEnums: 5, - NumMessages: 37, + NumEnums: 6, + NumMessages: 38, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/event/v1/event.proto b/proto/hyprpanel/event/v1/event.proto index 9fa9655..f3d2027 100644 --- a/proto/hyprpanel/event/v1/event.proto +++ b/proto/hyprpanel/event/v1/event.proto @@ -4,6 +4,7 @@ package hyprpanel.event.v1; import "google/protobuf/any.proto"; import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; import "hyprpanel/module/v1/module.proto"; enum Direction { @@ -41,6 +42,13 @@ enum InhibitTarget { INHIBIT_TARGET_SHUTDOWN = 3; } +enum MediaPlayerState { + MEDIA_PLAYER_STATE_UNSPECIFIED = 0; + MEDIA_PLAYER_STATE_PLAYING = 1; + MEDIA_PLAYER_STATE_PAUSED = 2; + MEDIA_PLAYER_STATE_STOPPED = 3; +} + enum EventKind { EVENT_KIND_UNSPECIFIED = 0; EVENT_KIND_HYPR_WORKSPACE = 1; @@ -103,6 +111,24 @@ enum EventKind { EVENT_KIND_EXEC = 59; EVENT_KIND_IDLE_INHIBITOR_INHIBIT = 60; EVENT_KIND_IDLE_INHIBITOR_UNINHIBIT = 61; + EVENT_KIND_MEDIA_PLAYER_CHANGE = 62; +} + +message MediaPlayerValueChange { + MediaPlayerState state = 1; + bool can_go_next = 2; + bool can_go_previous = 3; + string track_id = 4; + google.protobuf.Timestamp updated_at = 5; + optional int64 position_us = 6; + optional int64 length_us = 7; + optional string title = 8; + optional string artist = 9; + optional string album = 10; + optional string desktop_entry = 11; + optional string identity = 12; + optional string art_url = 13; + optional string url = 14; } message HyprWorkspaceV2Value { diff --git a/proto/hyprpanel/module/v1/module.pb.go b/proto/hyprpanel/module/v1/module.pb.go index 8c9cad1..31d2206 100644 --- a/proto/hyprpanel/module/v1/module.pb.go +++ b/proto/hyprpanel/module/v1/module.pb.go @@ -1169,6 +1169,61 @@ func (x *IdleInhibitor) GetDefaultTarget() IdleInhibitor_DefaultTarget { return IdleInhibitor_DEFAULT_TARGET_UNSPECIFIED } +type MediaPlayer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IconSize uint32 `protobuf:"varint,1,opt,name=icon_size,json=iconSize,proto3" json:"icon_size,omitempty"` + IconSymbolic bool `protobuf:"varint,2,opt,name=icon_symbolic,json=iconSymbolic,proto3" json:"icon_symbolic,omitempty"` +} + +func (x *MediaPlayer) Reset() { + *x = MediaPlayer{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MediaPlayer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaPlayer) ProtoMessage() {} + +func (x *MediaPlayer) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] + 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 MediaPlayer.ProtoReflect.Descriptor instead. +func (*MediaPlayer) Descriptor() ([]byte, []int) { + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{12} +} + +func (x *MediaPlayer) GetIconSize() uint32 { + if x != nil { + return x.IconSize + } + return 0 +} + +func (x *MediaPlayer) GetIconSymbolic() bool { + if x != nil { + return x.IconSymbolic + } + return false +} + type Module struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1187,13 +1242,14 @@ type Module struct { // *Module_Session // *Module_Spacer // *Module_IdleInhibitor + // *Module_MediaPlayer Kind isModule_Kind `protobuf_oneof:"kind"` } func (x *Module) Reset() { *x = Module{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1206,7 +1262,7 @@ func (x *Module) String() string { func (*Module) ProtoMessage() {} func (x *Module) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_module_v1_module_proto_msgTypes[12] + mi := &file_hyprpanel_module_v1_module_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1219,7 +1275,7 @@ func (x *Module) ProtoReflect() protoreflect.Message { // Deprecated: Use Module.ProtoReflect.Descriptor instead. func (*Module) Descriptor() ([]byte, []int) { - return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{12} + return file_hyprpanel_module_v1_module_proto_rawDescGZIP(), []int{13} } func (m *Module) GetKind() isModule_Kind { @@ -1306,6 +1362,13 @@ func (x *Module) GetIdleInhibitor() *IdleInhibitor { return nil } +func (x *Module) GetMediaPlayer() *MediaPlayer { + if x, ok := x.GetKind().(*Module_MediaPlayer); ok { + return x.MediaPlayer + } + return nil +} + type isModule_Kind interface { isModule_Kind() } @@ -1354,6 +1417,10 @@ type Module_IdleInhibitor struct { IdleInhibitor *IdleInhibitor `protobuf:"bytes,11,opt,name=idle_inhibitor,json=idleInhibitor,proto3,oneof"` } +type Module_MediaPlayer struct { + MediaPlayer *MediaPlayer `protobuf:"bytes,12,opt,name=media_player,json=mediaPlayer,proto3,oneof"` +} + func (*Module_Pager) isModule_Kind() {} func (*Module_Taskbar) isModule_Kind() {} @@ -1376,6 +1443,8 @@ func (*Module_Spacer) isModule_Kind() {} func (*Module_IdleInhibitor) isModule_Kind() {} +func (*Module_MediaPlayer) isModule_Kind() {} + var File_hyprpanel_module_v1_module_proto protoreflect.FileDescriptor var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ @@ -1565,76 +1634,86 @@ var file_hyprpanel_module_v1_module_proto_rawDesc = []byte{ 0x16, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x53, 0x48, 0x55, 0x54, - 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x22, 0x8c, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, 0x6c, - 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, - 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, 0x12, - 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, 0x00, - 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, 0x03, - 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, 0x00, - 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, 0x63, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, + 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x22, 0x4f, 0x0a, 0x0b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x63, 0x6f, 0x6e, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x69, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x63, 0x6f, 0x6e, 0x53, + 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x69, 0x63, 0x22, 0xd3, 0x05, 0x0a, 0x06, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, + 0x05, 0x70, 0x61, 0x67, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, + 0x73, 0x6b, 0x62, 0x61, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x62, 0x61, 0x72, + 0x12, 0x38, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x0d, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x0d, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x03, 0x68, 0x75, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x75, 0x64, 0x48, 0x00, 0x52, + 0x03, 0x68, 0x75, 0x64, 0x12, 0x32, 0x0a, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x48, + 0x00, 0x52, 0x05, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x12, 0x32, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x05, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x48, 0x00, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x12, - 0x38, 0x0a, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x72, 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, + 0x74, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x70, 0x61, 0x63, 0x65, 0x72, - 0x12, 0x4b, 0x0a, 0x0e, 0x69, 0x64, 0x6c, 0x65, 0x5f, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, - 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0d, - 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x42, 0x06, 0x0a, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x46, - 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, - 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, - 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, - 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, - 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, - 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x50, - 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, 0x12, 0x13, - 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, - 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, - 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, - 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x4d, - 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, - 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, + 0x0d, 0x69, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x45, + 0x0a, 0x0c, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0xeb, 0x01, + 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x46, 0x54, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, + 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x02, 0x12, 0x16, 0x0a, + 0x12, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x52, 0x49, + 0x47, 0x48, 0x54, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x49, 0x47, 0x48, 0x54, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x53, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x52, 0x49, 0x47, + 0x48, 0x54, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4f, 0x53, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x5f, 0x4c, 0x45, 0x46, + 0x54, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x4c, 0x45, 0x46, 0x54, 0x10, 0x08, 0x12, 0x13, 0x0a, 0x0f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x10, 0x09, 0x42, 0xd1, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x4d, 0x58, 0xaa, 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x13, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x5c, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1650,7 +1729,7 @@ func file_hyprpanel_module_v1_module_proto_rawDescGZIP() []byte { } var file_hyprpanel_module_v1_module_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_hyprpanel_module_v1_module_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ (Position)(0), // 0: hyprpanel.module.v1.Position (Systray_Status)(0), // 1: hyprpanel.module.v1.Systray.Status @@ -1667,16 +1746,17 @@ var file_hyprpanel_module_v1_module_proto_goTypes = []interface{}{ (*Spacer)(nil), // 12: hyprpanel.module.v1.Spacer (*SystrayModule)(nil), // 13: hyprpanel.module.v1.SystrayModule (*IdleInhibitor)(nil), // 14: hyprpanel.module.v1.IdleInhibitor - (*Module)(nil), // 15: hyprpanel.module.v1.Module - (*durationpb.Duration)(nil), // 16: google.protobuf.Duration + (*MediaPlayer)(nil), // 15: hyprpanel.module.v1.MediaPlayer + (*Module)(nil), // 16: hyprpanel.module.v1.Module + (*durationpb.Duration)(nil), // 17: google.protobuf.Duration } var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 1, // 0: hyprpanel.module.v1.Systray.auto_hide_statuses:type_name -> hyprpanel.module.v1.Systray.Status - 16, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration + 17, // 1: hyprpanel.module.v1.Systray.auto_hide_delay:type_name -> google.protobuf.Duration 13, // 2: hyprpanel.module.v1.Systray.modules:type_name -> hyprpanel.module.v1.SystrayModule - 16, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration + 17, // 3: hyprpanel.module.v1.Notifications.default_timeout:type_name -> google.protobuf.Duration 0, // 4: hyprpanel.module.v1.Notifications.position:type_name -> hyprpanel.module.v1.Position - 16, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration + 17, // 5: hyprpanel.module.v1.Hud.timeout:type_name -> google.protobuf.Duration 0, // 6: hyprpanel.module.v1.Hud.position:type_name -> hyprpanel.module.v1.Position 9, // 7: hyprpanel.module.v1.SystrayModule.audio:type_name -> hyprpanel.module.v1.Audio 10, // 8: hyprpanel.module.v1.SystrayModule.power:type_name -> hyprpanel.module.v1.Power @@ -1692,11 +1772,12 @@ var file_hyprpanel_module_v1_module_proto_depIdxs = []int32{ 11, // 18: hyprpanel.module.v1.Module.session:type_name -> hyprpanel.module.v1.Session 12, // 19: hyprpanel.module.v1.Module.spacer:type_name -> hyprpanel.module.v1.Spacer 14, // 20: hyprpanel.module.v1.Module.idle_inhibitor:type_name -> hyprpanel.module.v1.IdleInhibitor - 21, // [21:21] is the sub-list for method output_type - 21, // [21:21] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 15, // 21: hyprpanel.module.v1.Module.media_player:type_name -> hyprpanel.module.v1.MediaPlayer + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_hyprpanel_module_v1_module_proto_init() } @@ -1850,6 +1931,18 @@ func file_hyprpanel_module_v1_module_proto_init() { } } file_hyprpanel_module_v1_module_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MediaPlayer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_module_v1_module_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Module); i { case 0: return &v.state @@ -1866,7 +1959,7 @@ func file_hyprpanel_module_v1_module_proto_init() { (*SystrayModule_Audio)(nil), (*SystrayModule_Power)(nil), } - file_hyprpanel_module_v1_module_proto_msgTypes[12].OneofWrappers = []interface{}{ + file_hyprpanel_module_v1_module_proto_msgTypes[13].OneofWrappers = []interface{}{ (*Module_Pager)(nil), (*Module_Taskbar)(nil), (*Module_Systray)(nil), @@ -1878,6 +1971,7 @@ func file_hyprpanel_module_v1_module_proto_init() { (*Module_Session)(nil), (*Module_Spacer)(nil), (*Module_IdleInhibitor)(nil), + (*Module_MediaPlayer)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1885,7 +1979,7 @@ func file_hyprpanel_module_v1_module_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_module_v1_module_proto_rawDesc, NumEnums: 3, - NumMessages: 13, + NumMessages: 14, NumExtensions: 0, NumServices: 0, }, diff --git a/proto/hyprpanel/module/v1/module.proto b/proto/hyprpanel/module/v1/module.proto index 3a13444..592c1fa 100644 --- a/proto/hyprpanel/module/v1/module.proto +++ b/proto/hyprpanel/module/v1/module.proto @@ -129,6 +129,11 @@ message IdleInhibitor { DefaultTarget default_target = 3; // default inhibit target for left click action. } +message MediaPlayer { + uint32 icon_size = 1; + bool icon_symbolic = 2; +} + message Module { oneof kind { Pager pager = 1; @@ -142,5 +147,6 @@ message Module { Session session = 9; Spacer spacer = 10; IdleInhibitor idle_inhibitor = 11; + MediaPlayer media_player = 12; } } diff --git a/proto/hyprpanel/v1/hyprpanel.pb.go b/proto/hyprpanel/v1/hyprpanel.pb.go index f481824..a1c9404 100644 --- a/proto/hyprpanel/v1/hyprpanel.pb.go +++ b/proto/hyprpanel/v1/hyprpanel.pb.go @@ -2349,6 +2349,184 @@ func (x *HostServiceCaptureFrameResponse) GetImage() *ImageNRGBA { return nil } +type HostServiceMediaPlayerRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HostServiceMediaPlayerRequest) Reset() { + *x = HostServiceMediaPlayerRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceMediaPlayerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceMediaPlayerRequest) ProtoMessage() {} + +func (x *HostServiceMediaPlayerRequest) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceMediaPlayerRequest.ProtoReflect.Descriptor instead. +func (*HostServiceMediaPlayerRequest) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{44} +} + +type HostServiceMediaPlayerSeekRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OffsetUs int64 `protobuf:"varint,1,opt,name=offset_us,json=offsetUs,proto3" json:"offset_us,omitempty"` +} + +func (x *HostServiceMediaPlayerSeekRequest) Reset() { + *x = HostServiceMediaPlayerSeekRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceMediaPlayerSeekRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceMediaPlayerSeekRequest) ProtoMessage() {} + +func (x *HostServiceMediaPlayerSeekRequest) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceMediaPlayerSeekRequest.ProtoReflect.Descriptor instead. +func (*HostServiceMediaPlayerSeekRequest) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{45} +} + +func (x *HostServiceMediaPlayerSeekRequest) GetOffsetUs() int64 { + if x != nil { + return x.OffsetUs + } + return 0 +} + +type HostServiceMediaPlayerSetPostionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TrackId string `protobuf:"bytes,1,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` + PositionUs int64 `protobuf:"varint,2,opt,name=position_us,json=positionUs,proto3" json:"position_us,omitempty"` +} + +func (x *HostServiceMediaPlayerSetPostionRequest) Reset() { + *x = HostServiceMediaPlayerSetPostionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceMediaPlayerSetPostionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceMediaPlayerSetPostionRequest) ProtoMessage() {} + +func (x *HostServiceMediaPlayerSetPostionRequest) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceMediaPlayerSetPostionRequest.ProtoReflect.Descriptor instead. +func (*HostServiceMediaPlayerSetPostionRequest) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{46} +} + +func (x *HostServiceMediaPlayerSetPostionRequest) GetTrackId() string { + if x != nil { + return x.TrackId + } + return "" +} + +func (x *HostServiceMediaPlayerSetPostionRequest) GetPositionUs() int64 { + if x != nil { + return x.PositionUs + } + return 0 +} + +type HostServiceMediaPlayerResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *HostServiceMediaPlayerResponse) Reset() { + *x = HostServiceMediaPlayerResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HostServiceMediaPlayerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostServiceMediaPlayerResponse) ProtoMessage() {} + +func (x *HostServiceMediaPlayerResponse) ProtoReflect() protoreflect.Message { + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostServiceMediaPlayerResponse.ProtoReflect.Descriptor instead. +func (*HostServiceMediaPlayerResponse) Descriptor() ([]byte, []int) { + return file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP(), []int{47} +} + type AppInfo_Action struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2363,7 +2541,7 @@ type AppInfo_Action struct { func (x *AppInfo_Action) Reset() { *x = AppInfo_Action{} if protoimpl.UnsafeEnabled { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2376,7 +2554,7 @@ func (x *AppInfo_Action) String() string { func (*AppInfo_Action) ProtoMessage() {} func (x *AppInfo_Action) ProtoReflect() protoreflect.Message { - mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[44] + mi := &file_hyprpanel_v1_hyprpanel_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2656,208 +2834,280 @@ var file_hyprpanel_v1_hyprpanel_proto_rawDesc = []byte{ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x52, 0x47, 0x42, 0x41, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, - 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, - 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, - 0x45, 0x52, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, - 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, - 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, - 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, - 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, - 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x43, 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, - 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x48, 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, - 0x18, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, - 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, + 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x1f, 0x0a, 0x1d, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x21, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x53, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x55, 0x73, 0x22, 0x65, 0x0a, 0x27, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, + 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, + 0x73, 0x22, 0x20, 0x0a, 0x1e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2a, 0x9a, 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, + 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, + 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, + 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x54, 0x49, + 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, + 0x5f, 0x53, 0x43, 0x52, 0x4f, 0x4c, 0x4c, 0x5f, 0x4f, 0x52, 0x49, 0x45, 0x4e, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x4f, 0x4e, 0x54, 0x41, 0x4c, 0x10, 0x02, + 0x2a, 0x76, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x59, 0x53, 0x54, 0x52, 0x41, 0x59, 0x5f, + 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x43, + 0x4c, 0x49, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x59, 0x53, 0x54, + 0x52, 0x41, 0x59, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x48, + 0x4f, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xbf, 0x01, 0x0a, 0x18, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x26, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, - 0x24, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, - 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, - 0x49, 0x53, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, - 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, - 0x02, 0x0a, 0x0c, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x55, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, - 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, - 0x12, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, - 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, + 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x4e, 0x4f, 0x54, + 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x4d, 0x49, 0x53, 0x53, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x32, 0x9c, 0x02, 0x0a, 0x0c, 0x50, + 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x04, 0x49, + 0x6e, 0x69, 0x74, 0x12, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x68, 0x79, 0x70, + 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, - 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xe5, 0x11, - 0x0a, 0x0b, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, - 0x04, 0x45, 0x78, 0x65, 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, - 0x01, 0x0a, 0x18, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x6e, 0x0a, 0x0d, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, - 0x6c, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x26, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x6e, 0x65, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf4, 0x18, 0x0a, 0x0b, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x53, 0x0a, 0x04, 0x45, 0x78, 0x65, + 0x63, 0x12, 0x24, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x45, 0x78, 0x65, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, + 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6e, + 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x0f, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x18, 0x53, + 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x39, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, - 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, - 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x95, 0x01, 0x0a, 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, - 0x3a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, - 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, - 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, + 0x72, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x0d, + 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x12, 0x2d, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, + 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x53, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x95, 0x01, 0x0a, + 0x1a, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, - 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, - 0x68, 0x6f, 0x77, 0x12, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, - 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, - 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, - 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, - 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, - 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, - 0x12, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, - 0x73, 0x65, 0x64, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, + 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x12, + 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, + 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x41, 0x62, 0x6f, + 0x75, 0x74, 0x54, 0x6f, 0x53, 0x68, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x77, 0x0a, 0x10, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, + 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x79, 0x73, 0x74, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x6e, 0x75, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x12, + 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6c, - 0x6f, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, - 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x12, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, + 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, + 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, - 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, - 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, - 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, - 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x12, 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, - 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, - 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, + 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x80, 0x01, 0x0a, 0x13, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, + 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, 0x6b, 0x4d, 0x75, 0x74, 0x65, + 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x69, 0x6e, + 0x6b, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x17, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, + 0x37, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x15, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x12, 0x35, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, - 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, - 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x77, 0x0a, 0x10, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, - 0x75, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, + 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, + 0x64, 0x69, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x67, + 0x67, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x10, 0x42, + 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x12, + 0x30, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x42, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x75, 0x0a, 0x14, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, + 0x6f, 0x72, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x16, 0x49, 0x64, 0x6c, 0x65, + 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x69, 0x6e, 0x68, 0x69, 0x62, + 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, + 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, + 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x71, 0x0a, 0x14, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x6c, 0x61, 0x79, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, + 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x14, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, - 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, - 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, - 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, - 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, - 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x16, - 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x55, 0x6e, 0x69, - 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x12, 0x2d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x79, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, + 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x10, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, - 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x64, 0x6c, 0x65, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, - 0x6e, 0x65, 0x6c, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, - 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, - 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, - 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, + 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x6c, 0x0a, 0x0f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6c, 0x0a, 0x0f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4e, 0x65, + 0x78, 0x74, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, + 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, + 0x13, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x65, 0x76, + 0x69, 0x6f, 0x75, 0x73, 0x12, 0x2b, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, + 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x70, 0x0a, 0x0f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, + 0x65, 0x6b, 0x12, 0x2f, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x65, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, + 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x7d, 0x0a, 0x16, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x68, 0x79, + 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x64, + 0x69, 0x61, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0xac, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x64, 0x66, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x48, 0x58, 0x58, 0xaa, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, + 0x65, 0x6c, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, + 0x6c, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x0d, 0x48, 0x79, 0x70, 0x72, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2873,7 +3123,7 @@ func file_hyprpanel_v1_hyprpanel_proto_rawDescGZIP() []byte { } var file_hyprpanel_v1_hyprpanel_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 45) +var file_hyprpanel_v1_hyprpanel_proto_msgTypes = make([]protoimpl.MessageInfo, 49) var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (SystrayScrollOrientation)(0), // 0: hyprpanel.v1.SystrayScrollOrientation (SystrayMenuEvent)(0), // 1: hyprpanel.v1.SystrayMenuEvent @@ -2922,29 +3172,33 @@ var file_hyprpanel_v1_hyprpanel_proto_goTypes = []interface{}{ (*HostServiceIdleInhibitorRequest)(nil), // 44: hyprpanel.v1.HostServiceIdleInhibitorRequest (*HostServiceIdleInhibitorResponse)(nil), // 45: hyprpanel.v1.HostServiceIdleInhibitorResponse (*HostServiceCaptureFrameResponse)(nil), // 46: hyprpanel.v1.HostServiceCaptureFrameResponse - (*AppInfo_Action)(nil), // 47: hyprpanel.v1.AppInfo.Action - (v1.LogLevel)(0), // 48: hyprpanel.config.v1.LogLevel - (*v1.Panel)(nil), // 49: hyprpanel.config.v1.Panel - (*v11.Event)(nil), // 50: hyprpanel.event.v1.Event - (*anypb.Any)(nil), // 51: google.protobuf.Any - (v11.Direction)(0), // 52: hyprpanel.event.v1.Direction - (v11.InhibitTarget)(0), // 53: hyprpanel.event.v1.InhibitTarget + (*HostServiceMediaPlayerRequest)(nil), // 47: hyprpanel.v1.HostServiceMediaPlayerRequest + (*HostServiceMediaPlayerSeekRequest)(nil), // 48: hyprpanel.v1.HostServiceMediaPlayerSeekRequest + (*HostServiceMediaPlayerSetPostionRequest)(nil), // 49: hyprpanel.v1.HostServiceMediaPlayerSetPostionRequest + (*HostServiceMediaPlayerResponse)(nil), // 50: hyprpanel.v1.HostServiceMediaPlayerResponse + (*AppInfo_Action)(nil), // 51: hyprpanel.v1.AppInfo.Action + (v1.LogLevel)(0), // 52: hyprpanel.config.v1.LogLevel + (*v1.Panel)(nil), // 53: hyprpanel.config.v1.Panel + (*v11.Event)(nil), // 54: hyprpanel.event.v1.Event + (*anypb.Any)(nil), // 55: google.protobuf.Any + (v11.Direction)(0), // 56: hyprpanel.event.v1.Direction + (v11.InhibitTarget)(0), // 57: hyprpanel.event.v1.InhibitTarget } var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ - 47, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action - 48, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel - 49, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel - 50, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event - 47, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action + 51, // 0: hyprpanel.v1.AppInfo.actions:type_name -> hyprpanel.v1.AppInfo.Action + 52, // 1: hyprpanel.v1.PanelServiceInitRequest.log_level:type_name -> hyprpanel.config.v1.LogLevel + 53, // 2: hyprpanel.v1.PanelServiceInitRequest.config:type_name -> hyprpanel.config.v1.Panel + 54, // 3: hyprpanel.v1.PanelServiceNotifyRequest.event:type_name -> hyprpanel.event.v1.Event + 51, // 4: hyprpanel.v1.HostServiceExecRequest.action:type_name -> hyprpanel.v1.AppInfo.Action 4, // 5: hyprpanel.v1.HostServiceFindApplicationResponse.app_info:type_name -> hyprpanel.v1.AppInfo 0, // 6: hyprpanel.v1.HostServiceSystrayScrollRequest.orientation:type_name -> hyprpanel.v1.SystrayScrollOrientation 1, // 7: hyprpanel.v1.HostServiceSystrayMenuEventRequest.event_id:type_name -> hyprpanel.v1.SystrayMenuEvent - 51, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any + 55, // 8: hyprpanel.v1.HostServiceSystrayMenuEventRequest.data:type_name -> google.protobuf.Any 2, // 9: hyprpanel.v1.HostServiceNotificationClosedRequest.reason:type_name -> hyprpanel.v1.NotificationClosedReason - 52, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 52, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 52, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction - 53, // 13: hyprpanel.v1.HostServiceIdleInhibitorRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget + 56, // 10: hyprpanel.v1.HostServiceAudioSinkVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 56, // 11: hyprpanel.v1.HostServiceAudioSourceVolumeAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 56, // 12: hyprpanel.v1.HostServiceBrightnessAdjustRequest.direction:type_name -> hyprpanel.event.v1.Direction + 57, // 13: hyprpanel.v1.HostServiceIdleInhibitorRequest.target:type_name -> hyprpanel.event.v1.InhibitTarget 3, // 14: hyprpanel.v1.HostServiceCaptureFrameResponse.image:type_name -> hyprpanel.v1.ImageNRGBA 5, // 15: hyprpanel.v1.PanelService.Init:input_type -> hyprpanel.v1.PanelServiceInitRequest 7, // 16: hyprpanel.v1.PanelService.Notify:input_type -> hyprpanel.v1.PanelServiceNotifyRequest @@ -2967,29 +3221,45 @@ var file_hyprpanel_v1_hyprpanel_proto_depIdxs = []int32{ 43, // 33: hyprpanel.v1.HostService.CaptureFrame:input_type -> hyprpanel.v1.HostServiceCaptureFrameRequest 44, // 34: hyprpanel.v1.HostService.IdleInhibitorInhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest 44, // 35: hyprpanel.v1.HostService.IdleInhibitorUninhibit:input_type -> hyprpanel.v1.HostServiceIdleInhibitorRequest - 6, // 36: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse - 8, // 37: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse - 12, // 38: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse - 14, // 39: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse - 16, // 40: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse - 18, // 41: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse - 20, // 42: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse - 22, // 43: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse - 24, // 44: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse - 26, // 45: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse - 28, // 46: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse - 30, // 47: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse - 32, // 48: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse - 34, // 49: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse - 36, // 50: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse - 38, // 51: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse - 40, // 52: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse - 42, // 53: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse - 46, // 54: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse - 45, // 55: hyprpanel.v1.HostService.IdleInhibitorInhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse - 45, // 56: hyprpanel.v1.HostService.IdleInhibitorUninhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse - 36, // [36:57] is the sub-list for method output_type - 15, // [15:36] is the sub-list for method input_type + 47, // 36: hyprpanel.v1.HostService.MediaPlayerPlayPause:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 47, // 37: hyprpanel.v1.HostService.MediaPlayerPlay:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 47, // 38: hyprpanel.v1.HostService.MediaPlayerPause:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 47, // 39: hyprpanel.v1.HostService.MediaPlayerStop:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 47, // 40: hyprpanel.v1.HostService.MediaPlayerNext:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 47, // 41: hyprpanel.v1.HostService.MediaPlayerPrevious:input_type -> hyprpanel.v1.HostServiceMediaPlayerRequest + 48, // 42: hyprpanel.v1.HostService.MediaPlayerSeek:input_type -> hyprpanel.v1.HostServiceMediaPlayerSeekRequest + 49, // 43: hyprpanel.v1.HostService.MediaPlayerSetPosition:input_type -> hyprpanel.v1.HostServiceMediaPlayerSetPostionRequest + 6, // 44: hyprpanel.v1.PanelService.Init:output_type -> hyprpanel.v1.PanelServiceInitResponse + 8, // 45: hyprpanel.v1.PanelService.Notify:output_type -> hyprpanel.v1.PanelServiceNotifyResponse + 12, // 46: hyprpanel.v1.PanelService.Close:output_type -> hyprpanel.v1.PanelServiceCloseResponse + 14, // 47: hyprpanel.v1.HostService.Exec:output_type -> hyprpanel.v1.HostServiceExecResponse + 16, // 48: hyprpanel.v1.HostService.FindApplication:output_type -> hyprpanel.v1.HostServiceFindApplicationResponse + 18, // 49: hyprpanel.v1.HostService.SystrayActivate:output_type -> hyprpanel.v1.HostServiceSystrayActivateResponse + 20, // 50: hyprpanel.v1.HostService.SystraySecondaryActivate:output_type -> hyprpanel.v1.HostServiceSystraySecondaryActivateResponse + 22, // 51: hyprpanel.v1.HostService.SystrayScroll:output_type -> hyprpanel.v1.HostServiceSystrayScrollResponse + 24, // 52: hyprpanel.v1.HostService.SystrayMenuContextActivate:output_type -> hyprpanel.v1.HostServiceSystrayMenuContextActivateResponse + 26, // 53: hyprpanel.v1.HostService.SystrayMenuAboutToShow:output_type -> hyprpanel.v1.HostServiceSystrayMenuAboutToShowResponse + 28, // 54: hyprpanel.v1.HostService.SystrayMenuEvent:output_type -> hyprpanel.v1.HostServiceSystrayMenuEventResponse + 30, // 55: hyprpanel.v1.HostService.NotificationClosed:output_type -> hyprpanel.v1.HostServiceNotificationClosedResponse + 32, // 56: hyprpanel.v1.HostService.NotificationAction:output_type -> hyprpanel.v1.HostServiceNotificationActionResponse + 34, // 57: hyprpanel.v1.HostService.AudioSinkVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSinkVolumeAdjustResponse + 36, // 58: hyprpanel.v1.HostService.AudioSinkMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSinkMuteToggleResponse + 38, // 59: hyprpanel.v1.HostService.AudioSourceVolumeAdjust:output_type -> hyprpanel.v1.HostServiceAudioSourceVolumeAdjustResponse + 40, // 60: hyprpanel.v1.HostService.AudioSourceMuteToggle:output_type -> hyprpanel.v1.HostServiceAudioSourceMuteToggleResponse + 42, // 61: hyprpanel.v1.HostService.BrightnessAdjust:output_type -> hyprpanel.v1.HostServiceBrightnessAdjustResponse + 46, // 62: hyprpanel.v1.HostService.CaptureFrame:output_type -> hyprpanel.v1.HostServiceCaptureFrameResponse + 45, // 63: hyprpanel.v1.HostService.IdleInhibitorInhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 45, // 64: hyprpanel.v1.HostService.IdleInhibitorUninhibit:output_type -> hyprpanel.v1.HostServiceIdleInhibitorResponse + 50, // 65: hyprpanel.v1.HostService.MediaPlayerPlayPause:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 66: hyprpanel.v1.HostService.MediaPlayerPlay:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 67: hyprpanel.v1.HostService.MediaPlayerPause:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 68: hyprpanel.v1.HostService.MediaPlayerStop:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 69: hyprpanel.v1.HostService.MediaPlayerNext:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 70: hyprpanel.v1.HostService.MediaPlayerPrevious:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 71: hyprpanel.v1.HostService.MediaPlayerSeek:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 50, // 72: hyprpanel.v1.HostService.MediaPlayerSetPosition:output_type -> hyprpanel.v1.HostServiceMediaPlayerResponse + 44, // [44:73] is the sub-list for method output_type + 15, // [15:44] is the sub-list for method input_type 15, // [15:15] is the sub-list for extension type_name 15, // [15:15] is the sub-list for extension extendee 0, // [0:15] is the sub-list for field type_name @@ -3530,6 +3800,54 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { } } file_hyprpanel_v1_hyprpanel_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceMediaPlayerRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceMediaPlayerSeekRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceMediaPlayerSetPostionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HostServiceMediaPlayerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hyprpanel_v1_hyprpanel_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AppInfo_Action); i { case 0: return &v.state @@ -3548,7 +3866,7 @@ func file_hyprpanel_v1_hyprpanel_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hyprpanel_v1_hyprpanel_proto_rawDesc, NumEnums: 3, - NumMessages: 45, + NumMessages: 49, NumExtensions: 0, NumServices: 2, }, diff --git a/proto/hyprpanel/v1/hyprpanel.proto b/proto/hyprpanel/v1/hyprpanel.proto index d285369..a0a1792 100644 --- a/proto/hyprpanel/v1/hyprpanel.proto +++ b/proto/hyprpanel/v1/hyprpanel.proto @@ -191,6 +191,19 @@ message HostServiceCaptureFrameResponse { ImageNRGBA image = 1; } +message HostServiceMediaPlayerRequest {} + +message HostServiceMediaPlayerSeekRequest { + int64 offset_us = 1; +} + +message HostServiceMediaPlayerSetPostionRequest { + string track_id = 1; + int64 position_us = 2; +} + +message HostServiceMediaPlayerResponse {} + service HostService { rpc Exec(HostServiceExecRequest) returns (HostServiceExecResponse); rpc FindApplication(HostServiceFindApplicationRequest) returns (HostServiceFindApplicationResponse); @@ -210,4 +223,12 @@ service HostService { rpc CaptureFrame(HostServiceCaptureFrameRequest) returns (HostServiceCaptureFrameResponse); rpc IdleInhibitorInhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); rpc IdleInhibitorUninhibit(HostServiceIdleInhibitorRequest) returns (HostServiceIdleInhibitorResponse); + rpc MediaPlayerPlayPause(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerPlay(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerPause(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerStop(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerNext(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerPrevious(HostServiceMediaPlayerRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerSeek(HostServiceMediaPlayerSeekRequest) returns (HostServiceMediaPlayerResponse); + rpc MediaPlayerSetPosition(HostServiceMediaPlayerSetPostionRequest) returns (HostServiceMediaPlayerResponse); } diff --git a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go index 83fe347..a4942f1 100644 --- a/proto/hyprpanel/v1/hyprpanel_grpc.pb.go +++ b/proto/hyprpanel/v1/hyprpanel_grpc.pb.go @@ -201,6 +201,14 @@ const ( HostService_CaptureFrame_FullMethodName = "/hyprpanel.v1.HostService/CaptureFrame" HostService_IdleInhibitorInhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorInhibit" HostService_IdleInhibitorUninhibit_FullMethodName = "/hyprpanel.v1.HostService/IdleInhibitorUninhibit" + HostService_MediaPlayerPlayPause_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerPlayPause" + HostService_MediaPlayerPlay_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerPlay" + HostService_MediaPlayerPause_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerPause" + HostService_MediaPlayerStop_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerStop" + HostService_MediaPlayerNext_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerNext" + HostService_MediaPlayerPrevious_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerPrevious" + HostService_MediaPlayerSeek_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerSeek" + HostService_MediaPlayerSetPosition_FullMethodName = "/hyprpanel.v1.HostService/MediaPlayerSetPosition" ) // HostServiceClient is the client API for HostService service. @@ -225,6 +233,14 @@ type HostServiceClient interface { CaptureFrame(ctx context.Context, in *HostServiceCaptureFrameRequest, opts ...grpc.CallOption) (*HostServiceCaptureFrameResponse, error) IdleInhibitorInhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) IdleInhibitorUninhibit(ctx context.Context, in *HostServiceIdleInhibitorRequest, opts ...grpc.CallOption) (*HostServiceIdleInhibitorResponse, error) + MediaPlayerPlayPause(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPlay(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPause(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerStop(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerNext(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPrevious(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerSeek(ctx context.Context, in *HostServiceMediaPlayerSeekRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) + MediaPlayerSetPosition(ctx context.Context, in *HostServiceMediaPlayerSetPostionRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) } type hostServiceClient struct { @@ -397,6 +413,78 @@ func (c *hostServiceClient) IdleInhibitorUninhibit(ctx context.Context, in *Host return out, nil } +func (c *hostServiceClient) MediaPlayerPlayPause(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerPlayPause_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerPlay(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerPlay_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerPause(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerPause_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerStop(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerStop_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerNext(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerNext_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerPrevious(ctx context.Context, in *HostServiceMediaPlayerRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerPrevious_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerSeek(ctx context.Context, in *HostServiceMediaPlayerSeekRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerSeek_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hostServiceClient) MediaPlayerSetPosition(ctx context.Context, in *HostServiceMediaPlayerSetPostionRequest, opts ...grpc.CallOption) (*HostServiceMediaPlayerResponse, error) { + out := new(HostServiceMediaPlayerResponse) + err := c.cc.Invoke(ctx, HostService_MediaPlayerSetPosition_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // HostServiceServer is the server API for HostService service. // All implementations must embed UnimplementedHostServiceServer // for forward compatibility @@ -419,6 +507,14 @@ type HostServiceServer interface { CaptureFrame(context.Context, *HostServiceCaptureFrameRequest) (*HostServiceCaptureFrameResponse, error) IdleInhibitorInhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) + MediaPlayerPlayPause(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPlay(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPause(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerStop(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerNext(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerPrevious(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerSeek(context.Context, *HostServiceMediaPlayerSeekRequest) (*HostServiceMediaPlayerResponse, error) + MediaPlayerSetPosition(context.Context, *HostServiceMediaPlayerSetPostionRequest) (*HostServiceMediaPlayerResponse, error) mustEmbedUnimplementedHostServiceServer() } @@ -480,6 +576,30 @@ func (UnimplementedHostServiceServer) IdleInhibitorInhibit(context.Context, *Hos func (UnimplementedHostServiceServer) IdleInhibitorUninhibit(context.Context, *HostServiceIdleInhibitorRequest) (*HostServiceIdleInhibitorResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method IdleInhibitorUninhibit not implemented") } +func (UnimplementedHostServiceServer) MediaPlayerPlayPause(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerPlayPause not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerPlay(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerPlay not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerPause(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerPause not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerStop(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerStop not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerNext(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerNext not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerPrevious(context.Context, *HostServiceMediaPlayerRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerPrevious not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerSeek(context.Context, *HostServiceMediaPlayerSeekRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerSeek not implemented") +} +func (UnimplementedHostServiceServer) MediaPlayerSetPosition(context.Context, *HostServiceMediaPlayerSetPostionRequest) (*HostServiceMediaPlayerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MediaPlayerSetPosition not implemented") +} func (UnimplementedHostServiceServer) mustEmbedUnimplementedHostServiceServer() {} // UnsafeHostServiceServer may be embedded to opt out of forward compatibility for this service. @@ -817,6 +937,150 @@ func _HostService_IdleInhibitorUninhibit_Handler(srv interface{}, ctx context.Co return interceptor(ctx, in, info, handler) } +func _HostService_MediaPlayerPlayPause_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerPlayPause(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerPlayPause_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerPlayPause(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerPlay_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerPlay(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerPlay_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerPlay(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerPause_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerPause(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerPause_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerPause(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerStop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerStop(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerStop_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerStop(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerNext_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerNext(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerNext_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerNext(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerPrevious_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerPrevious(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerPrevious_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerPrevious(ctx, req.(*HostServiceMediaPlayerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerSeek_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerSeekRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerSeek(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerSeek_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerSeek(ctx, req.(*HostServiceMediaPlayerSeekRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HostService_MediaPlayerSetPosition_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HostServiceMediaPlayerSetPostionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HostServiceServer).MediaPlayerSetPosition(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HostService_MediaPlayerSetPosition_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HostServiceServer).MediaPlayerSetPosition(ctx, req.(*HostServiceMediaPlayerSetPostionRequest)) + } + return interceptor(ctx, in, info, handler) +} + // HostService_ServiceDesc is the grpc.ServiceDesc for HostService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -896,6 +1160,38 @@ var HostService_ServiceDesc = grpc.ServiceDesc{ MethodName: "IdleInhibitorUninhibit", Handler: _HostService_IdleInhibitorUninhibit_Handler, }, + { + MethodName: "MediaPlayerPlayPause", + Handler: _HostService_MediaPlayerPlayPause_Handler, + }, + { + MethodName: "MediaPlayerPlay", + Handler: _HostService_MediaPlayerPlay_Handler, + }, + { + MethodName: "MediaPlayerPause", + Handler: _HostService_MediaPlayerPause_Handler, + }, + { + MethodName: "MediaPlayerStop", + Handler: _HostService_MediaPlayerStop_Handler, + }, + { + MethodName: "MediaPlayerNext", + Handler: _HostService_MediaPlayerNext_Handler, + }, + { + MethodName: "MediaPlayerPrevious", + Handler: _HostService_MediaPlayerPrevious_Handler, + }, + { + MethodName: "MediaPlayerSeek", + Handler: _HostService_MediaPlayerSeek_Handler, + }, + { + MethodName: "MediaPlayerSetPosition", + Handler: _HostService_MediaPlayerSetPosition_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "hyprpanel/v1/hyprpanel.proto", diff --git a/style/default.css b/style/default.css index 808f0cf..dcaabdd 100644 --- a/style/default.css +++ b/style/default.css @@ -10,220 +10,252 @@ flowbox, flowboxchild { - padding: 0; + padding: 0; } #panel { - background-color: @PanelBackground; + background-color: @PanelBackground; } #panel.top { - border-bottom: @Border 1px solid; + border-bottom: @Border 1px solid; } #panel.right { - border-left: @Border 1px solid; + border-left: @Border 1px solid; } #panel.bottom { - border-top: @Border 1px solid; + border-top: @Border 1px solid; } #panel.left { - border-right: @Border 1px solid; + border-right: @Border 1px solid; } .module { - background-color: @ModuleBackground; + background-color: @ModuleBackground; } .top .module { - border-radius: 0 0 8px 8px; + border-radius: 0 0 8px 8px; } .right .module { - border-radius: 8px 0 0 8px; + border-radius: 8px 0 0 8px; } .bottom .module { - border-radius: 8px 8px 0 0; + border-radius: 8px 8px 0 0; } .left .module { - border-radius: 0 8px 8px 0; + border-radius: 0 8px 8px 0; } #pager .workspace { - background-color: alpha(@ModuleBackground, 0.3); - border: @Border 1px solid; - border-radius: 4px; - transition: background-color 300ms ease-in-out, border 300ms ease-in-out; + background-color: alpha(@ModuleBackground, 0.3); + border: @Border 1px solid; + border-radius: 4px; + transition: + background-color 300ms ease-in-out, + border 300ms ease-in-out; } #pager .workspace.live { - background-color: alpha(@Highlight, 0.2); - transition: background-color 300ms ease-in-out; + background-color: alpha(@Highlight, 0.2); + transition: background-color 300ms ease-in-out; } #pager .workspace.active { - border: alpha(@Highlight, 0.8) 1px solid; - transition: border 300ms ease-in-out; + border: alpha(@Highlight, 0.8) 1px solid; + transition: border 300ms ease-in-out; } #pager .workspace .workspaceLabel { - background-color: alpha(@ModuleBackground, 0.8); - font-size: 10px; + background-color: alpha(@ModuleBackground, 0.8); + font-size: 10px; } #pager .workspace .client { - border: alpha(@Highlight, 0.4) 1px solid; - background-color: alpha(@Highlight, 0.3); - border-radius: 4px; - transition: background-color 300ms ease-in-out, border 300ms ease-in-out; + border: alpha(@Highlight, 0.4) 1px solid; + background-color: alpha(@Highlight, 0.3); + border-radius: 4px; + transition: + background-color 300ms ease-in-out, + border 300ms ease-in-out; } #pager .workspace .client.active { - border: alpha(@Highlight, 0.9) 1px solid; - background-color: alpha(@Highlight, 0.7); - transition: background-color 300ms ease-in-out, border 300ms ease-in-out; + border: alpha(@Highlight, 0.9) 1px solid; + background-color: alpha(@Highlight, 0.7); + transition: + background-color 300ms ease-in-out, + border 300ms ease-in-out; } #taskbar .client { - border: rgba(0, 0, 0, 0) 1px solid; - border-radius: 4px; - transition: background-color 150ms ease-in-out, border 150ms ease-in-out; + border: rgba(0, 0, 0, 0) 1px solid; + border-radius: 4px; + transition: + background-color 150ms ease-in-out, + border 150ms ease-in-out; } #taskbar .client.hover { - border: alpha(@Highlight, 0.3) 1px solid; - background-color: alpha(@Highlight, 0.3); - transition: background-color 150ms ease-in-out, border 150ms ease-in-out; + border: alpha(@Highlight, 0.3) 1px solid; + background-color: alpha(@Highlight, 0.3); + transition: + background-color 150ms ease-in-out, + border 150ms ease-in-out; } #taskbar .client.active { - border: alpha(@Highlight, 0.6) 1px solid; - background-color: alpha(@Highlight, 0.6); - transition: background-color 150ms ease-in-out, border 150ms ease-in-out; + border: alpha(@Highlight, 0.6) 1px solid; + background-color: alpha(@Highlight, 0.6); + transition: + background-color 150ms ease-in-out, + border 150ms ease-in-out; } #taskbar .indicator { - border: lighter(alpha(@Indicator, 0.9)) 1px solid; - border-radius: 2px; - background-color: @Indicator; + border: lighter(alpha(@Indicator, 0.9)) 1px solid; + border-radius: 2px; + background-color: @Indicator; } /* Text sizing in GTK sucks, let the user deal with it */ #clock #clockTime { - font-size: 1.2rem; - font-weight: 500; + font-size: 1.2rem; + font-weight: 500; } #clock #clockDate { - font-size: 0.6rem; + font-size: 0.6rem; } #sessionOverlay { - background-color: alpha(@PanelBackground, 0.7); - font-size: 2rem; + background-color: alpha(@PanelBackground, 0.7); + font-size: 2rem; } #sessionOverlay button { - border-radius: 20px; + border-radius: 20px; } #spacer { - background-color: rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 0); } #audio .overlay { - border: alpha(@Highlight, 0.90) 2px solid; - border-radius: 2px; - background-color: alpha(@PanelBackground, 0.95); - transition: border 300ms ease-in-out; + border: alpha(@Highlight, 0.9) 2px solid; + border-radius: 2px; + background-color: alpha(@PanelBackground, 0.95); + transition: border 300ms ease-in-out; } #audio .disabled { - border: alpha(@Border, 0.90) 2px solid; - transition: border 300ms ease-in-out; + border: alpha(@Border, 0.9) 2px solid; + transition: border 300ms ease-in-out; } #notificationsOverlay { - background-color: rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 0); } .notification { - border: @Border 1px solid; - border-width: 2px; - background-color: alpha(@NotificationBackground, 0.7); - border-radius: 16px; - transition: background-color 300ms ease-in-out; + border: @Border 1px solid; + border-width: 2px; + background-color: alpha(@NotificationBackground, 0.7); + border-radius: 16px; + transition: background-color 300ms ease-in-out; } .notification.hover { - background-color: @NotificationBackground; - transition: background-color 300ms ease-in-out; + background-color: @NotificationBackground; + transition: background-color 300ms ease-in-out; } .notification .notificationIcon { - margin: 8px 0px 8px 8px; + margin: 8px 0px 8px 8px; } .notification .notificationSummary { - margin: 8px 12px 0px 12px; + margin: 8px 12px 0px 12px; } .notification .notificationBody { - margin: 8px 12px 12px 12px; + margin: 8px 12px 12px 12px; } .notification button { - border-radius: 0; - border: 0; + border-radius: 0; + border: 0; } .notification .notificationActions button:first-child { - border-bottom-left-radius: 16px; + border-bottom-left-radius: 16px; } .notification .notificationActions button:last-child { - border-bottom-right-radius: 16px; + border-bottom-right-radius: 16px; } #hudOverlay { - background-color: rgba(0, 0, 0, 0); + background-color: rgba(0, 0, 0, 0); } .hudNotification { - border: @Border 1px solid; - border-width: 2px; - background-color: alpha(@NotificationBackground, 0.7); - border-radius: 16px; - transition: background-color 300ms ease-in-out; + border: @Border 1px solid; + border-width: 2px; + background-color: alpha(@NotificationBackground, 0.7); + border-radius: 16px; + transition: background-color 300ms ease-in-out; } .hudNotification .hudIcon { - margin: 16px; + margin: 16px; } .hudNotification .hudTitle { - margin: 0px 12px 0px 12px; + margin: 0px 12px 0px 12px; } .hudNotification .hudBody { - margin: 8px 12px 16px 12px; + margin: 8px 12px 16px 12px; } .hudNotification .hudPercent { - margin: 0px 12px 16px 12px; - font-size: 2rem; + margin: 0px 12px 16px 12px; + font-size: 2rem; } .tooltipImage { - margin: 8px; - padding: 0; + margin: 8px; + padding: 0; } .tooltipSubtitle { - background-color: alpha(@NotificationBackground, 0.7); - border-radius: 4px; -} \ No newline at end of file + background-color: alpha(@NotificationBackground, 0.7); + border-radius: 4px; +} + +.mediaPlayerButton { + min-width: 56px; + min-height: 56px; + background-color: @Highlight; + border-radius: 999px; +} + +.mediaPlayerButton image { + -gtk-icon-size: 32px; +} + +.mediaPlayerTitle { + font-weight: bold; + font-size: 1.1em; +} + +.mediaPlayerArtist { + opacity: 0.7; +} diff --git a/style/style.go b/style/style.go index 7e314be..f73d33a 100644 --- a/style/style.go +++ b/style/style.go @@ -43,6 +43,8 @@ const ( HudOverlayID = `hudOverlay` // IdleID element identifier. IdleInhibitorID = `idleInhibitor` + // MediaPlayerID element identifier. + MediaPlayerID = `mediaPlayer` // ModuleClass class name. ModuleClass = `module` @@ -86,6 +88,12 @@ const ( HudPercentClass = `hudPercent` // HudGaugeClass class name. HudGaugeClass = `hudGauge` + // MediaPlayerButtonClass class name. + MediaPlayerButtonClass = `mediaPlayerButton` + // MediaPlayerTitleClass class name. + MediaPlayerTitleClass = `mediaPlayerTitle` + // MediaPlayerArtistClass class name. + MediaPlayerArtistClass = `mediaPlayerArtist` // TooltipImageClass class name. TooltipImageClass = `tooltipImage`