From 493151920f5c6b7d6f7bdb58e8bb3ef4d15027ef Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Wed, 21 May 2025 16:56:12 +0200 Subject: [PATCH 1/9] Update eve-api in pillar This update adds support for LTE attach configuration and related informational fields. Signed-off-by: Milan Lenco --- pkg/pillar/go.mod | 5 +- pkg/pillar/go.sum | 4 +- .../lf-edge/eve-api/go/config/netconfig.pb.go | 170 +- .../eve-api/go/evecommon/acipherinfo.pb.go | 73 +- .../eve-api/go/evecommon/evecommon.pb.go | 156 +- .../lf-edge/eve-api/go/info/info.pb.go | 3615 +++++++++-------- pkg/pillar/vendor/modules.txt | 2 +- 7 files changed, 2274 insertions(+), 1751 deletions(-) diff --git a/pkg/pillar/go.mod b/pkg/pillar/go.mod index 8d749e32fe..94fa674821 100644 --- a/pkg/pillar/go.mod +++ b/pkg/pillar/go.mod @@ -1,6 +1,7 @@ module github.com/lf-edge/eve/pkg/pillar -go 1.23 +go 1.23.0 + toolchain go1.24.1 require ( @@ -32,7 +33,7 @@ require ( github.com/jaypipes/ghw v0.8.0 github.com/k8snetworkplumbingwg/network-attachment-definition-client v1.5.0 github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 - github.com/lf-edge/eve-api/go v0.0.0-20250416000930-73eb0befc1e5 + github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f github.com/lf-edge/eve-libs v0.0.0-20250313200311-28f858e8e99b github.com/lf-edge/eve-tools/runtimemetrics/go v0.0.0-20250320220227-713ea9d6c6d2 github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d diff --git a/pkg/pillar/go.sum b/pkg/pillar/go.sum index a70c7edec3..79883f2cf7 100644 --- a/pkg/pillar/go.sum +++ b/pkg/pillar/go.sum @@ -1457,8 +1457,8 @@ github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xw github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 h1:kiqB1Rk8fmWci0idN68azRDJfPxCivD3zNDddWZocFw= github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80/go.mod h1:4yXdumKdTzF0URMtxOl8Xnzdxnoy1QR+2dzfOr4CIZY= -github.com/lf-edge/eve-api/go v0.0.0-20250416000930-73eb0befc1e5 h1:2h+dFrj5Jm9r2ZitbCufh3LP5FCisl3ZQXJAMq57GxA= -github.com/lf-edge/eve-api/go v0.0.0-20250416000930-73eb0befc1e5/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA= +github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f h1:FCTReYtGDfxIX/5jiir/SNFBY1mttQcML4uX3tZP+GI= +github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA= github.com/lf-edge/eve-libs v0.0.0-20250313200311-28f858e8e99b h1:sprMvkZ9Ogls4WDo2rgtRwRFPpdykjYtUqntzwy3NKI= github.com/lf-edge/eve-libs v0.0.0-20250313200311-28f858e8e99b/go.mod h1:We4FeQWOAxUiB8ZH+eIfRdn2QG9Hfr1W5/IoufU1t64= github.com/lf-edge/eve-tools/runtimemetrics/go v0.0.0-20250320220227-713ea9d6c6d2 h1:rCZhnv3q+g8bcNUHp9wf0NlIB7k4ORckSnoZdHGcMtU= diff --git a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go index d70bf26fed..d2c2b687d7 100644 --- a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go +++ b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go @@ -618,11 +618,17 @@ type CellularAccessPoint struct { SimSlot uint32 `protobuf:"varint,1,opt,name=sim_slot,json=simSlot,proto3" json:"sim_slot,omitempty"` // Access Point Network to connect into. // By default it is "internet". + // Applies to the default bearer. + // To modify the attach bearer APN, use attach_apn instead. Apn string `protobuf:"bytes,2,opt,name=apn,proto3" json:"apn,omitempty"` // Authentication protocol used by the network. + // Applies to the default bearer. + // To modify the authentication protocol for the attach bearer, use attach_auth_protocol instead. AuthProtocol CellularAuthProtocol `protobuf:"varint,3,opt,name=auth_protocol,json=authProtocol,proto3,enum=org.lfedge.eve.config.CellularAuthProtocol" json:"auth_protocol,omitempty"` // Cipher data may contain encrypted user credentials - // (inside cellNetUsername and cellNetPassword fields). + // (inside cellular_net_* fields of EncryptionBlock). + // EncryptionBlock allows separate configuration of credentials for the attach + // and default bearers. CipherData *evecommon.CipherBlock `protobuf:"bytes,4,opt,name=cipher_data,json=cipherData,proto3" json:"cipher_data,omitempty"` // The set of cellular network operators that modem should preferably try to register // and connect into. @@ -639,6 +645,19 @@ type CellularAccessPoint struct { // Not listed technologies will not be tried. // If empty, then modem will select RAT automatically. PreferredRats []evecommon.RadioAccessTechnology `protobuf:"varint,7,rep,packed,name=preferred_rats,json=preferredRats,proto3,enum=org.lfedge.eve.common.RadioAccessTechnology" json:"preferred_rats,omitempty"` + // The IP addressing type to use for the default bearer. + IpType evecommon.CellularIPType `protobuf:"varint,8,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // Access Point Name (APN) for the attach (initial) bearer. + // This field is optional. If not specified, EVE will not send any attach bearer + // configuration to the modem. Instead, the modem will use one of its pre-installed + // profiles (see CellularProfile) to determine the configuration. + AttachApn string `protobuf:"bytes,9,opt,name=attach_apn,json=attachApn,proto3" json:"attach_apn,omitempty"` + // The IP addressing type to use for the attach bearer. + // Leave undefined if attach_apn is not specified. + AttachIpType evecommon.CellularIPType `protobuf:"varint,10,opt,name=attach_ip_type,json=attachIpType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"attach_ip_type,omitempty"` + // Authentication protocol used for the attach bearer. + // Leave undefined if attach_apn is not specified. + AttachAuthProtocol CellularAuthProtocol `protobuf:"varint,11,opt,name=attach_auth_protocol,json=attachAuthProtocol,proto3,enum=org.lfedge.eve.config.CellularAuthProtocol" json:"attach_auth_protocol,omitempty"` } func (x *CellularAccessPoint) Reset() { @@ -722,6 +741,34 @@ func (x *CellularAccessPoint) GetPreferredRats() []evecommon.RadioAccessTechnolo return nil } +func (x *CellularAccessPoint) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularAccessPoint) GetAttachApn() string { + if x != nil { + return x.AttachApn + } + return "" +} + +func (x *CellularAccessPoint) GetAttachIpType() evecommon.CellularIPType { + if x != nil { + return x.AttachIpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularAccessPoint) GetAttachAuthProtocol() CellularAuthProtocol { + if x != nil { + return x.AttachAuthProtocol + } + return CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_NONE +} + type WifiConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -977,7 +1024,7 @@ var file_config_netconfig_proto_rawDesc = []byte{ 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0xfe, 0x02, 0x0a, 0x13, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0x89, 0x05, 0x0a, 0x13, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6d, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x69, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x6e, 0x18, @@ -1001,47 +1048,64 @@ var file_config_netconfig_proto_rawDesc = []byte{ 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x52, 0x61, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, - 0x44, 0x12, 0x42, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x46, - 0x69, 0x4b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x45, 0x0a, - 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x65, 0x64, 0x52, 0x61, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x5f, 0x61, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x41, 0x70, 0x6e, 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, + 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x42, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x69, 0x70, - 0x68, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x1a, 0x45, 0x0a, 0x0b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0xa1, 0x01, 0x0a, 0x14, - 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, - 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, - 0x50, 0x41, 0x50, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, - 0x43, 0x48, 0x41, 0x50, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, - 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, - 0x5f, 0x50, 0x41, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, 0x03, 0x42, - 0x3d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, - 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, + 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x12, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x22, 0x92, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x09, + 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x46, 0x69, 0x4b, 0x65, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x63, + 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0x45, 0x0a, 0x0b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0xa1, 0x01, 0x0a, 0x14, 0x43, 0x65, 0x6c, 0x6c, 0x75, + 0x6c, 0x61, 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, + 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, + 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x41, 0x50, 0x10, 0x01, + 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, + 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, + 0x02, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x41, 0x50, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, 0x03, 0x42, 0x3d, 0x0a, 0x15, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, + 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1077,7 +1141,8 @@ var file_config_netconfig_proto_goTypes = []interface{}{ (*ConnectivityProbe)(nil), // 15: org.lfedge.eve.config.ConnectivityProbe (*evecommon.CipherBlock)(nil), // 16: org.lfedge.eve.common.CipherBlock (evecommon.RadioAccessTechnology)(0), // 17: org.lfedge.eve.common.RadioAccessTechnology - (WiFiKeyScheme)(0), // 18: org.lfedge.eve.config.WiFiKeyScheme + (evecommon.CellularIPType)(0), // 18: org.lfedge.eve.common.CellularIPType + (WiFiKeyScheme)(0), // 19: org.lfedge.eve.config.WiFiKeyScheme } var file_config_netconfig_proto_depIdxs = []int32{ 9, // 0: org.lfedge.eve.config.NetworkConfig.type:type_name -> org.lfedge.eve.config.NetworkType @@ -1095,14 +1160,17 @@ var file_config_netconfig_proto_depIdxs = []int32{ 0, // 12: org.lfedge.eve.config.CellularAccessPoint.auth_protocol:type_name -> org.lfedge.eve.config.CellularAuthProtocol 16, // 13: org.lfedge.eve.config.CellularAccessPoint.cipher_data:type_name -> org.lfedge.eve.common.CipherBlock 17, // 14: org.lfedge.eve.config.CellularAccessPoint.preferred_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology - 18, // 15: org.lfedge.eve.config.WifiConfig.keyScheme:type_name -> org.lfedge.eve.config.WiFiKeyScheme - 8, // 16: org.lfedge.eve.config.WifiConfig.crypto:type_name -> org.lfedge.eve.config.WifiConfig.cryptoblock - 16, // 17: org.lfedge.eve.config.WifiConfig.cipherData:type_name -> org.lfedge.eve.common.CipherBlock - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 18, // 15: org.lfedge.eve.config.CellularAccessPoint.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 18, // 16: org.lfedge.eve.config.CellularAccessPoint.attach_ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 0, // 17: org.lfedge.eve.config.CellularAccessPoint.attach_auth_protocol:type_name -> org.lfedge.eve.config.CellularAuthProtocol + 19, // 18: org.lfedge.eve.config.WifiConfig.keyScheme:type_name -> org.lfedge.eve.config.WiFiKeyScheme + 8, // 19: org.lfedge.eve.config.WifiConfig.crypto:type_name -> org.lfedge.eve.config.WifiConfig.cryptoblock + 16, // 20: org.lfedge.eve.config.WifiConfig.cipherData:type_name -> org.lfedge.eve.common.CipherBlock + 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_config_netconfig_proto_init() } diff --git a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go index 2cd32be96e..537e0d6d83 100644 --- a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go +++ b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go @@ -349,8 +349,11 @@ type EncryptionBlock struct { WifiPassword string `protobuf:"bytes,4,opt,name=wifiPassword,proto3" json:"wifiPassword,omitempty"` ProtectedUserData string `protobuf:"bytes,5,opt,name=protectedUserData,proto3" json:"protectedUserData,omitempty"` // Username for cellular network. + // Applies to the default bearer. + // To configure credentials for the attach bearer, use cellular_net_attach_* fields instead. CellularNetUsername string `protobuf:"bytes,6,opt,name=cellular_net_username,json=cellularNetUsername,proto3" json:"cellular_net_username,omitempty"` // Password for cellular network. + // Applies to the default bearer. CellularNetPassword string `protobuf:"bytes,7,opt,name=cellular_net_password,json=cellularNetPassword,proto3" json:"cellular_net_password,omitempty"` // Cluster token ClusterToken string `protobuf:"bytes,8,opt,name=cluster_token,json=clusterToken,proto3" json:"cluster_token,omitempty"` @@ -360,6 +363,12 @@ type EncryptionBlock struct { // by the user specified. User EncryptionBlockUser `protobuf:"varint,9,opt,name=user,proto3,enum=org.lfedge.eve.common.EncryptionBlockUser" json:"user,omitempty"` EncryptedData string `protobuf:"bytes,10,opt,name=encrypted_data,json=encryptedData,proto3" json:"encrypted_data,omitempty"` + // Username for the cellular attach bearer. + // Leave empty if attach_apn in CellularAccessPoint is not specified. + CellularNetAttachUsername string `protobuf:"bytes,11,opt,name=cellular_net_attach_username,json=cellularNetAttachUsername,proto3" json:"cellular_net_attach_username,omitempty"` + // Password for the cellular attach bearer. + // Leave empty if attach_apn in CellularAccessPoint is not specified. + CellularNetAttachPassword string `protobuf:"bytes,12,opt,name=cellular_net_attach_password,json=cellularNetAttachPassword,proto3" json:"cellular_net_attach_password,omitempty"` } func (x *EncryptionBlock) Reset() { @@ -464,6 +473,20 @@ func (x *EncryptionBlock) GetEncryptedData() string { return "" } +func (x *EncryptionBlock) GetCellularNetAttachUsername() string { + if x != nil { + return x.CellularNetAttachUsername + } + return "" +} + +func (x *EncryptionBlock) GetCellularNetAttachPassword() string { + if x != nil { + return x.CellularNetAttachPassword + } + return "" +} + var File_evecommon_acipherinfo_proto protoreflect.FileDescriptor var file_evecommon_acipherinfo_proto_rawDesc = []byte{ @@ -506,7 +529,7 @@ var file_evecommon_acipherinfo_proto_rawDesc = []byte{ 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x22, 0xb7, 0x03, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, + 0x35, 0x36, 0x22, 0xb9, 0x04, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x73, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x73, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, @@ -533,26 +556,34 @@ var file_evecommon_acipherinfo_proto_rawDesc = []byte{ 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2a, 0x2f, 0x0a, 0x11, - 0x4b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x10, 0x01, 0x2a, 0x33, 0x0a, - 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x46, 0x42, - 0x10, 0x01, 0x2a, 0x70, 0x0a, 0x13, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x4e, 0x43, - 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, - 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, - 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, - 0x54, 0x41, 0x10, 0x01, 0x42, 0x4f, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0b, 0x41, - 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, - 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x1c, + 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x19, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, + 0x1c, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x2f, + 0x0a, 0x11, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x10, 0x01, 0x2a, + 0x33, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, + 0x46, 0x42, 0x10, 0x01, 0x2a, 0x70, 0x0a, 0x13, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x45, + 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, 0x42, 0x4f, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, + 0x0b, 0x41, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x01, 0x5a, 0x27, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, + 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go index c046935781..09817f29ca 100644 --- a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go +++ b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go @@ -131,6 +131,126 @@ func (RadioAccessTechnology) EnumDescriptor() ([]byte, []int) { return file_evecommon_evecommon_proto_rawDescGZIP(), []int{1} } +// The IP addressing type to use for a given attach or default bearer. +type CellularIPType int32 + +const ( + // IP type is not specified. + // When unspecified, EVE will not enforce an IP type in the bearer configuration. + // The modem will instead use its built-in profiles (see CellularProfile) to determine + // the appropriate IP type for the network. + CellularIPType_CELLULAR_IP_TYPE_UNSPECIFIED CellularIPType = 0 + // IPv4 only. + CellularIPType_CELLULAR_IP_TYPE_IPV4 CellularIPType = 1 + // IPv4 and IPv6. + CellularIPType_CELLULAR_IP_TYPE_IPV4_AND_IPV6 CellularIPType = 2 + // IPv6 only. + CellularIPType_CELLULAR_IP_TYPE_IPV6 CellularIPType = 3 +) + +// Enum value maps for CellularIPType. +var ( + CellularIPType_name = map[int32]string{ + 0: "CELLULAR_IP_TYPE_UNSPECIFIED", + 1: "CELLULAR_IP_TYPE_IPV4", + 2: "CELLULAR_IP_TYPE_IPV4_AND_IPV6", + 3: "CELLULAR_IP_TYPE_IPV6", + } + CellularIPType_value = map[string]int32{ + "CELLULAR_IP_TYPE_UNSPECIFIED": 0, + "CELLULAR_IP_TYPE_IPV4": 1, + "CELLULAR_IP_TYPE_IPV4_AND_IPV6": 2, + "CELLULAR_IP_TYPE_IPV6": 3, + } +) + +func (x CellularIPType) Enum() *CellularIPType { + p := new(CellularIPType) + *p = x + return p +} + +func (x CellularIPType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CellularIPType) Descriptor() protoreflect.EnumDescriptor { + return file_evecommon_evecommon_proto_enumTypes[2].Descriptor() +} + +func (CellularIPType) Type() protoreflect.EnumType { + return &file_evecommon_evecommon_proto_enumTypes[2] +} + +func (x CellularIPType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CellularIPType.Descriptor instead. +func (CellularIPType) EnumDescriptor() ([]byte, []int) { + return file_evecommon_evecommon_proto_rawDescGZIP(), []int{2} +} + +// Purpose of a given cellular bearer. +type BearerType int32 + +const ( + // Bearer type is not specified. + BearerType_BEARER_TYPE_UNSPECIFIED BearerType = 0 + // Bearer used for the initial attach procedure. + BearerType_BEARER_TYPE_ATTACH BearerType = 1 + // Default connection bearer providing packet data access to the network. + BearerType_BEARER_TYPE_DEFAULT BearerType = 2 + // Secondary context (2G/3G) or dedicated bearer (4G), defined by the user + // of the API. These bearers use the same IP address used by a primary + // context or default bearer and provide a dedicated flow for specific + // traffic with different QoS settings. + BearerType_BEARER_TYPE_DEDICATED BearerType = 3 +) + +// Enum value maps for BearerType. +var ( + BearerType_name = map[int32]string{ + 0: "BEARER_TYPE_UNSPECIFIED", + 1: "BEARER_TYPE_ATTACH", + 2: "BEARER_TYPE_DEFAULT", + 3: "BEARER_TYPE_DEDICATED", + } + BearerType_value = map[string]int32{ + "BEARER_TYPE_UNSPECIFIED": 0, + "BEARER_TYPE_ATTACH": 1, + "BEARER_TYPE_DEFAULT": 2, + "BEARER_TYPE_DEDICATED": 3, + } +) + +func (x BearerType) Enum() *BearerType { + p := new(BearerType) + *p = x + return p +} + +func (x BearerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BearerType) Descriptor() protoreflect.EnumDescriptor { + return file_evecommon_evecommon_proto_enumTypes[3].Descriptor() +} + +func (BearerType) Type() protoreflect.EnumType { + return &file_evecommon_evecommon_proto_enumTypes[3] +} + +func (x BearerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BearerType.Descriptor instead. +func (BearerType) EnumDescriptor() ([]byte, []int) { + return file_evecommon_evecommon_proto_rawDescGZIP(), []int{3} +} + // DiskDescription describes disk // we can use different data to locate disk in the system type DiskDescription struct { @@ -228,12 +348,28 @@ var file_evecommon_evecommon_proto_rawDesc = []byte{ 0x43, 0x48, 0x4e, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 0x4c, 0x54, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 0x35, 0x47, 0x4e, 0x52, 0x10, 0x04, - 0x42, 0x4d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x09, 0x45, 0x76, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, - 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2a, 0x8c, 0x01, 0x0a, 0x0e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, + 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, + 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, + 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x49, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, + 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x03, 0x2a, + 0x75, 0x0a, 0x0a, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x45, + 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, + 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, + 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x44, 0x49, 0x43, + 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x42, 0x4d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, + 0x09, 0x45, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, + 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -248,12 +384,14 @@ func file_evecommon_evecommon_proto_rawDescGZIP() []byte { return file_evecommon_evecommon_proto_rawDescData } -var file_evecommon_evecommon_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_evecommon_evecommon_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_evecommon_evecommon_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_evecommon_evecommon_proto_goTypes = []interface{}{ (HashAlgorithm)(0), // 0: org.lfedge.eve.common.HashAlgorithm (RadioAccessTechnology)(0), // 1: org.lfedge.eve.common.RadioAccessTechnology - (*DiskDescription)(nil), // 2: org.lfedge.eve.common.DiskDescription + (CellularIPType)(0), // 2: org.lfedge.eve.common.CellularIPType + (BearerType)(0), // 3: org.lfedge.eve.common.BearerType + (*DiskDescription)(nil), // 4: org.lfedge.eve.common.DiskDescription } var file_evecommon_evecommon_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -287,7 +425,7 @@ func file_evecommon_evecommon_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_evecommon_evecommon_proto_rawDesc, - NumEnums: 2, + NumEnums: 4, NumMessages: 1, NumExtensions: 0, NumServices: 0, diff --git a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go index fb0e20f2b0..1fae9178a6 100644 --- a/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go +++ b/pkg/pillar/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go @@ -1036,6 +1036,7 @@ const ( APICapability_API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE APICapability = 13 // Volume snapshots supported APICapability_API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE APICapability = 14 // Support for Patch Envelope Encryption APICapability_API_CAPABILITY_SINGLE_STACK_IP_NETWORK APICapability = 15 // Support for V4Only and V6Only NetworkType + APICapability_API_CAPABILITY_CELLULAR_ATTACH_CONFIG APICapability = 16 // Support cellular attach configuration ) // Enum value maps for APICapability. @@ -1057,6 +1058,7 @@ var ( 13: "API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE", 14: "API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE", 15: "API_CAPABILITY_SINGLE_STACK_IP_NETWORK", + 16: "API_CAPABILITY_CELLULAR_ATTACH_CONFIG", } APICapability_value = map[string]int32{ "API_CAPABILITY_UNSPECIFIED": 0, @@ -1075,6 +1077,7 @@ var ( "API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE": 13, "API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE": 14, "API_CAPABILITY_SINGLE_STACK_IP_NETWORK": 15, + "API_CAPABILITY_CELLULAR_ATTACH_CONFIG": 16, } ) @@ -3703,6 +3706,189 @@ func (x *ZCellularProvider) GetForbidden() bool { return false } +// State of a cellular bearer. +type CellularBearer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Access Point Network of the bearer. + Apn string `protobuf:"bytes,1,opt,name=apn,proto3" json:"apn,omitempty"` + // Purpose of the bearer. + BearerType evecommon.BearerType `protobuf:"varint,2,opt,name=bearer_type,json=bearerType,proto3,enum=org.lfedge.eve.common.BearerType" json:"bearer_type,omitempty"` + // The IP addressing type to use for the bearer. + IpType evecommon.CellularIPType `protobuf:"varint,3,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // Indicates whether or not the bearer is connected. + Connected bool `protobuf:"varint,4,opt,name=connected,proto3" json:"connected,omitempty"` + // Provides additional information specifying the reason why the modem is not connected + // (either due to a failed connection attempt, or due to a a network initiated + // disconnection). + ConnectionError string `protobuf:"bytes,5,opt,name=connection_error,json=connectionError,proto3" json:"connection_error,omitempty"` + // Time when the current connection was established. + // Zero timestamp if the bearer is not connected. + ConnectedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=connected_at,json=connectedAt,proto3" json:"connected_at,omitempty"` +} + +func (x *CellularBearer) Reset() { + *x = CellularBearer{} + if protoimpl.UnsafeEnabled { + mi := &file_info_info_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CellularBearer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CellularBearer) ProtoMessage() {} + +func (x *CellularBearer) ProtoReflect() protoreflect.Message { + mi := &file_info_info_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CellularBearer.ProtoReflect.Descriptor instead. +func (*CellularBearer) Descriptor() ([]byte, []int) { + return file_info_info_proto_rawDescGZIP(), []int{23} +} + +func (x *CellularBearer) GetApn() string { + if x != nil { + return x.Apn + } + return "" +} + +func (x *CellularBearer) GetBearerType() evecommon.BearerType { + if x != nil { + return x.BearerType + } + return evecommon.BearerType(0) +} + +func (x *CellularBearer) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularBearer) GetConnected() bool { + if x != nil { + return x.Connected + } + return false +} + +func (x *CellularBearer) GetConnectionError() string { + if x != nil { + return x.ConnectionError + } + return "" +} + +func (x *CellularBearer) GetConnectedAt() *timestamppb.Timestamp { + if x != nil { + return x.ConnectedAt + } + return nil +} + +// A cellular profile is a modem-stored configuration that defines how the device +// connects to a network. It is used mostly during the initial attach procedure. +type CellularProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the profile. + ProfileName string `protobuf:"bytes,1,opt,name=profile_name,json=profileName,proto3" json:"profile_name,omitempty"` + // Access Point Name used by the profile. + Apn string `protobuf:"bytes,2,opt,name=apn,proto3" json:"apn,omitempty"` + // Which bearer type this profile is for. + BearerType evecommon.BearerType `protobuf:"varint,3,opt,name=bearer_type,json=bearerType,proto3,enum=org.lfedge.eve.common.BearerType" json:"bearer_type,omitempty"` + // The IP addressing type used by the profile. + IpType evecommon.CellularIPType `protobuf:"varint,4,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // When true, the modem will not connect to networks that require roaming when using this profile. + ForbidRoaming bool `protobuf:"varint,5,opt,name=forbid_roaming,json=forbidRoaming,proto3" json:"forbid_roaming,omitempty"` +} + +func (x *CellularProfile) Reset() { + *x = CellularProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_info_info_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CellularProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CellularProfile) ProtoMessage() {} + +func (x *CellularProfile) ProtoReflect() protoreflect.Message { + mi := &file_info_info_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CellularProfile.ProtoReflect.Descriptor instead. +func (*CellularProfile) Descriptor() ([]byte, []int) { + return file_info_info_proto_rawDescGZIP(), []int{24} +} + +func (x *CellularProfile) GetProfileName() string { + if x != nil { + return x.ProfileName + } + return "" +} + +func (x *CellularProfile) GetApn() string { + if x != nil { + return x.Apn + } + return "" +} + +func (x *CellularProfile) GetBearerType() evecommon.BearerType { + if x != nil { + return x.BearerType + } + return evecommon.BearerType(0) +} + +func (x *CellularProfile) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularProfile) GetForbidRoaming() bool { + if x != nil { + return x.ForbidRoaming + } + return false +} + type StorageDiskState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3717,7 +3903,7 @@ type StorageDiskState struct { func (x *StorageDiskState) Reset() { *x = StorageDiskState{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[23] + mi := &file_info_info_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3730,7 +3916,7 @@ func (x *StorageDiskState) String() string { func (*StorageDiskState) ProtoMessage() {} func (x *StorageDiskState) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[23] + mi := &file_info_info_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3743,7 +3929,7 @@ func (x *StorageDiskState) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageDiskState.ProtoReflect.Descriptor instead. func (*StorageDiskState) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{23} + return file_info_info_proto_rawDescGZIP(), []int{25} } func (x *StorageDiskState) GetDiskName() *evecommon.DiskDescription { @@ -3792,7 +3978,7 @@ type SmartAttr struct { func (x *SmartAttr) Reset() { *x = SmartAttr{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[24] + mi := &file_info_info_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3805,7 +3991,7 @@ func (x *SmartAttr) String() string { func (*SmartAttr) ProtoMessage() {} func (x *SmartAttr) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[24] + mi := &file_info_info_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3818,7 +4004,7 @@ func (x *SmartAttr) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartAttr.ProtoReflect.Descriptor instead. func (*SmartAttr) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{24} + return file_info_info_proto_rawDescGZIP(), []int{26} } func (x *SmartAttr) GetId() uint32 { @@ -3893,7 +4079,7 @@ type StorageDiskInfo struct { func (x *StorageDiskInfo) Reset() { *x = StorageDiskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[25] + mi := &file_info_info_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3906,7 +4092,7 @@ func (x *StorageDiskInfo) String() string { func (*StorageDiskInfo) ProtoMessage() {} func (x *StorageDiskInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[25] + mi := &file_info_info_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3919,7 +4105,7 @@ func (x *StorageDiskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageDiskInfo.ProtoReflect.Descriptor instead. func (*StorageDiskInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{25} + return file_info_info_proto_rawDescGZIP(), []int{27} } func (x *StorageDiskInfo) GetDiskName() string { @@ -3980,7 +4166,7 @@ type StorageChildren struct { func (x *StorageChildren) Reset() { *x = StorageChildren{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[26] + mi := &file_info_info_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3993,7 +4179,7 @@ func (x *StorageChildren) String() string { func (*StorageChildren) ProtoMessage() {} func (x *StorageChildren) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[26] + mi := &file_info_info_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4006,7 +4192,7 @@ func (x *StorageChildren) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageChildren.ProtoReflect.Descriptor instead. func (*StorageChildren) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{26} + return file_info_info_proto_rawDescGZIP(), []int{28} } func (x *StorageChildren) GetCurrentRaid() StorageRaidType { @@ -4067,7 +4253,7 @@ type StorageInfo struct { func (x *StorageInfo) Reset() { *x = StorageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[27] + mi := &file_info_info_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4080,7 +4266,7 @@ func (x *StorageInfo) String() string { func (*StorageInfo) ProtoMessage() {} func (x *StorageInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[27] + mi := &file_info_info_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4093,7 +4279,7 @@ func (x *StorageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageInfo.ProtoReflect.Descriptor instead. func (*StorageInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{27} + return file_info_info_proto_rawDescGZIP(), []int{29} } func (x *StorageInfo) GetPoolName() string { @@ -4192,7 +4378,7 @@ type ZInfoHardware struct { func (x *ZInfoHardware) Reset() { *x = ZInfoHardware{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[28] + mi := &file_info_info_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4205,7 +4391,7 @@ func (x *ZInfoHardware) String() string { func (*ZInfoHardware) ProtoMessage() {} func (x *ZInfoHardware) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[28] + mi := &file_info_info_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4218,7 +4404,7 @@ func (x *ZInfoHardware) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoHardware.ProtoReflect.Descriptor instead. func (*ZInfoHardware) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{28} + return file_info_info_proto_rawDescGZIP(), []int{30} } func (x *ZInfoHardware) GetDisks() []*StorageDiskInfo { @@ -4319,7 +4505,7 @@ type ZInfoDevice struct { func (x *ZInfoDevice) Reset() { *x = ZInfoDevice{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[29] + mi := &file_info_info_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4332,7 +4518,7 @@ func (x *ZInfoDevice) String() string { func (*ZInfoDevice) ProtoMessage() {} func (x *ZInfoDevice) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[29] + mi := &file_info_info_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4345,7 +4531,7 @@ func (x *ZInfoDevice) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoDevice.ProtoReflect.Descriptor instead. func (*ZInfoDevice) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{29} + return file_info_info_proto_rawDescGZIP(), []int{31} } func (x *ZInfoDevice) GetMachineArch() string { @@ -4701,7 +4887,7 @@ type OptionalCapabilities struct { func (x *OptionalCapabilities) Reset() { *x = OptionalCapabilities{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[30] + mi := &file_info_info_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4714,7 +4900,7 @@ func (x *OptionalCapabilities) String() string { func (*OptionalCapabilities) ProtoMessage() {} func (x *OptionalCapabilities) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[30] + mi := &file_info_info_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4727,7 +4913,7 @@ func (x *OptionalCapabilities) ProtoReflect() protoreflect.Message { // Deprecated: Use OptionalCapabilities.ProtoReflect.Descriptor instead. func (*OptionalCapabilities) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{30} + return file_info_info_proto_rawDescGZIP(), []int{32} } func (x *OptionalCapabilities) GetHvTypeKubevirt() bool { @@ -4750,7 +4936,7 @@ type AttestationInfo struct { func (x *AttestationInfo) Reset() { *x = AttestationInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[31] + mi := &file_info_info_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4763,7 +4949,7 @@ func (x *AttestationInfo) String() string { func (*AttestationInfo) ProtoMessage() {} func (x *AttestationInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[31] + mi := &file_info_info_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4776,7 +4962,7 @@ func (x *AttestationInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AttestationInfo.ProtoReflect.Descriptor instead. func (*AttestationInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{31} + return file_info_info_proto_rawDescGZIP(), []int{33} } func (x *AttestationInfo) GetState() AttestationState { @@ -4806,7 +4992,7 @@ type SystemAdapterInfo struct { func (x *SystemAdapterInfo) Reset() { *x = SystemAdapterInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[32] + mi := &file_info_info_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4819,7 +5005,7 @@ func (x *SystemAdapterInfo) String() string { func (*SystemAdapterInfo) ProtoMessage() {} func (x *SystemAdapterInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[32] + mi := &file_info_info_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4832,7 +5018,7 @@ func (x *SystemAdapterInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemAdapterInfo.ProtoReflect.Descriptor instead. func (*SystemAdapterInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{32} + return file_info_info_proto_rawDescGZIP(), []int{34} } func (x *SystemAdapterInfo) GetCurrentIndex() uint32 { @@ -4866,7 +5052,7 @@ type DevicePortStatus struct { func (x *DevicePortStatus) Reset() { *x = DevicePortStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[33] + mi := &file_info_info_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4879,7 +5065,7 @@ func (x *DevicePortStatus) String() string { func (*DevicePortStatus) ProtoMessage() {} func (x *DevicePortStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[33] + mi := &file_info_info_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4892,7 +5078,7 @@ func (x *DevicePortStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use DevicePortStatus.ProtoReflect.Descriptor instead. func (*DevicePortStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{33} + return file_info_info_proto_rawDescGZIP(), []int{35} } func (x *DevicePortStatus) GetVersion() uint32 { @@ -4985,7 +5171,7 @@ type DevicePort struct { func (x *DevicePort) Reset() { *x = DevicePort{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[34] + mi := &file_info_info_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4998,7 +5184,7 @@ func (x *DevicePort) String() string { func (*DevicePort) ProtoMessage() {} func (x *DevicePort) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[34] + mi := &file_info_info_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5011,7 +5197,7 @@ func (x *DevicePort) ProtoReflect() protoreflect.Message { // Deprecated: Use DevicePort.ProtoReflect.Descriptor instead. func (*DevicePort) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{34} + return file_info_info_proto_rawDescGZIP(), []int{36} } func (x *DevicePort) GetIfname() string { @@ -5212,7 +5398,7 @@ type ProxyStatus struct { func (x *ProxyStatus) Reset() { *x = ProxyStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[35] + mi := &file_info_info_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5225,7 +5411,7 @@ func (x *ProxyStatus) String() string { func (*ProxyStatus) ProtoMessage() {} func (x *ProxyStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[35] + mi := &file_info_info_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5238,7 +5424,7 @@ func (x *ProxyStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ProxyStatus.ProtoReflect.Descriptor instead. func (*ProxyStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{35} + return file_info_info_proto_rawDescGZIP(), []int{37} } func (x *ProxyStatus) GetProxies() []*ProxyEntry { @@ -5296,7 +5482,7 @@ type ProxyEntry struct { func (x *ProxyEntry) Reset() { *x = ProxyEntry{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[36] + mi := &file_info_info_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5309,7 +5495,7 @@ func (x *ProxyEntry) String() string { func (*ProxyEntry) ProtoMessage() {} func (x *ProxyEntry) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[36] + mi := &file_info_info_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5322,7 +5508,7 @@ func (x *ProxyEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ProxyEntry.ProtoReflect.Descriptor instead. func (*ProxyEntry) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{36} + return file_info_info_proto_rawDescGZIP(), []int{38} } func (x *ProxyEntry) GetType() uint32 { @@ -5358,7 +5544,7 @@ type WirelessStatus struct { func (x *WirelessStatus) Reset() { *x = WirelessStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[37] + mi := &file_info_info_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5371,7 +5557,7 @@ func (x *WirelessStatus) String() string { func (*WirelessStatus) ProtoMessage() {} func (x *WirelessStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[37] + mi := &file_info_info_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5384,7 +5570,7 @@ func (x *WirelessStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use WirelessStatus.ProtoReflect.Descriptor instead. func (*WirelessStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{37} + return file_info_info_proto_rawDescGZIP(), []int{39} } func (x *WirelessStatus) GetType() WirelessType { @@ -5427,12 +5613,17 @@ type ZCellularStatus struct { // if the connectivity probing is failing, error is reported here // (see CellularConnectivityProbe). ProbeError string `protobuf:"bytes,11,opt,name=probe_error,json=probeError,proto3" json:"probe_error,omitempty"` + // Contains all bearers currently associated with the cellular connection, + // including the attach (initial) bearer. + Bearers []*CellularBearer `protobuf:"bytes,12,rep,name=bearers,proto3" json:"bearers,omitempty"` + // Cellular connection profiles stored on the modem. + Profiles []*CellularProfile `protobuf:"bytes,13,rep,name=profiles,proto3" json:"profiles,omitempty"` } func (x *ZCellularStatus) Reset() { *x = ZCellularStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[38] + mi := &file_info_info_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5445,7 +5636,7 @@ func (x *ZCellularStatus) String() string { func (*ZCellularStatus) ProtoMessage() {} func (x *ZCellularStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[38] + mi := &file_info_info_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5458,7 +5649,7 @@ func (x *ZCellularStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ZCellularStatus.ProtoReflect.Descriptor instead. func (*ZCellularStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{38} + return file_info_info_proto_rawDescGZIP(), []int{40} } func (x *ZCellularStatus) GetCellularModule() string { @@ -5510,6 +5701,20 @@ func (x *ZCellularStatus) GetProbeError() string { return "" } +func (x *ZCellularStatus) GetBearers() []*CellularBearer { + if x != nil { + return x.Bearers + } + return nil +} + +func (x *ZCellularStatus) GetProfiles() []*CellularProfile { + if x != nil { + return x.Profiles + } + return nil +} + // SW Info for the device base OS // Many of these fields are for debug purposes. The ones intended // for the UI/cli are userStatus, subStatus*, shortVersion, and swErr @@ -5537,7 +5742,7 @@ type ZInfoDevSW struct { func (x *ZInfoDevSW) Reset() { *x = ZInfoDevSW{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[39] + mi := &file_info_info_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5550,7 +5755,7 @@ func (x *ZInfoDevSW) String() string { func (*ZInfoDevSW) ProtoMessage() {} func (x *ZInfoDevSW) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[39] + mi := &file_info_info_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5563,7 +5768,7 @@ func (x *ZInfoDevSW) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoDevSW.ProtoReflect.Descriptor instead. func (*ZInfoDevSW) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{39} + return file_info_info_proto_rawDescGZIP(), []int{41} } func (x *ZInfoDevSW) GetActivated() bool { @@ -5672,7 +5877,7 @@ type ZInfoStorage struct { func (x *ZInfoStorage) Reset() { *x = ZInfoStorage{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[40] + mi := &file_info_info_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5685,7 +5890,7 @@ func (x *ZInfoStorage) String() string { func (*ZInfoStorage) ProtoMessage() {} func (x *ZInfoStorage) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[40] + mi := &file_info_info_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5698,7 +5903,7 @@ func (x *ZInfoStorage) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoStorage.ProtoReflect.Descriptor instead. func (*ZInfoStorage) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{40} + return file_info_info_proto_rawDescGZIP(), []int{42} } func (x *ZInfoStorage) GetDevice() string { @@ -5767,7 +5972,7 @@ type ZInfoSnapshot struct { func (x *ZInfoSnapshot) Reset() { *x = ZInfoSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[41] + mi := &file_info_info_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5780,7 +5985,7 @@ func (x *ZInfoSnapshot) String() string { func (*ZInfoSnapshot) ProtoMessage() {} func (x *ZInfoSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[41] + mi := &file_info_info_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5793,7 +5998,7 @@ func (x *ZInfoSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoSnapshot.ProtoReflect.Descriptor instead. func (*ZInfoSnapshot) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{41} + return file_info_info_proto_rawDescGZIP(), []int{43} } func (x *ZInfoSnapshot) GetId() string { @@ -5849,7 +6054,7 @@ type ZInfoClusterNode struct { func (x *ZInfoClusterNode) Reset() { *x = ZInfoClusterNode{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[42] + mi := &file_info_info_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5862,7 +6067,7 @@ func (x *ZInfoClusterNode) String() string { func (*ZInfoClusterNode) ProtoMessage() {} func (x *ZInfoClusterNode) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[42] + mi := &file_info_info_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5875,7 +6080,7 @@ func (x *ZInfoClusterNode) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoClusterNode.ProtoReflect.Descriptor instead. func (*ZInfoClusterNode) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{42} + return file_info_info_proto_rawDescGZIP(), []int{44} } func (x *ZInfoClusterNode) GetNodeStatus() ZInfoClusterNodeStatus { @@ -5911,7 +6116,7 @@ type ZInfoApp struct { func (x *ZInfoApp) Reset() { *x = ZInfoApp{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[43] + mi := &file_info_info_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5924,7 +6129,7 @@ func (x *ZInfoApp) String() string { func (*ZInfoApp) ProtoMessage() {} func (x *ZInfoApp) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[43] + mi := &file_info_info_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5937,7 +6142,7 @@ func (x *ZInfoApp) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoApp.ProtoReflect.Descriptor instead. func (*ZInfoApp) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{43} + return file_info_info_proto_rawDescGZIP(), []int{45} } func (x *ZInfoApp) GetAppID() string { @@ -6045,7 +6250,7 @@ type ZInfoVpnLinkInfo struct { func (x *ZInfoVpnLinkInfo) Reset() { *x = ZInfoVpnLinkInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[44] + mi := &file_info_info_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6058,7 +6263,7 @@ func (x *ZInfoVpnLinkInfo) String() string { func (*ZInfoVpnLinkInfo) ProtoMessage() {} func (x *ZInfoVpnLinkInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[44] + mi := &file_info_info_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6071,7 +6276,7 @@ func (x *ZInfoVpnLinkInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnLinkInfo.ProtoReflect.Descriptor instead. func (*ZInfoVpnLinkInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{44} + return file_info_info_proto_rawDescGZIP(), []int{46} } func (x *ZInfoVpnLinkInfo) GetSpiId() string { @@ -6114,7 +6319,7 @@ type ZInfoVpnLink struct { func (x *ZInfoVpnLink) Reset() { *x = ZInfoVpnLink{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[45] + mi := &file_info_info_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6127,7 +6332,7 @@ func (x *ZInfoVpnLink) String() string { func (*ZInfoVpnLink) ProtoMessage() {} func (x *ZInfoVpnLink) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[45] + mi := &file_info_info_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6140,7 +6345,7 @@ func (x *ZInfoVpnLink) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnLink.ProtoReflect.Descriptor instead. func (*ZInfoVpnLink) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{45} + return file_info_info_proto_rawDescGZIP(), []int{47} } func (x *ZInfoVpnLink) GetId() string { @@ -6213,7 +6418,7 @@ type ZInfoVpnEndPoint struct { func (x *ZInfoVpnEndPoint) Reset() { *x = ZInfoVpnEndPoint{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[46] + mi := &file_info_info_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6226,7 +6431,7 @@ func (x *ZInfoVpnEndPoint) String() string { func (*ZInfoVpnEndPoint) ProtoMessage() {} func (x *ZInfoVpnEndPoint) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[46] + mi := &file_info_info_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6239,7 +6444,7 @@ func (x *ZInfoVpnEndPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnEndPoint.ProtoReflect.Descriptor instead. func (*ZInfoVpnEndPoint) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{46} + return file_info_info_proto_rawDescGZIP(), []int{48} } func (x *ZInfoVpnEndPoint) GetId() string { @@ -6283,7 +6488,7 @@ type ZInfoVpnConn struct { func (x *ZInfoVpnConn) Reset() { *x = ZInfoVpnConn{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[47] + mi := &file_info_info_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6296,7 +6501,7 @@ func (x *ZInfoVpnConn) String() string { func (*ZInfoVpnConn) ProtoMessage() {} func (x *ZInfoVpnConn) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[47] + mi := &file_info_info_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6309,7 +6514,7 @@ func (x *ZInfoVpnConn) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnConn.ProtoReflect.Descriptor instead. func (*ZInfoVpnConn) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{47} + return file_info_info_proto_rawDescGZIP(), []int{49} } func (x *ZInfoVpnConn) GetId() string { @@ -6390,7 +6595,7 @@ type ZInfoVpn struct { func (x *ZInfoVpn) Reset() { *x = ZInfoVpn{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[48] + mi := &file_info_info_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6403,7 +6608,7 @@ func (x *ZInfoVpn) String() string { func (*ZInfoVpn) ProtoMessage() {} func (x *ZInfoVpn) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[48] + mi := &file_info_info_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6416,7 +6621,7 @@ func (x *ZInfoVpn) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpn.ProtoReflect.Descriptor instead. func (*ZInfoVpn) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{48} + return file_info_info_proto_rawDescGZIP(), []int{50} } func (x *ZInfoVpn) GetUpTime() uint64 { @@ -6517,7 +6722,7 @@ type ZInfoNetworkInstance struct { func (x *ZInfoNetworkInstance) Reset() { *x = ZInfoNetworkInstance{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[49] + mi := &file_info_info_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6530,7 +6735,7 @@ func (x *ZInfoNetworkInstance) String() string { func (*ZInfoNetworkInstance) ProtoMessage() {} func (x *ZInfoNetworkInstance) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[49] + mi := &file_info_info_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6543,7 +6748,7 @@ func (x *ZInfoNetworkInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoNetworkInstance.ProtoReflect.Descriptor instead. func (*ZInfoNetworkInstance) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{49} + return file_info_info_proto_rawDescGZIP(), []int{51} } func (x *ZInfoNetworkInstance) GetNetworkID() string { @@ -6750,7 +6955,7 @@ type IPRoute struct { func (x *IPRoute) Reset() { *x = IPRoute{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[50] + mi := &file_info_info_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6763,7 +6968,7 @@ func (x *IPRoute) String() string { func (*IPRoute) ProtoMessage() {} func (x *IPRoute) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[50] + mi := &file_info_info_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6776,7 +6981,7 @@ func (x *IPRoute) ProtoReflect() protoreflect.Message { // Deprecated: Use IPRoute.ProtoReflect.Descriptor instead. func (*IPRoute) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{50} + return file_info_info_proto_rawDescGZIP(), []int{52} } func (x *IPRoute) GetDestinationNetwork() string { @@ -6820,7 +7025,7 @@ type UsageInfo struct { func (x *UsageInfo) Reset() { *x = UsageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[51] + mi := &file_info_info_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6833,7 +7038,7 @@ func (x *UsageInfo) String() string { func (*UsageInfo) ProtoMessage() {} func (x *UsageInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[51] + mi := &file_info_info_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6846,7 +7051,7 @@ func (x *UsageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UsageInfo.ProtoReflect.Descriptor instead. func (*UsageInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{51} + return file_info_info_proto_rawDescGZIP(), []int{53} } func (x *UsageInfo) GetCreateTime() *timestamppb.Timestamp { @@ -6882,7 +7087,7 @@ type VolumeResources struct { func (x *VolumeResources) Reset() { *x = VolumeResources{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[52] + mi := &file_info_info_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6895,7 +7100,7 @@ func (x *VolumeResources) String() string { func (*VolumeResources) ProtoMessage() {} func (x *VolumeResources) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[52] + mi := &file_info_info_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6908,7 +7113,7 @@ func (x *VolumeResources) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeResources.ProtoReflect.Descriptor instead. func (*VolumeResources) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{52} + return file_info_info_proto_rawDescGZIP(), []int{54} } func (x *VolumeResources) GetMaxSizeBytes() uint64 { @@ -6953,7 +7158,7 @@ type ZInfoVolume struct { func (x *ZInfoVolume) Reset() { *x = ZInfoVolume{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[53] + mi := &file_info_info_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6966,7 +7171,7 @@ func (x *ZInfoVolume) String() string { func (*ZInfoVolume) ProtoMessage() {} func (x *ZInfoVolume) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[53] + mi := &file_info_info_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6979,7 +7184,7 @@ func (x *ZInfoVolume) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVolume.ProtoReflect.Descriptor instead. func (*ZInfoVolume) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{53} + return file_info_info_proto_rawDescGZIP(), []int{55} } func (x *ZInfoVolume) GetUuid() string { @@ -7049,7 +7254,7 @@ type ContentResources struct { func (x *ContentResources) Reset() { *x = ContentResources{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[54] + mi := &file_info_info_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7062,7 +7267,7 @@ func (x *ContentResources) String() string { func (*ContentResources) ProtoMessage() {} func (x *ContentResources) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[54] + mi := &file_info_info_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7075,7 +7280,7 @@ func (x *ContentResources) ProtoReflect() protoreflect.Message { // Deprecated: Use ContentResources.ProtoReflect.Descriptor instead. func (*ContentResources) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{54} + return file_info_info_proto_rawDescGZIP(), []int{56} } func (x *ContentResources) GetCurSizeBytes() uint64 { @@ -7118,7 +7323,7 @@ type ZInfoContentTree struct { func (x *ZInfoContentTree) Reset() { *x = ZInfoContentTree{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[55] + mi := &file_info_info_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7131,7 +7336,7 @@ func (x *ZInfoContentTree) String() string { func (*ZInfoContentTree) ProtoMessage() {} func (x *ZInfoContentTree) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[55] + mi := &file_info_info_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7144,7 +7349,7 @@ func (x *ZInfoContentTree) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoContentTree.ProtoReflect.Descriptor instead. func (*ZInfoContentTree) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{55} + return file_info_info_proto_rawDescGZIP(), []int{57} } func (x *ZInfoContentTree) GetUuid() string { @@ -7242,7 +7447,7 @@ type ZInfoBlob struct { func (x *ZInfoBlob) Reset() { *x = ZInfoBlob{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[56] + mi := &file_info_info_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7255,7 +7460,7 @@ func (x *ZInfoBlob) String() string { func (*ZInfoBlob) ProtoMessage() {} func (x *ZInfoBlob) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[56] + mi := &file_info_info_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7268,7 +7473,7 @@ func (x *ZInfoBlob) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoBlob.ProtoReflect.Descriptor instead. func (*ZInfoBlob) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{56} + return file_info_info_proto_rawDescGZIP(), []int{58} } func (x *ZInfoBlob) GetSha256() string { @@ -7325,7 +7530,7 @@ type ZInfoBlobList struct { func (x *ZInfoBlobList) Reset() { *x = ZInfoBlobList{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[57] + mi := &file_info_info_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7338,7 +7543,7 @@ func (x *ZInfoBlobList) String() string { func (*ZInfoBlobList) ProtoMessage() {} func (x *ZInfoBlobList) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[57] + mi := &file_info_info_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7351,7 +7556,7 @@ func (x *ZInfoBlobList) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoBlobList.ProtoReflect.Descriptor instead. func (*ZInfoBlobList) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{57} + return file_info_info_proto_rawDescGZIP(), []int{59} } func (x *ZInfoBlobList) GetBlob() []*ZInfoBlob { @@ -7398,7 +7603,7 @@ type ZInfoMsg struct { func (x *ZInfoMsg) Reset() { *x = ZInfoMsg{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[58] + mi := &file_info_info_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7411,7 +7616,7 @@ func (x *ZInfoMsg) String() string { func (*ZInfoMsg) ProtoMessage() {} func (x *ZInfoMsg) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[58] + mi := &file_info_info_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7424,7 +7629,7 @@ func (x *ZInfoMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoMsg.ProtoReflect.Descriptor instead. func (*ZInfoMsg) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{58} + return file_info_info_proto_rawDescGZIP(), []int{60} } func (x *ZInfoMsg) GetZtype() ZInfoTypes { @@ -7673,7 +7878,7 @@ type Capabilities struct { func (x *Capabilities) Reset() { *x = Capabilities{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[59] + mi := &file_info_info_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7686,7 +7891,7 @@ func (x *Capabilities) String() string { func (*Capabilities) ProtoMessage() {} func (x *Capabilities) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[59] + mi := &file_info_info_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7699,7 +7904,7 @@ func (x *Capabilities) ProtoReflect() protoreflect.Message { // Deprecated: Use Capabilities.ProtoReflect.Descriptor instead. func (*Capabilities) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{59} + return file_info_info_proto_rawDescGZIP(), []int{61} } func (x *Capabilities) GetHWAssistedVirtualization() bool { @@ -7732,7 +7937,7 @@ type ZInfoAppInstMetaData struct { func (x *ZInfoAppInstMetaData) Reset() { *x = ZInfoAppInstMetaData{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[60] + mi := &file_info_info_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7745,7 +7950,7 @@ func (x *ZInfoAppInstMetaData) String() string { func (*ZInfoAppInstMetaData) ProtoMessage() {} func (x *ZInfoAppInstMetaData) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[60] + mi := &file_info_info_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7758,7 +7963,7 @@ func (x *ZInfoAppInstMetaData) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoAppInstMetaData.ProtoReflect.Descriptor instead. func (*ZInfoAppInstMetaData) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{60} + return file_info_info_proto_rawDescGZIP(), []int{62} } func (x *ZInfoAppInstMetaData) GetUuid() string { @@ -7803,7 +8008,7 @@ type ZInfoEdgeview struct { func (x *ZInfoEdgeview) Reset() { *x = ZInfoEdgeview{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[61] + mi := &file_info_info_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7816,7 +8021,7 @@ func (x *ZInfoEdgeview) String() string { func (*ZInfoEdgeview) ProtoMessage() {} func (x *ZInfoEdgeview) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[61] + mi := &file_info_info_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7829,7 +8034,7 @@ func (x *ZInfoEdgeview) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoEdgeview.ProtoReflect.Descriptor instead. func (*ZInfoEdgeview) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{61} + return file_info_info_proto_rawDescGZIP(), []int{63} } func (x *ZInfoEdgeview) GetExpireTime() *timestamppb.Timestamp { @@ -7913,7 +8118,7 @@ type ZInfoLocation struct { func (x *ZInfoLocation) Reset() { *x = ZInfoLocation{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[62] + mi := &file_info_info_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7926,7 +8131,7 @@ func (x *ZInfoLocation) String() string { func (*ZInfoLocation) ProtoMessage() {} func (x *ZInfoLocation) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[62] + mi := &file_info_info_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7939,7 +8144,7 @@ func (x *ZInfoLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoLocation.ProtoReflect.Descriptor instead. func (*ZInfoLocation) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{62} + return file_info_info_proto_rawDescGZIP(), []int{64} } func (x *ZInfoLocation) GetLatitude() float64 { @@ -8029,7 +8234,7 @@ type ZInfoKubeClusterUpdateStatus struct { func (x *ZInfoKubeClusterUpdateStatus) Reset() { *x = ZInfoKubeClusterUpdateStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[63] + mi := &file_info_info_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8042,7 +8247,7 @@ func (x *ZInfoKubeClusterUpdateStatus) String() string { func (*ZInfoKubeClusterUpdateStatus) ProtoMessage() {} func (x *ZInfoKubeClusterUpdateStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[63] + mi := &file_info_info_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8055,7 +8260,7 @@ func (x *ZInfoKubeClusterUpdateStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoKubeClusterUpdateStatus.ProtoReflect.Descriptor instead. func (*ZInfoKubeClusterUpdateStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{63} + return file_info_info_proto_rawDescGZIP(), []int{65} } func (x *ZInfoKubeClusterUpdateStatus) GetCurrentNode() string { @@ -8117,7 +8322,7 @@ type ZInfoKubeCluster struct { func (x *ZInfoKubeCluster) Reset() { *x = ZInfoKubeCluster{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[64] + mi := &file_info_info_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8130,7 +8335,7 @@ func (x *ZInfoKubeCluster) String() string { func (*ZInfoKubeCluster) ProtoMessage() {} func (x *ZInfoKubeCluster) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[64] + mi := &file_info_info_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8143,7 +8348,7 @@ func (x *ZInfoKubeCluster) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoKubeCluster.ProtoReflect.Descriptor instead. func (*ZInfoKubeCluster) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{64} + return file_info_info_proto_rawDescGZIP(), []int{66} } func (x *ZInfoKubeCluster) GetNodes() []*KubeNodeInfo { @@ -8501,1331 +8706,1376 @@ var file_info_info_proto_rawDesc = []byte{ 0x0a, 0x07, 0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6f, 0x72, - 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x6f, 0x72, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x68, 0x65, 0x6e, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x68, - 0x65, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x61, 0x77, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0xeb, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x77, 0x77, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x73, 0x6d, 0x61, - 0x72, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x09, 0x73, - 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x93, - 0x02, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x64, - 0x69, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, - 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, - 0x07, 0x67, 0x5f, 0x75, 0x5f, 0x69, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x67, 0x55, 0x49, 0x44, 0x22, 0xe5, 0x04, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x7a, 0x66, - 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x7a, 0x66, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x52, 0x61, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x7a, 0x76, 0x6f, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5a, 0x76, 0x6f, 0x6c, - 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x64, 0x69, - 0x73, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x43, 0x65, 0x6c, 0x6c, 0x75, + 0x6c, 0x61, 0x72, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x6e, 0x12, 0x42, 0x0a, 0x0b, 0x62, + 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, + 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 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, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf1, 0x01, 0x0a, 0x0f, 0x43, 0x65, 0x6c, 0x6c, + 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x6e, + 0x12, 0x42, 0x0a, 0x0b, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x65, + 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, + 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x5f, 0x72, + 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, + 0x72, 0x62, 0x69, 0x64, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x22, 0x4b, 0x0a, 0x0d, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x3a, 0x0a, - 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x22, 0xe9, 0x15, 0x0a, 0x0b, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, - 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x6e, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x52, 0x05, 0x6d, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x4e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x12, 0x43, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x6b, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x73, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6d, 0x61, 0x72, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x6d, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, + 0x6f, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, + 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x77, 0x68, 0x65, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, + 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, + 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x77, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x77, 0x77, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3d, + 0x0a, 0x0a, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x4a, 0x04, 0x08, + 0x03, 0x10, 0x04, 0x22, 0x93, 0x02, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, + 0x12, 0x3b, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x40, 0x0a, + 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x07, 0x67, 0x5f, 0x75, 0x5f, 0x69, 0x5f, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x55, 0x49, 0x44, 0x22, 0xe5, 0x04, 0x0a, 0x0b, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, + 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x7a, 0x66, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x7a, 0x66, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x7a, 0x70, 0x6f, 0x6f, + 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x7a, + 0x76, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5a, 0x76, 0x6f, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x4e, 0x53, 0x52, 0x03, 0x64, 0x6e, - 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x12, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, - 0x0a, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x3b, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x53, 0x57, 0x52, - 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, - 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x17, - 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x26, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x09, 0x48, 0x53, 0x4d, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x48, 0x53, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6c, - 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, - 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, - 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, + 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, + 0x67, 0x22, 0x4b, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, + 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x22, 0xe9, + 0x15, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, + 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x05, 0x6d, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, - 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x20, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, - 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x62, 0x6f, - 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x10, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x22, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x74, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x72, 0x61, - 0x64, 0x69, 0x6f, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x65, 0x6c, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x73, - 0x12, 0x35, 0x0a, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x69, 0x6d, 0x63, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x66, 0x0a, 0x17, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x15, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x5f, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x50, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x61, 0x73, 0x65, 0x6f, - 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6f, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x18, 0x6d, 0x61, 0x69, - 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, - 0x25, 0x0a, 0x0c, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x2f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x72, 0x6d, 0x61, - 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x17, 0x73, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x68, - 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x0e, 0x61, 0x70, 0x69, 0x5f, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x0d, 0x61, 0x70, 0x69, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x35, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x14, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, - 0x10, 0x68, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x76, 0x54, 0x79, 0x70, 0x65, 0x4b, - 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x76, - 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 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, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 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, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x65, 0x64, 0x65, 0x64, 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, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x99, 0x07, 0x0a, 0x0a, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4d, 0x67, 0x6d, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x72, 0x65, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x4e, 0x74, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6e, 0x73, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, - 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x12, 0x24, 0x0a, 0x0d, 0x64, - 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, 0x68, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, - 0x68, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x17, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x72, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x4e, - 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, - 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0b, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, + 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, + 0x65, 0x76, 0x53, 0x57, 0x52, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, + 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x42, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x17, 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, - 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x68, 0x79, 0x49, 0x6f, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x22, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0xf6, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x52, 0x4c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x70, 0x61, 0x64, 0x55, 0x52, 0x4c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x70, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x22, - 0x4c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x0e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x66, 0x6f, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x09, 0x48, + 0x53, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x48, 0x53, 0x4d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x08, + 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, - 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x73, 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x49, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, + 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x13, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x62, 0x6f, + 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x49, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x22, 0xf1, 0x02, 0x0a, 0x0f, 0x5a, 0x43, - 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, - 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6d, 0x5f, 0x63, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6d, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, - 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x0b, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 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, 0x0b, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdc, 0x04, - 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x53, 0x57, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, - 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x73, 0x75, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, - 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, - 0x08, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x73, 0x6e, 0x61, 0x70, 0x45, 0x72, 0x72, 0x22, 0x60, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x86, 0x05, 0x0a, 0x08, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, + 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x65, + 0x6c, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x65, 0x6c, 0x6c, 0x52, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x18, 0x24, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x69, 0x6d, 0x63, 0x61, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x05, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x61, - 0x70, 0x70, 0x45, 0x72, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x73, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x69, + 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, + 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, + 0x67, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x17, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, + 0x67, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x62, 0x6f, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x29, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x61, 0x70, 0x70, - 0x45, 0x72, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6f, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x62, 0x61, 0x73, 0x65, 0x6f, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x61, 0x73, + 0x65, 0x6f, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, + 0x0a, 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, + 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x30, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x36, 0x0a, 0x17, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x15, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x32, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x0e, 0x61, 0x70, 0x69, + 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x61, 0x70, 0x69, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x15, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x66, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, - 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0c, 0x4a, 0x04, 0x08, - 0x13, 0x10, 0x14, 0x22, 0x5e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, - 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x75, 0x62, 0x4e, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, - 0x4c, 0x69, 0x6e, 0x6b, 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, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x71, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x73, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, - 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x14, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x75, + 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x76, + 0x54, 0x79, 0x70, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x0f, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x22, 0x76, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x10, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 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, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, + 0x6c, 0x61, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 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, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 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, 0x0d, 0x6c, 0x61, 0x73, + 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0x99, 0x07, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x4d, 0x67, 0x6d, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4d, 0x67, + 0x6d, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x74, 0x70, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x6f, + 0x72, 0x65, 0x4e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, + 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, + 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x48, 0x69, 0x67, 0x68, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x50, 0x41, 0x64, + 0x64, 0x72, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, + 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x44, 0x4e, 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, + 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xe7, 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 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, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x68, + 0x79, 0x49, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x77, + 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x77, 0x69, 0x72, 0x65, 0x6c, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0xf6, 0x01, 0x0a, 0x0b, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x70, + 0x61, 0x64, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x70, 0x61, + 0x64, 0x55, 0x52, 0x4c, 0x22, 0x4c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x08, + 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x22, 0xf2, + 0x03, 0x0a, 0x0f, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x6c, + 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x69, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x69, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, + 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, + 0x69, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x73, 0x12, + 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 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, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x07, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x61, 0x72, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x52, 0x07, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x73, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x61, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x22, 0xdc, 0x04, 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, + 0x53, 0x57, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x12, 0x2a, 0x0a, + 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x73, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, + 0x12, 0x42, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, + 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x0d, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x65, 0x72, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x6e, 0x61, 0x70, 0x45, 0x72, 0x72, 0x22, 0x60, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x86, 0x05, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x70, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, + 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 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, 0x08, 0x62, 0x6f, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x45, 0x72, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x06, 0x61, 0x70, 0x70, 0x45, 0x72, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x66, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, + 0x09, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0x5e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, + 0x69, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x14, + 0x0a, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x65, 0x73, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, - 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x22, 0x9f, 0x08, 0x0a, - 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 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, 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, - 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x12, 0x32, 0x0a, 0x12, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, - 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, - 0x50, 0x41, 0x64, 0x64, 0x72, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x49, 0x50, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x76, 0x69, 0x66, 0x73, 0x18, - 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, - 0x56, 0x69, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x76, 0x69, 0x66, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, - 0x6e, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, + 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4e, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xe7, + 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 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, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, + 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, + 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, + 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, + 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x63, + 0x6f, 0x6e, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x39, - 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x04, 0x63, 0x6f, + 0x6e, 0x6e, 0x22, 0x9f, 0x08, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, + 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 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, 0x0b, + 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x08, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x22, 0x89, - 0x01, 0x0a, 0x07, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x70, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x52, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x16, 0x6c, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, - 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, - 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, - 0x8b, 0x03, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, - 0x72, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x36, 0x0a, - 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, + 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, + 0x74, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x12, + 0x32, 0x0a, 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x12, 0x50, 0x0a, 0x0d, 0x69, + 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x49, 0x50, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, + 0x04, 0x76, 0x69, 0x66, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, - 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, - 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xb5, 0x02, 0x0a, 0x09, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, - 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x6c, - 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x56, 0x69, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x76, + 0x69, 0x66, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x12, 0x4a, 0x0a, + 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, + 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x22, 0xa7, - 0x09, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x05, 0x7a, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x18, 0x28, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, + 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6d, 0x74, 0x75, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, + 0x08, 0x18, 0x10, 0x19, 0x22, 0x89, 0x01, 0x0a, 0x07, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x70, 0x70, + 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, + 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 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, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x05, 0x7a, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x05, 0x64, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x64, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, - 0x48, 0x00, 0x52, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x6e, 0x69, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x38, - 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x48, 0x00, - 0x52, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x05, 0x62, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x76, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, - 0x52, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x77, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, + 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x10, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, - 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x6c, - 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x6e, - 0x74, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x54, 0x50, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x74, 0x70, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, + 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, + 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, + 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb5, 0x02, 0x0a, 0x09, 0x5a, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, + 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x63, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x22, + 0x43, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x32, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x04, + 0x62, 0x6c, 0x6f, 0x62, 0x22, 0xa7, 0x09, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x73, + 0x67, 0x12, 0x35, 0x0a, 0x05, 0x7a, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x05, 0x7a, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x76, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x05, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0b, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22, 0x76, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x48, 0x57, 0x41, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x48, 0x57, 0x41, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x7c, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x05, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0x43, 0x0a, 0x06, 0x6e, 0x69, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, + 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, + 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x72, 0x65, 0x65, 0x48, 0x00, 0x52, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, + 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x6d, 0x64, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, - 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x01, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, - 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, - 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x45, 0x78, 0x74, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x75, - 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 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, 0x0c, - 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x5a, 0x0a, 0x16, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, + 0x0a, 0x06, 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x07, + 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x09, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74, 0x63, 0x68, + 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, + 0x6e, 0x74, 0x70, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x63, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, + 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x61, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0b, 0x61, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22, 0x76, + 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, + 0x0a, 0x18, 0x48, 0x57, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x18, 0x48, 0x57, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x4f, + 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, + 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, + 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 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, 0x0c, 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x5a, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x56, + 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x6c, - 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, - 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x13, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x35, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x75, - 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, - 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, - 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x96, - 0x02, 0x0a, 0x1c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, - 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, - 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x82, 0x03, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, + 0x79, 0x52, 0x13, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x31, 0x0a, + 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, + 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, + 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x96, 0x02, 0x0a, 0x1c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, + 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x50, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x70, 0x6f, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x5f, - 0x61, 0x70, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x45, 0x56, 0x45, 0x41, 0x70, 0x70, 0x50, 0x6f, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x65, 0x76, 0x65, 0x41, 0x70, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x76, - 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x56, 0x4d, 0x49, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x65, 0x76, 0x65, 0x56, 0x6d, 0x41, 0x70, 0x70, 0x73, 0x2a, 0x75, 0x0a, 0x11, - 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, - 0x65, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x75, 0x67, 0x65, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, - 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x10, 0x03, 0x2a, 0xb0, 0x02, 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x4e, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x5a, 0x69, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x5a, - 0x69, 0x41, 0x70, 0x70, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x5a, 0x69, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x06, 0x12, 0x0c, 0x0a, - 0x08, 0x5a, 0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x5a, - 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x10, 0x08, 0x12, 0x0e, - 0x0a, 0x0a, 0x5a, 0x69, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x09, 0x12, 0x15, - 0x0a, 0x11, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, - 0x61, 0x74, 0x61, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x45, 0x64, 0x67, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x5a, 0x69, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x5a, 0x69, - 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, - 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x11, 0x12, - 0x1d, 0x0a, 0x19, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x12, 0x22, 0x04, - 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, - 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x2a, 0x91, 0x03, 0x0a, 0x08, 0x5a, 0x53, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, - 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, - 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x48, - 0x41, 0x4c, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x41, 0x4c, 0x54, - 0x45, 0x44, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, - 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, - 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, - 0x41, 0x47, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, - 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, - 0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, - 0x0d, 0x0a, 0x09, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x10, 0x12, 0x0c, - 0x0a, 0x08, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x11, 0x12, 0x0b, 0x0a, 0x07, - 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x41, - 0x44, 0x45, 0x44, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x57, 0x41, 0x49, 0x54, 0x4e, 0x45, - 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x14, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, - 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x16, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x2a, 0x99, 0x02, 0x0a, 0x06, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, - 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4f, 0x53, 0x10, - 0x01, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x59, 0x53, 0x54, - 0x45, 0x4d, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, - 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x16, - 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, - 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x05, 0x12, - 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, - 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, - 0x52, 0x4b, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, - 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, - 0x08, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, - 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, - 0x42, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, - 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0b, 0x2a, 0x63, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, - 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x41, - 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x45, 0x56, 0x45, 0x52, - 0x49, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x4e, 0x0a, 0x16, 0x48, - 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, - 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x13, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, - 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, - 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, - 0x45, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, - 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, - 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, - 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x2a, 0x3f, 0x0a, 0x09, 0x50, 0x43, 0x52, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x43, 0x52, 0x5f, 0x44, 0x49, 0x53, - 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x07, 0x53, 0x69, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, - 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x45, 0x53, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xa0, 0x02, 0x0a, 0x17, 0x5a, 0x43, 0x65, 0x6c, 0x6c, - 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, - 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, - 0x0a, 0x22, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, - 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, - 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, - 0x12, 0x25, 0x0a, 0x21, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, - 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x33, 0x0a, 0x2f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, - 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x4e, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, + 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, + 0x43, 0x6f, 0x6d, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x82, 0x03, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x70, + 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x50, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x08, 0x65, 0x76, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x45, 0x56, 0x45, 0x41, 0x70, + 0x70, 0x50, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x65, 0x76, 0x65, 0x41, 0x70, 0x70, + 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, + 0x56, 0x4d, 0x49, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x65, 0x76, 0x65, 0x56, 0x6d, 0x41, 0x70, + 0x70, 0x73, 0x2a, 0x75, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, + 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, + 0x47, 0x61, 0x75, 0x67, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, + 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x03, 0x2a, 0xb0, 0x02, 0x0a, 0x0a, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x4e, 0x6f, + 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x5a, 0x69, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, + 0x5a, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x5a, 0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, + 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, + 0x65, 0x65, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, + 0x73, 0x74, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x5a, + 0x69, 0x50, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x10, 0x0e, + 0x12, 0x10, 0x0a, 0x0c, 0x5a, 0x69, 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x10, 0x12, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, + 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x2a, 0x91, 0x03, 0x0a, + 0x08, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, + 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, + 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, + 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x41, 0x4c, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0a, + 0x0a, 0x06, 0x48, 0x41, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, + 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x4f, 0x4c, + 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, + 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, + 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x4c, + 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x49, + 0x4e, 0x47, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x11, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x12, 0x12, + 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x41, + 0x57, 0x41, 0x49, 0x54, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x10, 0x14, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x15, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, + 0x44, 0x10, 0x16, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x17, + 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x18, + 0x2a, 0x99, 0x02, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, + 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, + 0x53, 0x45, 0x5f, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x54, 0x49, 0x54, + 0x59, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x41, 0x55, + 0x4c, 0x54, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, + 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, + 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x10, 0x09, + 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, + 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x54, + 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0b, 0x2a, 0x63, 0x0a, 0x08, + 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, + 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x56, 0x45, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x03, 0x2a, 0x4e, 0x0a, 0x16, 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x46, + 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, + 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, + 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, + 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, + 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, + 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x2a, 0x3f, 0x0a, 0x09, + 0x50, 0x43, 0x52, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, + 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, + 0x43, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, + 0x07, 0x53, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x4d, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4d, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x53, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xa0, 0x02, 0x0a, + 0x17, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x43, 0x45, + 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, + 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, - 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x43, - 0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x92, 0x01, 0x0a, 0x18, 0x5a, 0x43, - 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x27, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, - 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, - 0x4f, 0x4c, 0x5f, 0x51, 0x4d, 0x49, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x43, 0x45, - 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, - 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xb1, - 0x02, 0x0a, 0x0c, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1d, 0x0a, 0x19, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x5a, 0x44, 0x45, 0x56, - 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, - 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, - 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x5a, 0x44, 0x45, - 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4f, - 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, - 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, - 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x44, 0x45, 0x56, 0x49, - 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x12, 0x1e, 0x0a, - 0x1a, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x07, 0x12, 0x23, 0x0a, - 0x1f, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, - 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, - 0x10, 0x08, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, - 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, - 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, - 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, - 0x4e, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x10, 0x05, - 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, - 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, - 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x07, 0x2a, 0xe3, 0x01, 0x0a, 0x0f, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, - 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x30, 0x10, 0x01, 0x12, 0x1b, + 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x4f, + 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, + 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x33, 0x0a, + 0x2f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, + 0x4e, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, + 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x05, 0x2a, + 0x92, 0x01, 0x0a, 0x18, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x27, + 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x43, + 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x51, 0x4d, 0x49, 0x10, 0x01, 0x12, 0x24, + 0x0a, 0x20, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, + 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xb1, 0x02, 0x0a, 0x0c, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x5a, + 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x49, + 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, + 0x21, 0x0a, 0x1d, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4f, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x24, 0x0a, + 0x20, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x52, 0x45, 0x50, 0x41, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, + 0x46, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, + 0x46, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x4f, + 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x10, 0x08, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, + 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, + 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x41, + 0x56, 0x41, 0x49, 0x4c, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, + 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x07, + 0x2a, 0xe3, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, + 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, + 0x44, 0x30, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x31, 0x10, + 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, + 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x35, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x31, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x36, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x41, 0x49, 0x44, 0x35, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, - 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, - 0x49, 0x44, 0x36, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, - 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x37, - 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, - 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x52, 0x41, 0x49, 0x44, 0x10, 0x06, - 0x2a, 0x6b, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x45, 0x58, 0x54, 0x34, - 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x5a, 0x46, 0x53, 0x10, 0x02, 0x2a, 0xe4, 0x04, - 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x1e, 0x0a, 0x1a, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, - 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, - 0x25, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x53, - 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, - 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x56, - 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, - 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, - 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, - 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x4f, - 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, - 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x53, 0x10, 0x09, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, - 0x5f, 0x4e, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x4f, - 0x52, 0x44, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, - 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x54, 0x50, 0x53, 0x5f, 0x46, 0x51, - 0x44, 0x4e, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x49, 0x4e, 0x5f, 0x4c, 0x49, 0x43, 0x5f, 0x50, - 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x0c, 0x12, 0x2d, 0x0a, 0x29, - 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, - 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x5f, - 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x41, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x37, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, + 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, + 0x52, 0x41, 0x49, 0x44, 0x10, 0x06, 0x2a, 0x6b, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, + 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, + 0x4f, 0x5f, 0x45, 0x58, 0x54, 0x34, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, + 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x5a, 0x46, + 0x53, 0x10, 0x02, 0x2a, 0x8f, 0x05, 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, + 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x03, 0x12, 0x1b, + 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x45, 0x44, 0x47, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, + 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x10, 0x05, + 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1c, 0x0a, + 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x54, + 0x55, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x53, 0x10, 0x09, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, - 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, - 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x0e, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x50, 0x49, 0x5f, - 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, - 0x45, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x49, 0x50, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, - 0x52, 0x4b, 0x10, 0x0f, 0x2a, 0xb9, 0x03, 0x0a, 0x0a, 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x43, 0x4d, - 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x42, - 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x4c, 0x4c, 0x42, - 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x10, - 0x05, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4f, 0x4f, 0x54, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x4f, 0x4d, 0x10, 0x07, 0x12, 0x1d, 0x0a, - 0x19, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x54, - 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x48, 0x55, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, - 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x54, 0x43, - 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, - 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, - 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x0b, 0x12, 0x17, - 0x0a, 0x13, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x5f, 0x43, 0x4d, - 0x44, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, - 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0xff, 0x01, - 0x2a, 0xa1, 0x02, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, - 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, 0x41, - 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, - 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x51, - 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x49, 0x4e, - 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, - 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, - 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, - 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, - 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x50, 0x4d, - 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, - 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, - 0x52, 0x45, 0x10, 0x05, 0x2a, 0xb5, 0x02, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, 0x54, - 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, - 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x01, 0x12, 0x24, - 0x0a, 0x20, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x57, 0x41, - 0x49, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x45, 0x53, - 0x43, 0x52, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x41, - 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x04, 0x12, 0x28, - 0x0a, 0x24, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x53, 0x43, 0x52, 0x4f, - 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, - 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, + 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, + 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, + 0x54, 0x50, 0x53, 0x5f, 0x46, 0x51, 0x44, 0x4e, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, + 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x49, 0x4e, + 0x5f, 0x4c, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, + 0x10, 0x0c, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, + 0x53, 0x48, 0x4f, 0x54, 0x53, 0x5f, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, + 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, + 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x0e, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x49, 0x50, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, + 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x45, 0x4c, + 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x10, 0x10, 0x2a, 0xb9, 0x03, 0x0a, 0x0a, 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x43, + 0x4d, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, + 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x4c, 0x4c, + 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4f, 0x4f, + 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x4f, 0x4d, 0x10, 0x07, 0x12, 0x1d, + 0x0a, 0x19, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, + 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x48, 0x55, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1c, 0x0a, + 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x54, + 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x42, + 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, + 0x4c, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x0b, 0x12, + 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x5f, 0x43, + 0x4d, 0x44, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0xff, + 0x01, 0x2a, 0xa1, 0x02, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, + 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x2a, 0x0a, + 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x49, + 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, + 0x44, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, + 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x50, + 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, + 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x55, 0x52, 0x45, 0x10, 0x05, 0x2a, 0xb5, 0x02, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, + 0x1c, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x01, 0x12, + 0x24, 0x0a, 0x20, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x57, + 0x41, 0x49, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x45, + 0x53, 0x43, 0x52, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x07, 0x2a, 0x8b, 0x01, 0x0a, - 0x13, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, - 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, - 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, 0x12, - 0x29, 0x0a, 0x25, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, - 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, - 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x61, 0x0a, 0x0c, 0x57, 0x69, - 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x57, 0x49, - 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, 0x52, - 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x46, 0x49, 0x10, - 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x02, 0x2a, 0x71, 0x0a, - 0x0c, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, 0x0a, - 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x4f, 0x57, 0x4e, 0x4c, - 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x4f, 0x57, 0x4e, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x4c, 0x4c, 0x42, 0x41, - 0x43, 0x4b, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, - 0x2a, 0xcb, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x75, 0x62, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x55, 0x42, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x57, 0x4e, - 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x01, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x49, 0x4e, 0x50, 0x52, - 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, - 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x42, 0x4f, - 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x50, 0x44, 0x41, 0x54, - 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x5f, - 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x50, 0x44, - 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x07, 0x2a, 0x68, - 0x0a, 0x0c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, - 0x0a, 0x19, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, - 0x18, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, - 0x50, 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, - 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4d, 0x4d, - 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb8, 0x01, 0x0a, 0x16, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, - 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, - 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, - 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, - 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x23, - 0x0a, 0x1f, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, - 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, - 0x4e, 0x10, 0x03, 0x2a, 0x8f, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, 0x56, - 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, - 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x50, 0x4e, 0x5f, 0x43, - 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x56, - 0x50, 0x4e, 0x5f, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x03, - 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, - 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x52, 0x45, 0x4b, 0x45, 0x59, - 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, - 0x54, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x85, 0x01, 0x0a, 0x15, 0x5a, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1e, 0x0a, 0x1a, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x17, 0x0a, 0x13, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x5a, 0x4e, 0x45, 0x54, - 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, - 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x9e, 0x01, - 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, - 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, - 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, - 0x17, 0x0a, 0x13, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x43, 0x5f, - 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, 0x49, - 0x55, 0x4d, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x42, 0x39, - 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, - 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x04, 0x12, + 0x28, 0x0a, 0x24, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x53, 0x43, 0x52, + 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, + 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, + 0x1a, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x07, 0x2a, 0x8b, 0x01, + 0x0a, 0x13, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x50, 0x50, 0x5f, 0x49, + 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, + 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, + 0x4f, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x61, 0x0a, 0x0c, 0x57, + 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x57, + 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, + 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x46, 0x49, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x02, 0x2a, 0x71, + 0x0a, 0x0c, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, + 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x4f, 0x57, 0x4e, + 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x4c, 0x4c, 0x42, + 0x41, 0x43, 0x4b, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x06, 0x2a, 0xcb, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x75, 0x62, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x55, + 0x42, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x49, 0x4e, 0x50, + 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x42, + 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x07, 0x2a, + 0x68, 0x0a, 0x0c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, + 0x0a, 0x18, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x50, 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4d, + 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb8, 0x01, 0x0a, 0x16, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, + 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, + 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, + 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, + 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x8f, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x50, 0x4e, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, + 0x56, 0x50, 0x4e, 0x5f, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x52, 0x45, 0x4b, 0x45, + 0x59, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x85, 0x01, 0x0a, 0x15, 0x5a, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1e, 0x0a, 0x1a, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x5a, 0x4e, 0x45, + 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, + 0x4e, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x9e, + 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x43, + 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, + 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, + 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x42, + 0x39, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, + 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -9841,7 +10091,7 @@ func file_info_info_proto_rawDescGZIP() []byte { } var file_info_info_proto_enumTypes = make([]protoimpl.EnumInfo, 28) -var file_info_info_proto_msgTypes = make([]protoimpl.MessageInfo, 67) +var file_info_info_proto_msgTypes = make([]protoimpl.MessageInfo, 69) var file_info_info_proto_goTypes = []interface{}{ (DepMetricItemType)(0), // 0: org.lfedge.eve.info.DepMetricItemType (ZInfoTypes)(0), // 1: org.lfedge.eve.info.ZInfoTypes @@ -9894,78 +10144,82 @@ var file_info_info_proto_goTypes = []interface{}{ (*ZSimcardInfo)(nil), // 48: org.lfedge.eve.info.ZSimcardInfo (*ZCellularModuleInfo)(nil), // 49: org.lfedge.eve.info.ZCellularModuleInfo (*ZCellularProvider)(nil), // 50: org.lfedge.eve.info.ZCellularProvider - (*StorageDiskState)(nil), // 51: org.lfedge.eve.info.StorageDiskState - (*SmartAttr)(nil), // 52: org.lfedge.eve.info.SmartAttr - (*StorageDiskInfo)(nil), // 53: org.lfedge.eve.info.StorageDiskInfo - (*StorageChildren)(nil), // 54: org.lfedge.eve.info.StorageChildren - (*StorageInfo)(nil), // 55: org.lfedge.eve.info.StorageInfo - (*ZInfoHardware)(nil), // 56: org.lfedge.eve.info.ZInfoHardware - (*ZInfoDevice)(nil), // 57: org.lfedge.eve.info.ZInfoDevice - (*OptionalCapabilities)(nil), // 58: org.lfedge.eve.info.OptionalCapabilities - (*AttestationInfo)(nil), // 59: org.lfedge.eve.info.AttestationInfo - (*SystemAdapterInfo)(nil), // 60: org.lfedge.eve.info.SystemAdapterInfo - (*DevicePortStatus)(nil), // 61: org.lfedge.eve.info.DevicePortStatus - (*DevicePort)(nil), // 62: org.lfedge.eve.info.DevicePort - (*ProxyStatus)(nil), // 63: org.lfedge.eve.info.ProxyStatus - (*ProxyEntry)(nil), // 64: org.lfedge.eve.info.ProxyEntry - (*WirelessStatus)(nil), // 65: org.lfedge.eve.info.WirelessStatus - (*ZCellularStatus)(nil), // 66: org.lfedge.eve.info.ZCellularStatus - (*ZInfoDevSW)(nil), // 67: org.lfedge.eve.info.ZInfoDevSW - (*ZInfoStorage)(nil), // 68: org.lfedge.eve.info.ZInfoStorage - (*ZInfoSnapshot)(nil), // 69: org.lfedge.eve.info.ZInfoSnapshot - (*ZInfoClusterNode)(nil), // 70: org.lfedge.eve.info.ZInfoClusterNode - (*ZInfoApp)(nil), // 71: org.lfedge.eve.info.ZInfoApp - (*ZInfoVpnLinkInfo)(nil), // 72: org.lfedge.eve.info.ZInfoVpnLinkInfo - (*ZInfoVpnLink)(nil), // 73: org.lfedge.eve.info.ZInfoVpnLink - (*ZInfoVpnEndPoint)(nil), // 74: org.lfedge.eve.info.ZInfoVpnEndPoint - (*ZInfoVpnConn)(nil), // 75: org.lfedge.eve.info.ZInfoVpnConn - (*ZInfoVpn)(nil), // 76: org.lfedge.eve.info.ZInfoVpn - (*ZInfoNetworkInstance)(nil), // 77: org.lfedge.eve.info.ZInfoNetworkInstance - (*IPRoute)(nil), // 78: org.lfedge.eve.info.IPRoute - (*UsageInfo)(nil), // 79: org.lfedge.eve.info.UsageInfo - (*VolumeResources)(nil), // 80: org.lfedge.eve.info.VolumeResources - (*ZInfoVolume)(nil), // 81: org.lfedge.eve.info.ZInfoVolume - (*ContentResources)(nil), // 82: org.lfedge.eve.info.ContentResources - (*ZInfoContentTree)(nil), // 83: org.lfedge.eve.info.ZInfoContentTree - (*ZInfoBlob)(nil), // 84: org.lfedge.eve.info.ZInfoBlob - (*ZInfoBlobList)(nil), // 85: org.lfedge.eve.info.ZInfoBlobList - (*ZInfoMsg)(nil), // 86: org.lfedge.eve.info.ZInfoMsg - (*Capabilities)(nil), // 87: org.lfedge.eve.info.Capabilities - (*ZInfoAppInstMetaData)(nil), // 88: org.lfedge.eve.info.ZInfoAppInstMetaData - (*ZInfoEdgeview)(nil), // 89: org.lfedge.eve.info.ZInfoEdgeview - (*ZInfoLocation)(nil), // 90: org.lfedge.eve.info.ZInfoLocation - (*ZInfoKubeClusterUpdateStatus)(nil), // 91: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus - (*ZInfoKubeCluster)(nil), // 92: org.lfedge.eve.info.ZInfoKubeCluster - nil, // 93: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry - nil, // 94: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry - (evecommon.PhyIoType)(0), // 95: org.lfedge.eve.common.PhyIoType - (evecommon.PhyIoMemberUsage)(0), // 96: org.lfedge.eve.common.PhyIoMemberUsage - (*timestamppb.Timestamp)(nil), // 97: google.protobuf.Timestamp - (*evecommon.DiskDescription)(nil), // 98: org.lfedge.eve.common.DiskDescription - (evecommon.RadioAccessTechnology)(0), // 99: org.lfedge.eve.common.RadioAccessTechnology - (*ZInfoPatchEnvelope)(nil), // 100: org.lfedge.eve.info.ZInfoPatchEnvelope - (*ZInfoNTPSources)(nil), // 101: org.lfedge.eve.info.ZInfoNTPSources - (KubeComp)(0), // 102: org.lfedge.eve.info.KubeComp - (KubeCompUpdateStatus)(0), // 103: org.lfedge.eve.info.KubeCompUpdateStatus - (*KubeNodeInfo)(nil), // 104: org.lfedge.eve.info.KubeNodeInfo - (*KubePodNameSpaceInfo)(nil), // 105: org.lfedge.eve.info.KubePodNameSpaceInfo - (*KubeEVEAppPodInfo)(nil), // 106: org.lfedge.eve.info.KubeEVEAppPodInfo - (*KubeStorageInfo)(nil), // 107: org.lfedge.eve.info.KubeStorageInfo - (*KubeVMIInfo)(nil), // 108: org.lfedge.eve.info.KubeVMIInfo + (*CellularBearer)(nil), // 51: org.lfedge.eve.info.CellularBearer + (*CellularProfile)(nil), // 52: org.lfedge.eve.info.CellularProfile + (*StorageDiskState)(nil), // 53: org.lfedge.eve.info.StorageDiskState + (*SmartAttr)(nil), // 54: org.lfedge.eve.info.SmartAttr + (*StorageDiskInfo)(nil), // 55: org.lfedge.eve.info.StorageDiskInfo + (*StorageChildren)(nil), // 56: org.lfedge.eve.info.StorageChildren + (*StorageInfo)(nil), // 57: org.lfedge.eve.info.StorageInfo + (*ZInfoHardware)(nil), // 58: org.lfedge.eve.info.ZInfoHardware + (*ZInfoDevice)(nil), // 59: org.lfedge.eve.info.ZInfoDevice + (*OptionalCapabilities)(nil), // 60: org.lfedge.eve.info.OptionalCapabilities + (*AttestationInfo)(nil), // 61: org.lfedge.eve.info.AttestationInfo + (*SystemAdapterInfo)(nil), // 62: org.lfedge.eve.info.SystemAdapterInfo + (*DevicePortStatus)(nil), // 63: org.lfedge.eve.info.DevicePortStatus + (*DevicePort)(nil), // 64: org.lfedge.eve.info.DevicePort + (*ProxyStatus)(nil), // 65: org.lfedge.eve.info.ProxyStatus + (*ProxyEntry)(nil), // 66: org.lfedge.eve.info.ProxyEntry + (*WirelessStatus)(nil), // 67: org.lfedge.eve.info.WirelessStatus + (*ZCellularStatus)(nil), // 68: org.lfedge.eve.info.ZCellularStatus + (*ZInfoDevSW)(nil), // 69: org.lfedge.eve.info.ZInfoDevSW + (*ZInfoStorage)(nil), // 70: org.lfedge.eve.info.ZInfoStorage + (*ZInfoSnapshot)(nil), // 71: org.lfedge.eve.info.ZInfoSnapshot + (*ZInfoClusterNode)(nil), // 72: org.lfedge.eve.info.ZInfoClusterNode + (*ZInfoApp)(nil), // 73: org.lfedge.eve.info.ZInfoApp + (*ZInfoVpnLinkInfo)(nil), // 74: org.lfedge.eve.info.ZInfoVpnLinkInfo + (*ZInfoVpnLink)(nil), // 75: org.lfedge.eve.info.ZInfoVpnLink + (*ZInfoVpnEndPoint)(nil), // 76: org.lfedge.eve.info.ZInfoVpnEndPoint + (*ZInfoVpnConn)(nil), // 77: org.lfedge.eve.info.ZInfoVpnConn + (*ZInfoVpn)(nil), // 78: org.lfedge.eve.info.ZInfoVpn + (*ZInfoNetworkInstance)(nil), // 79: org.lfedge.eve.info.ZInfoNetworkInstance + (*IPRoute)(nil), // 80: org.lfedge.eve.info.IPRoute + (*UsageInfo)(nil), // 81: org.lfedge.eve.info.UsageInfo + (*VolumeResources)(nil), // 82: org.lfedge.eve.info.VolumeResources + (*ZInfoVolume)(nil), // 83: org.lfedge.eve.info.ZInfoVolume + (*ContentResources)(nil), // 84: org.lfedge.eve.info.ContentResources + (*ZInfoContentTree)(nil), // 85: org.lfedge.eve.info.ZInfoContentTree + (*ZInfoBlob)(nil), // 86: org.lfedge.eve.info.ZInfoBlob + (*ZInfoBlobList)(nil), // 87: org.lfedge.eve.info.ZInfoBlobList + (*ZInfoMsg)(nil), // 88: org.lfedge.eve.info.ZInfoMsg + (*Capabilities)(nil), // 89: org.lfedge.eve.info.Capabilities + (*ZInfoAppInstMetaData)(nil), // 90: org.lfedge.eve.info.ZInfoAppInstMetaData + (*ZInfoEdgeview)(nil), // 91: org.lfedge.eve.info.ZInfoEdgeview + (*ZInfoLocation)(nil), // 92: org.lfedge.eve.info.ZInfoLocation + (*ZInfoKubeClusterUpdateStatus)(nil), // 93: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus + (*ZInfoKubeCluster)(nil), // 94: org.lfedge.eve.info.ZInfoKubeCluster + nil, // 95: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry + nil, // 96: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry + (evecommon.PhyIoType)(0), // 97: org.lfedge.eve.common.PhyIoType + (evecommon.PhyIoMemberUsage)(0), // 98: org.lfedge.eve.common.PhyIoMemberUsage + (*timestamppb.Timestamp)(nil), // 99: google.protobuf.Timestamp + (evecommon.BearerType)(0), // 100: org.lfedge.eve.common.BearerType + (evecommon.CellularIPType)(0), // 101: org.lfedge.eve.common.CellularIPType + (*evecommon.DiskDescription)(nil), // 102: org.lfedge.eve.common.DiskDescription + (evecommon.RadioAccessTechnology)(0), // 103: org.lfedge.eve.common.RadioAccessTechnology + (*ZInfoPatchEnvelope)(nil), // 104: org.lfedge.eve.info.ZInfoPatchEnvelope + (*ZInfoNTPSources)(nil), // 105: org.lfedge.eve.info.ZInfoNTPSources + (KubeComp)(0), // 106: org.lfedge.eve.info.KubeComp + (KubeCompUpdateStatus)(0), // 107: org.lfedge.eve.info.KubeCompUpdateStatus + (*KubeNodeInfo)(nil), // 108: org.lfedge.eve.info.KubeNodeInfo + (*KubePodNameSpaceInfo)(nil), // 109: org.lfedge.eve.info.KubePodNameSpaceInfo + (*KubeEVEAppPodInfo)(nil), // 110: org.lfedge.eve.info.KubeEVEAppPodInfo + (*KubeStorageInfo)(nil), // 111: org.lfedge.eve.info.KubeStorageInfo + (*KubeVMIInfo)(nil), // 112: org.lfedge.eve.info.KubeVMIInfo } var file_info_info_proto_depIdxs = []int32{ 0, // 0: org.lfedge.eve.info.deprecatedMetricItem.type:type_name -> org.lfedge.eve.info.DepMetricItemType - 95, // 1: org.lfedge.eve.info.ZioBundle.type:type_name -> org.lfedge.eve.common.PhyIoType + 97, // 1: org.lfedge.eve.info.ZioBundle.type:type_name -> org.lfedge.eve.common.PhyIoType 32, // 2: org.lfedge.eve.info.ZioBundle.ioAddressList:type_name -> org.lfedge.eve.info.IoAddresses - 96, // 3: org.lfedge.eve.info.ZioBundle.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage + 98, // 3: org.lfedge.eve.info.ZioBundle.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage 39, // 4: org.lfedge.eve.info.ZioBundle.err:type_name -> org.lfedge.eve.info.ErrorInfo 33, // 5: org.lfedge.eve.info.IoAddresses.vf_info:type_name -> org.lfedge.eve.info.VfPublishedInfo 37, // 6: org.lfedge.eve.info.ZInfoNetwork.dns:type_name -> org.lfedge.eve.info.ZInfoDNS 36, // 7: org.lfedge.eve.info.ZInfoNetwork.location:type_name -> org.lfedge.eve.info.GeoLoc 39, // 8: org.lfedge.eve.info.ZInfoNetwork.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo - 63, // 9: org.lfedge.eve.info.ZInfoNetwork.proxy:type_name -> org.lfedge.eve.info.ProxyStatus + 65, // 9: org.lfedge.eve.info.ZInfoNetwork.proxy:type_name -> org.lfedge.eve.info.ProxyStatus 2, // 10: org.lfedge.eve.info.ZInfoSW.state:type_name -> org.lfedge.eve.info.ZSwState - 97, // 11: org.lfedge.eve.info.ErrorInfo.timestamp:type_name -> google.protobuf.Timestamp + 99, // 11: org.lfedge.eve.info.ErrorInfo.timestamp:type_name -> google.protobuf.Timestamp 4, // 12: org.lfedge.eve.info.ErrorInfo.severity:type_name -> org.lfedge.eve.info.Severity 40, // 13: org.lfedge.eve.info.ErrorInfo.entities:type_name -> org.lfedge.eve.info.DeviceEntity 3, // 14: org.lfedge.eve.info.DeviceEntity.entity:type_name -> org.lfedge.eve.info.Entity @@ -9974,154 +10228,161 @@ var file_info_info_proto_depIdxs = []int32{ 7, // 17: org.lfedge.eve.info.VaultInfo.pcrStatus:type_name -> org.lfedge.eve.info.PCRStatus 6, // 18: org.lfedge.eve.info.DataSecAtRest.status:type_name -> org.lfedge.eve.info.DataSecAtRestStatus 41, // 19: org.lfedge.eve.info.DataSecAtRest.vaultList:type_name -> org.lfedge.eve.info.VaultInfo - 93, // 20: org.lfedge.eve.info.ZInfoConfigItemStatus.configItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry - 94, // 21: org.lfedge.eve.info.ZInfoConfigItemStatus.unknownConfigItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry + 95, // 20: org.lfedge.eve.info.ZInfoConfigItemStatus.configItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry + 96, // 21: org.lfedge.eve.info.ZInfoConfigItemStatus.unknownConfigItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry 8, // 22: org.lfedge.eve.info.ZSimcardInfo.type:type_name -> org.lfedge.eve.info.SimType 9, // 23: org.lfedge.eve.info.ZCellularModuleInfo.operating_state:type_name -> org.lfedge.eve.info.ZCellularOperatingState 10, // 24: org.lfedge.eve.info.ZCellularModuleInfo.control_protocol:type_name -> org.lfedge.eve.info.ZCellularControlProtocol - 98, // 25: org.lfedge.eve.info.StorageDiskState.disk_name:type_name -> org.lfedge.eve.common.DiskDescription - 12, // 26: org.lfedge.eve.info.StorageDiskState.status:type_name -> org.lfedge.eve.info.StorageStatus - 52, // 27: org.lfedge.eve.info.StorageDiskInfo.smart_attr:type_name -> org.lfedge.eve.info.SmartAttr - 13, // 28: org.lfedge.eve.info.StorageChildren.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType - 51, // 29: org.lfedge.eve.info.StorageChildren.disks:type_name -> org.lfedge.eve.info.StorageDiskState - 54, // 30: org.lfedge.eve.info.StorageChildren.children:type_name -> org.lfedge.eve.info.StorageChildren - 14, // 31: org.lfedge.eve.info.StorageInfo.storage_type:type_name -> org.lfedge.eve.info.StorageTypeInfo - 13, // 32: org.lfedge.eve.info.StorageInfo.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType - 12, // 33: org.lfedge.eve.info.StorageInfo.storage_state:type_name -> org.lfedge.eve.info.StorageStatus - 51, // 34: org.lfedge.eve.info.StorageInfo.disks:type_name -> org.lfedge.eve.info.StorageDiskState - 54, // 35: org.lfedge.eve.info.StorageInfo.children:type_name -> org.lfedge.eve.info.StorageChildren - 53, // 36: org.lfedge.eve.info.ZInfoHardware.disks:type_name -> org.lfedge.eve.info.StorageDiskInfo - 34, // 37: org.lfedge.eve.info.ZInfoDevice.minfo:type_name -> org.lfedge.eve.info.ZInfoManufacturer - 35, // 38: org.lfedge.eve.info.ZInfoDevice.network:type_name -> org.lfedge.eve.info.ZInfoNetwork - 31, // 39: org.lfedge.eve.info.ZInfoDevice.assignableAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 37, // 40: org.lfedge.eve.info.ZInfoDevice.dns:type_name -> org.lfedge.eve.info.ZInfoDNS - 68, // 41: org.lfedge.eve.info.ZInfoDevice.storageList:type_name -> org.lfedge.eve.info.ZInfoStorage - 97, // 42: org.lfedge.eve.info.ZInfoDevice.bootTime:type_name -> google.protobuf.Timestamp - 67, // 43: org.lfedge.eve.info.ZInfoDevice.swList:type_name -> org.lfedge.eve.info.ZInfoDevSW - 28, // 44: org.lfedge.eve.info.ZInfoDevice.metricItems:type_name -> org.lfedge.eve.info.deprecatedMetricItem - 97, // 45: org.lfedge.eve.info.ZInfoDevice.lastRebootTime:type_name -> google.protobuf.Timestamp - 60, // 46: org.lfedge.eve.info.ZInfoDevice.systemAdapter:type_name -> org.lfedge.eve.info.SystemAdapterInfo - 5, // 47: org.lfedge.eve.info.ZInfoDevice.HSMStatus:type_name -> org.lfedge.eve.info.HwSecurityModuleStatus - 42, // 48: org.lfedge.eve.info.ZInfoDevice.dataSecAtRestInfo:type_name -> org.lfedge.eve.info.DataSecAtRest - 43, // 49: org.lfedge.eve.info.ZInfoDevice.sec_info:type_name -> org.lfedge.eve.info.SecurityInfo - 45, // 50: org.lfedge.eve.info.ZInfoDevice.configItemStatus:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus - 46, // 51: org.lfedge.eve.info.ZInfoDevice.appInstances:type_name -> org.lfedge.eve.info.ZInfoAppInstance - 16, // 52: org.lfedge.eve.info.ZInfoDevice.last_boot_reason:type_name -> org.lfedge.eve.info.BootReason - 49, // 53: org.lfedge.eve.info.ZInfoDevice.cell_radios:type_name -> org.lfedge.eve.info.ZCellularModuleInfo - 48, // 54: org.lfedge.eve.info.ZInfoDevice.sims:type_name -> org.lfedge.eve.info.ZSimcardInfo - 47, // 55: org.lfedge.eve.info.ZInfoDevice.tasks:type_name -> org.lfedge.eve.info.ZInfoDeviceTasks - 17, // 56: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reason:type_name -> org.lfedge.eve.info.MaintenanceModeReason - 87, // 57: org.lfedge.eve.info.ZInfoDevice.capabilities:type_name -> org.lfedge.eve.info.Capabilities - 11, // 58: org.lfedge.eve.info.ZInfoDevice.state:type_name -> org.lfedge.eve.info.ZDeviceState - 17, // 59: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reasons:type_name -> org.lfedge.eve.info.MaintenanceModeReason - 55, // 60: org.lfedge.eve.info.ZInfoDevice.storage_info:type_name -> org.lfedge.eve.info.StorageInfo - 59, // 61: org.lfedge.eve.info.ZInfoDevice.attestation_info:type_name -> org.lfedge.eve.info.AttestationInfo - 15, // 62: org.lfedge.eve.info.ZInfoDevice.api_capability:type_name -> org.lfedge.eve.info.APICapability - 58, // 63: org.lfedge.eve.info.ZInfoDevice.optional_capabilities:type_name -> org.lfedge.eve.info.OptionalCapabilities - 18, // 64: org.lfedge.eve.info.AttestationInfo.state:type_name -> org.lfedge.eve.info.AttestationState - 39, // 65: org.lfedge.eve.info.AttestationInfo.error:type_name -> org.lfedge.eve.info.ErrorInfo - 61, // 66: org.lfedge.eve.info.SystemAdapterInfo.status:type_name -> org.lfedge.eve.info.DevicePortStatus - 97, // 67: org.lfedge.eve.info.DevicePortStatus.timePriority:type_name -> google.protobuf.Timestamp - 97, // 68: org.lfedge.eve.info.DevicePortStatus.lastFailed:type_name -> google.protobuf.Timestamp - 97, // 69: org.lfedge.eve.info.DevicePortStatus.lastSucceeded:type_name -> google.protobuf.Timestamp - 62, // 70: org.lfedge.eve.info.DevicePortStatus.ports:type_name -> org.lfedge.eve.info.DevicePort - 63, // 71: org.lfedge.eve.info.DevicePort.proxy:type_name -> org.lfedge.eve.info.ProxyStatus - 37, // 72: org.lfedge.eve.info.DevicePort.dns:type_name -> org.lfedge.eve.info.ZInfoDNS - 36, // 73: org.lfedge.eve.info.DevicePort.location:type_name -> org.lfedge.eve.info.GeoLoc - 39, // 74: org.lfedge.eve.info.DevicePort.err:type_name -> org.lfedge.eve.info.ErrorInfo - 96, // 75: org.lfedge.eve.info.DevicePort.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage - 65, // 76: org.lfedge.eve.info.DevicePort.wireless_status:type_name -> org.lfedge.eve.info.WirelessStatus - 64, // 77: org.lfedge.eve.info.ProxyStatus.proxies:type_name -> org.lfedge.eve.info.ProxyEntry - 20, // 78: org.lfedge.eve.info.WirelessStatus.type:type_name -> org.lfedge.eve.info.WirelessType - 66, // 79: org.lfedge.eve.info.WirelessStatus.cellular:type_name -> org.lfedge.eve.info.ZCellularStatus - 50, // 80: org.lfedge.eve.info.ZCellularStatus.providers:type_name -> org.lfedge.eve.info.ZCellularProvider - 99, // 81: org.lfedge.eve.info.ZCellularStatus.current_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology - 97, // 82: org.lfedge.eve.info.ZCellularStatus.connected_at:type_name -> google.protobuf.Timestamp - 2, // 83: org.lfedge.eve.info.ZInfoDevSW.status:type_name -> org.lfedge.eve.info.ZSwState - 39, // 84: org.lfedge.eve.info.ZInfoDevSW.swErr:type_name -> org.lfedge.eve.info.ErrorInfo - 21, // 85: org.lfedge.eve.info.ZInfoDevSW.userStatus:type_name -> org.lfedge.eve.info.BaseOsStatus - 22, // 86: org.lfedge.eve.info.ZInfoDevSW.subStatus:type_name -> org.lfedge.eve.info.BaseOsSubStatus - 97, // 87: org.lfedge.eve.info.ZInfoSnapshot.create_time:type_name -> google.protobuf.Timestamp - 23, // 88: org.lfedge.eve.info.ZInfoSnapshot.type:type_name -> org.lfedge.eve.info.SnapshotType - 39, // 89: org.lfedge.eve.info.ZInfoSnapshot.snap_err:type_name -> org.lfedge.eve.info.ErrorInfo - 24, // 90: org.lfedge.eve.info.ZInfoClusterNode.node_status:type_name -> org.lfedge.eve.info.ZInfoClusterNodeStatus - 38, // 91: org.lfedge.eve.info.ZInfoApp.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW - 97, // 92: org.lfedge.eve.info.ZInfoApp.bootTime:type_name -> google.protobuf.Timestamp - 31, // 93: org.lfedge.eve.info.ZInfoApp.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 39, // 94: org.lfedge.eve.info.ZInfoApp.appErr:type_name -> org.lfedge.eve.info.ErrorInfo - 2, // 95: org.lfedge.eve.info.ZInfoApp.state:type_name -> org.lfedge.eve.info.ZSwState - 35, // 96: org.lfedge.eve.info.ZInfoApp.network:type_name -> org.lfedge.eve.info.ZInfoNetwork - 69, // 97: org.lfedge.eve.info.ZInfoApp.snapshots:type_name -> org.lfedge.eve.info.ZInfoSnapshot - 25, // 98: org.lfedge.eve.info.ZInfoVpnLink.state:type_name -> org.lfedge.eve.info.ZInfoVpnState - 72, // 99: org.lfedge.eve.info.ZInfoVpnLink.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo - 72, // 100: org.lfedge.eve.info.ZInfoVpnLink.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo - 25, // 101: org.lfedge.eve.info.ZInfoVpnConn.state:type_name -> org.lfedge.eve.info.ZInfoVpnState - 74, // 102: org.lfedge.eve.info.ZInfoVpnConn.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint - 74, // 103: org.lfedge.eve.info.ZInfoVpnConn.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint - 73, // 104: org.lfedge.eve.info.ZInfoVpnConn.links:type_name -> org.lfedge.eve.info.ZInfoVpnLink - 75, // 105: org.lfedge.eve.info.ZInfoVpn.conn:type_name -> org.lfedge.eve.info.ZInfoVpnConn - 97, // 106: org.lfedge.eve.info.ZInfoNetworkInstance.upTimeStamp:type_name -> google.protobuf.Timestamp - 38, // 107: org.lfedge.eve.info.ZInfoNetworkInstance.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW - 29, // 108: org.lfedge.eve.info.ZInfoNetworkInstance.ipAssignments:type_name -> org.lfedge.eve.info.ZmetIPAssignmentEntry - 30, // 109: org.lfedge.eve.info.ZInfoNetworkInstance.vifs:type_name -> org.lfedge.eve.info.ZmetVifInfo - 31, // 110: org.lfedge.eve.info.ZInfoNetworkInstance.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 76, // 111: org.lfedge.eve.info.ZInfoNetworkInstance.vinfo:type_name -> org.lfedge.eve.info.ZInfoVpn - 39, // 112: org.lfedge.eve.info.ZInfoNetworkInstance.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo - 26, // 113: org.lfedge.eve.info.ZInfoNetworkInstance.state:type_name -> org.lfedge.eve.info.ZNetworkInstanceState - 78, // 114: org.lfedge.eve.info.ZInfoNetworkInstance.ip_routes:type_name -> org.lfedge.eve.info.IPRoute - 97, // 115: org.lfedge.eve.info.UsageInfo.createTime:type_name -> google.protobuf.Timestamp - 97, // 116: org.lfedge.eve.info.UsageInfo.lastRefcountChangeTime:type_name -> google.protobuf.Timestamp - 79, // 117: org.lfedge.eve.info.ZInfoVolume.usage:type_name -> org.lfedge.eve.info.UsageInfo - 80, // 118: org.lfedge.eve.info.ZInfoVolume.resources:type_name -> org.lfedge.eve.info.VolumeResources - 2, // 119: org.lfedge.eve.info.ZInfoVolume.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 120: org.lfedge.eve.info.ZInfoVolume.volumeErr:type_name -> org.lfedge.eve.info.ErrorInfo - 82, // 121: org.lfedge.eve.info.ZInfoContentTree.resources:type_name -> org.lfedge.eve.info.ContentResources - 79, // 122: org.lfedge.eve.info.ZInfoContentTree.usage:type_name -> org.lfedge.eve.info.UsageInfo - 2, // 123: org.lfedge.eve.info.ZInfoContentTree.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 124: org.lfedge.eve.info.ZInfoContentTree.err:type_name -> org.lfedge.eve.info.ErrorInfo - 82, // 125: org.lfedge.eve.info.ZInfoBlob.resources:type_name -> org.lfedge.eve.info.ContentResources - 79, // 126: org.lfedge.eve.info.ZInfoBlob.usage:type_name -> org.lfedge.eve.info.UsageInfo - 2, // 127: org.lfedge.eve.info.ZInfoBlob.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 128: org.lfedge.eve.info.ZInfoBlob.err:type_name -> org.lfedge.eve.info.ErrorInfo - 84, // 129: org.lfedge.eve.info.ZInfoBlobList.blob:type_name -> org.lfedge.eve.info.ZInfoBlob - 1, // 130: org.lfedge.eve.info.ZInfoMsg.ztype:type_name -> org.lfedge.eve.info.ZInfoTypes - 57, // 131: org.lfedge.eve.info.ZInfoMsg.dinfo:type_name -> org.lfedge.eve.info.ZInfoDevice - 71, // 132: org.lfedge.eve.info.ZInfoMsg.ainfo:type_name -> org.lfedge.eve.info.ZInfoApp - 77, // 133: org.lfedge.eve.info.ZInfoMsg.niinfo:type_name -> org.lfedge.eve.info.ZInfoNetworkInstance - 81, // 134: org.lfedge.eve.info.ZInfoMsg.vinfo:type_name -> org.lfedge.eve.info.ZInfoVolume - 83, // 135: org.lfedge.eve.info.ZInfoMsg.cinfo:type_name -> org.lfedge.eve.info.ZInfoContentTree - 85, // 136: org.lfedge.eve.info.ZInfoMsg.binfo:type_name -> org.lfedge.eve.info.ZInfoBlobList - 88, // 137: org.lfedge.eve.info.ZInfoMsg.amdinfo:type_name -> org.lfedge.eve.info.ZInfoAppInstMetaData - 89, // 138: org.lfedge.eve.info.ZInfoMsg.evinfo:type_name -> org.lfedge.eve.info.ZInfoEdgeview - 56, // 139: org.lfedge.eve.info.ZInfoMsg.hwinfo:type_name -> org.lfedge.eve.info.ZInfoHardware - 90, // 140: org.lfedge.eve.info.ZInfoMsg.locinfo:type_name -> org.lfedge.eve.info.ZInfoLocation - 100, // 141: org.lfedge.eve.info.ZInfoMsg.patchInfo:type_name -> org.lfedge.eve.info.ZInfoPatchEnvelope - 70, // 142: org.lfedge.eve.info.ZInfoMsg.cluster_node:type_name -> org.lfedge.eve.info.ZInfoClusterNode - 101, // 143: org.lfedge.eve.info.ZInfoMsg.ntp_sources:type_name -> org.lfedge.eve.info.ZInfoNTPSources - 92, // 144: org.lfedge.eve.info.ZInfoMsg.cluster_info:type_name -> org.lfedge.eve.info.ZInfoKubeCluster - 91, // 145: org.lfedge.eve.info.ZInfoMsg.cluster_update_info:type_name -> org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus - 97, // 146: org.lfedge.eve.info.ZInfoMsg.atTimeStamp:type_name -> google.protobuf.Timestamp - 19, // 147: org.lfedge.eve.info.ZInfoAppInstMetaData.type:type_name -> org.lfedge.eve.info.AppInstMetaDataType - 97, // 148: org.lfedge.eve.info.ZInfoEdgeview.expire_time:type_name -> google.protobuf.Timestamp - 97, // 149: org.lfedge.eve.info.ZInfoEdgeview.started_time:type_name -> google.protobuf.Timestamp - 97, // 150: org.lfedge.eve.info.ZInfoLocation.utc_timestamp:type_name -> google.protobuf.Timestamp - 27, // 151: org.lfedge.eve.info.ZInfoLocation.horizontal_reliability:type_name -> org.lfedge.eve.info.LocReliability - 27, // 152: org.lfedge.eve.info.ZInfoLocation.vertical_reliability:type_name -> org.lfedge.eve.info.LocReliability - 102, // 153: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.component:type_name -> org.lfedge.eve.info.KubeComp - 103, // 154: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.status:type_name -> org.lfedge.eve.info.KubeCompUpdateStatus - 39, // 155: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.error:type_name -> org.lfedge.eve.info.ErrorInfo - 104, // 156: org.lfedge.eve.info.ZInfoKubeCluster.nodes:type_name -> org.lfedge.eve.info.KubeNodeInfo - 105, // 157: org.lfedge.eve.info.ZInfoKubeCluster.pod_name_spaces:type_name -> org.lfedge.eve.info.KubePodNameSpaceInfo - 106, // 158: org.lfedge.eve.info.ZInfoKubeCluster.eve_apps:type_name -> org.lfedge.eve.info.KubeEVEAppPodInfo - 107, // 159: org.lfedge.eve.info.ZInfoKubeCluster.storage:type_name -> org.lfedge.eve.info.KubeStorageInfo - 108, // 160: org.lfedge.eve.info.ZInfoKubeCluster.eve_vm_apps:type_name -> org.lfedge.eve.info.KubeVMIInfo - 44, // 161: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem - 44, // 162: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem - 163, // [163:163] is the sub-list for method output_type - 163, // [163:163] is the sub-list for method input_type - 163, // [163:163] is the sub-list for extension type_name - 163, // [163:163] is the sub-list for extension extendee - 0, // [0:163] is the sub-list for field type_name + 100, // 25: org.lfedge.eve.info.CellularBearer.bearer_type:type_name -> org.lfedge.eve.common.BearerType + 101, // 26: org.lfedge.eve.info.CellularBearer.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 99, // 27: org.lfedge.eve.info.CellularBearer.connected_at:type_name -> google.protobuf.Timestamp + 100, // 28: org.lfedge.eve.info.CellularProfile.bearer_type:type_name -> org.lfedge.eve.common.BearerType + 101, // 29: org.lfedge.eve.info.CellularProfile.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 102, // 30: org.lfedge.eve.info.StorageDiskState.disk_name:type_name -> org.lfedge.eve.common.DiskDescription + 12, // 31: org.lfedge.eve.info.StorageDiskState.status:type_name -> org.lfedge.eve.info.StorageStatus + 54, // 32: org.lfedge.eve.info.StorageDiskInfo.smart_attr:type_name -> org.lfedge.eve.info.SmartAttr + 13, // 33: org.lfedge.eve.info.StorageChildren.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType + 53, // 34: org.lfedge.eve.info.StorageChildren.disks:type_name -> org.lfedge.eve.info.StorageDiskState + 56, // 35: org.lfedge.eve.info.StorageChildren.children:type_name -> org.lfedge.eve.info.StorageChildren + 14, // 36: org.lfedge.eve.info.StorageInfo.storage_type:type_name -> org.lfedge.eve.info.StorageTypeInfo + 13, // 37: org.lfedge.eve.info.StorageInfo.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType + 12, // 38: org.lfedge.eve.info.StorageInfo.storage_state:type_name -> org.lfedge.eve.info.StorageStatus + 53, // 39: org.lfedge.eve.info.StorageInfo.disks:type_name -> org.lfedge.eve.info.StorageDiskState + 56, // 40: org.lfedge.eve.info.StorageInfo.children:type_name -> org.lfedge.eve.info.StorageChildren + 55, // 41: org.lfedge.eve.info.ZInfoHardware.disks:type_name -> org.lfedge.eve.info.StorageDiskInfo + 34, // 42: org.lfedge.eve.info.ZInfoDevice.minfo:type_name -> org.lfedge.eve.info.ZInfoManufacturer + 35, // 43: org.lfedge.eve.info.ZInfoDevice.network:type_name -> org.lfedge.eve.info.ZInfoNetwork + 31, // 44: org.lfedge.eve.info.ZInfoDevice.assignableAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 37, // 45: org.lfedge.eve.info.ZInfoDevice.dns:type_name -> org.lfedge.eve.info.ZInfoDNS + 70, // 46: org.lfedge.eve.info.ZInfoDevice.storageList:type_name -> org.lfedge.eve.info.ZInfoStorage + 99, // 47: org.lfedge.eve.info.ZInfoDevice.bootTime:type_name -> google.protobuf.Timestamp + 69, // 48: org.lfedge.eve.info.ZInfoDevice.swList:type_name -> org.lfedge.eve.info.ZInfoDevSW + 28, // 49: org.lfedge.eve.info.ZInfoDevice.metricItems:type_name -> org.lfedge.eve.info.deprecatedMetricItem + 99, // 50: org.lfedge.eve.info.ZInfoDevice.lastRebootTime:type_name -> google.protobuf.Timestamp + 62, // 51: org.lfedge.eve.info.ZInfoDevice.systemAdapter:type_name -> org.lfedge.eve.info.SystemAdapterInfo + 5, // 52: org.lfedge.eve.info.ZInfoDevice.HSMStatus:type_name -> org.lfedge.eve.info.HwSecurityModuleStatus + 42, // 53: org.lfedge.eve.info.ZInfoDevice.dataSecAtRestInfo:type_name -> org.lfedge.eve.info.DataSecAtRest + 43, // 54: org.lfedge.eve.info.ZInfoDevice.sec_info:type_name -> org.lfedge.eve.info.SecurityInfo + 45, // 55: org.lfedge.eve.info.ZInfoDevice.configItemStatus:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus + 46, // 56: org.lfedge.eve.info.ZInfoDevice.appInstances:type_name -> org.lfedge.eve.info.ZInfoAppInstance + 16, // 57: org.lfedge.eve.info.ZInfoDevice.last_boot_reason:type_name -> org.lfedge.eve.info.BootReason + 49, // 58: org.lfedge.eve.info.ZInfoDevice.cell_radios:type_name -> org.lfedge.eve.info.ZCellularModuleInfo + 48, // 59: org.lfedge.eve.info.ZInfoDevice.sims:type_name -> org.lfedge.eve.info.ZSimcardInfo + 47, // 60: org.lfedge.eve.info.ZInfoDevice.tasks:type_name -> org.lfedge.eve.info.ZInfoDeviceTasks + 17, // 61: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reason:type_name -> org.lfedge.eve.info.MaintenanceModeReason + 89, // 62: org.lfedge.eve.info.ZInfoDevice.capabilities:type_name -> org.lfedge.eve.info.Capabilities + 11, // 63: org.lfedge.eve.info.ZInfoDevice.state:type_name -> org.lfedge.eve.info.ZDeviceState + 17, // 64: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reasons:type_name -> org.lfedge.eve.info.MaintenanceModeReason + 57, // 65: org.lfedge.eve.info.ZInfoDevice.storage_info:type_name -> org.lfedge.eve.info.StorageInfo + 61, // 66: org.lfedge.eve.info.ZInfoDevice.attestation_info:type_name -> org.lfedge.eve.info.AttestationInfo + 15, // 67: org.lfedge.eve.info.ZInfoDevice.api_capability:type_name -> org.lfedge.eve.info.APICapability + 60, // 68: org.lfedge.eve.info.ZInfoDevice.optional_capabilities:type_name -> org.lfedge.eve.info.OptionalCapabilities + 18, // 69: org.lfedge.eve.info.AttestationInfo.state:type_name -> org.lfedge.eve.info.AttestationState + 39, // 70: org.lfedge.eve.info.AttestationInfo.error:type_name -> org.lfedge.eve.info.ErrorInfo + 63, // 71: org.lfedge.eve.info.SystemAdapterInfo.status:type_name -> org.lfedge.eve.info.DevicePortStatus + 99, // 72: org.lfedge.eve.info.DevicePortStatus.timePriority:type_name -> google.protobuf.Timestamp + 99, // 73: org.lfedge.eve.info.DevicePortStatus.lastFailed:type_name -> google.protobuf.Timestamp + 99, // 74: org.lfedge.eve.info.DevicePortStatus.lastSucceeded:type_name -> google.protobuf.Timestamp + 64, // 75: org.lfedge.eve.info.DevicePortStatus.ports:type_name -> org.lfedge.eve.info.DevicePort + 65, // 76: org.lfedge.eve.info.DevicePort.proxy:type_name -> org.lfedge.eve.info.ProxyStatus + 37, // 77: org.lfedge.eve.info.DevicePort.dns:type_name -> org.lfedge.eve.info.ZInfoDNS + 36, // 78: org.lfedge.eve.info.DevicePort.location:type_name -> org.lfedge.eve.info.GeoLoc + 39, // 79: org.lfedge.eve.info.DevicePort.err:type_name -> org.lfedge.eve.info.ErrorInfo + 98, // 80: org.lfedge.eve.info.DevicePort.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage + 67, // 81: org.lfedge.eve.info.DevicePort.wireless_status:type_name -> org.lfedge.eve.info.WirelessStatus + 66, // 82: org.lfedge.eve.info.ProxyStatus.proxies:type_name -> org.lfedge.eve.info.ProxyEntry + 20, // 83: org.lfedge.eve.info.WirelessStatus.type:type_name -> org.lfedge.eve.info.WirelessType + 68, // 84: org.lfedge.eve.info.WirelessStatus.cellular:type_name -> org.lfedge.eve.info.ZCellularStatus + 50, // 85: org.lfedge.eve.info.ZCellularStatus.providers:type_name -> org.lfedge.eve.info.ZCellularProvider + 103, // 86: org.lfedge.eve.info.ZCellularStatus.current_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology + 99, // 87: org.lfedge.eve.info.ZCellularStatus.connected_at:type_name -> google.protobuf.Timestamp + 51, // 88: org.lfedge.eve.info.ZCellularStatus.bearers:type_name -> org.lfedge.eve.info.CellularBearer + 52, // 89: org.lfedge.eve.info.ZCellularStatus.profiles:type_name -> org.lfedge.eve.info.CellularProfile + 2, // 90: org.lfedge.eve.info.ZInfoDevSW.status:type_name -> org.lfedge.eve.info.ZSwState + 39, // 91: org.lfedge.eve.info.ZInfoDevSW.swErr:type_name -> org.lfedge.eve.info.ErrorInfo + 21, // 92: org.lfedge.eve.info.ZInfoDevSW.userStatus:type_name -> org.lfedge.eve.info.BaseOsStatus + 22, // 93: org.lfedge.eve.info.ZInfoDevSW.subStatus:type_name -> org.lfedge.eve.info.BaseOsSubStatus + 99, // 94: org.lfedge.eve.info.ZInfoSnapshot.create_time:type_name -> google.protobuf.Timestamp + 23, // 95: org.lfedge.eve.info.ZInfoSnapshot.type:type_name -> org.lfedge.eve.info.SnapshotType + 39, // 96: org.lfedge.eve.info.ZInfoSnapshot.snap_err:type_name -> org.lfedge.eve.info.ErrorInfo + 24, // 97: org.lfedge.eve.info.ZInfoClusterNode.node_status:type_name -> org.lfedge.eve.info.ZInfoClusterNodeStatus + 38, // 98: org.lfedge.eve.info.ZInfoApp.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW + 99, // 99: org.lfedge.eve.info.ZInfoApp.bootTime:type_name -> google.protobuf.Timestamp + 31, // 100: org.lfedge.eve.info.ZInfoApp.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 39, // 101: org.lfedge.eve.info.ZInfoApp.appErr:type_name -> org.lfedge.eve.info.ErrorInfo + 2, // 102: org.lfedge.eve.info.ZInfoApp.state:type_name -> org.lfedge.eve.info.ZSwState + 35, // 103: org.lfedge.eve.info.ZInfoApp.network:type_name -> org.lfedge.eve.info.ZInfoNetwork + 71, // 104: org.lfedge.eve.info.ZInfoApp.snapshots:type_name -> org.lfedge.eve.info.ZInfoSnapshot + 25, // 105: org.lfedge.eve.info.ZInfoVpnLink.state:type_name -> org.lfedge.eve.info.ZInfoVpnState + 74, // 106: org.lfedge.eve.info.ZInfoVpnLink.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo + 74, // 107: org.lfedge.eve.info.ZInfoVpnLink.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo + 25, // 108: org.lfedge.eve.info.ZInfoVpnConn.state:type_name -> org.lfedge.eve.info.ZInfoVpnState + 76, // 109: org.lfedge.eve.info.ZInfoVpnConn.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint + 76, // 110: org.lfedge.eve.info.ZInfoVpnConn.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint + 75, // 111: org.lfedge.eve.info.ZInfoVpnConn.links:type_name -> org.lfedge.eve.info.ZInfoVpnLink + 77, // 112: org.lfedge.eve.info.ZInfoVpn.conn:type_name -> org.lfedge.eve.info.ZInfoVpnConn + 99, // 113: org.lfedge.eve.info.ZInfoNetworkInstance.upTimeStamp:type_name -> google.protobuf.Timestamp + 38, // 114: org.lfedge.eve.info.ZInfoNetworkInstance.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW + 29, // 115: org.lfedge.eve.info.ZInfoNetworkInstance.ipAssignments:type_name -> org.lfedge.eve.info.ZmetIPAssignmentEntry + 30, // 116: org.lfedge.eve.info.ZInfoNetworkInstance.vifs:type_name -> org.lfedge.eve.info.ZmetVifInfo + 31, // 117: org.lfedge.eve.info.ZInfoNetworkInstance.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 78, // 118: org.lfedge.eve.info.ZInfoNetworkInstance.vinfo:type_name -> org.lfedge.eve.info.ZInfoVpn + 39, // 119: org.lfedge.eve.info.ZInfoNetworkInstance.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo + 26, // 120: org.lfedge.eve.info.ZInfoNetworkInstance.state:type_name -> org.lfedge.eve.info.ZNetworkInstanceState + 80, // 121: org.lfedge.eve.info.ZInfoNetworkInstance.ip_routes:type_name -> org.lfedge.eve.info.IPRoute + 99, // 122: org.lfedge.eve.info.UsageInfo.createTime:type_name -> google.protobuf.Timestamp + 99, // 123: org.lfedge.eve.info.UsageInfo.lastRefcountChangeTime:type_name -> google.protobuf.Timestamp + 81, // 124: org.lfedge.eve.info.ZInfoVolume.usage:type_name -> org.lfedge.eve.info.UsageInfo + 82, // 125: org.lfedge.eve.info.ZInfoVolume.resources:type_name -> org.lfedge.eve.info.VolumeResources + 2, // 126: org.lfedge.eve.info.ZInfoVolume.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 127: org.lfedge.eve.info.ZInfoVolume.volumeErr:type_name -> org.lfedge.eve.info.ErrorInfo + 84, // 128: org.lfedge.eve.info.ZInfoContentTree.resources:type_name -> org.lfedge.eve.info.ContentResources + 81, // 129: org.lfedge.eve.info.ZInfoContentTree.usage:type_name -> org.lfedge.eve.info.UsageInfo + 2, // 130: org.lfedge.eve.info.ZInfoContentTree.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 131: org.lfedge.eve.info.ZInfoContentTree.err:type_name -> org.lfedge.eve.info.ErrorInfo + 84, // 132: org.lfedge.eve.info.ZInfoBlob.resources:type_name -> org.lfedge.eve.info.ContentResources + 81, // 133: org.lfedge.eve.info.ZInfoBlob.usage:type_name -> org.lfedge.eve.info.UsageInfo + 2, // 134: org.lfedge.eve.info.ZInfoBlob.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 135: org.lfedge.eve.info.ZInfoBlob.err:type_name -> org.lfedge.eve.info.ErrorInfo + 86, // 136: org.lfedge.eve.info.ZInfoBlobList.blob:type_name -> org.lfedge.eve.info.ZInfoBlob + 1, // 137: org.lfedge.eve.info.ZInfoMsg.ztype:type_name -> org.lfedge.eve.info.ZInfoTypes + 59, // 138: org.lfedge.eve.info.ZInfoMsg.dinfo:type_name -> org.lfedge.eve.info.ZInfoDevice + 73, // 139: org.lfedge.eve.info.ZInfoMsg.ainfo:type_name -> org.lfedge.eve.info.ZInfoApp + 79, // 140: org.lfedge.eve.info.ZInfoMsg.niinfo:type_name -> org.lfedge.eve.info.ZInfoNetworkInstance + 83, // 141: org.lfedge.eve.info.ZInfoMsg.vinfo:type_name -> org.lfedge.eve.info.ZInfoVolume + 85, // 142: org.lfedge.eve.info.ZInfoMsg.cinfo:type_name -> org.lfedge.eve.info.ZInfoContentTree + 87, // 143: org.lfedge.eve.info.ZInfoMsg.binfo:type_name -> org.lfedge.eve.info.ZInfoBlobList + 90, // 144: org.lfedge.eve.info.ZInfoMsg.amdinfo:type_name -> org.lfedge.eve.info.ZInfoAppInstMetaData + 91, // 145: org.lfedge.eve.info.ZInfoMsg.evinfo:type_name -> org.lfedge.eve.info.ZInfoEdgeview + 58, // 146: org.lfedge.eve.info.ZInfoMsg.hwinfo:type_name -> org.lfedge.eve.info.ZInfoHardware + 92, // 147: org.lfedge.eve.info.ZInfoMsg.locinfo:type_name -> org.lfedge.eve.info.ZInfoLocation + 104, // 148: org.lfedge.eve.info.ZInfoMsg.patchInfo:type_name -> org.lfedge.eve.info.ZInfoPatchEnvelope + 72, // 149: org.lfedge.eve.info.ZInfoMsg.cluster_node:type_name -> org.lfedge.eve.info.ZInfoClusterNode + 105, // 150: org.lfedge.eve.info.ZInfoMsg.ntp_sources:type_name -> org.lfedge.eve.info.ZInfoNTPSources + 94, // 151: org.lfedge.eve.info.ZInfoMsg.cluster_info:type_name -> org.lfedge.eve.info.ZInfoKubeCluster + 93, // 152: org.lfedge.eve.info.ZInfoMsg.cluster_update_info:type_name -> org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus + 99, // 153: org.lfedge.eve.info.ZInfoMsg.atTimeStamp:type_name -> google.protobuf.Timestamp + 19, // 154: org.lfedge.eve.info.ZInfoAppInstMetaData.type:type_name -> org.lfedge.eve.info.AppInstMetaDataType + 99, // 155: org.lfedge.eve.info.ZInfoEdgeview.expire_time:type_name -> google.protobuf.Timestamp + 99, // 156: org.lfedge.eve.info.ZInfoEdgeview.started_time:type_name -> google.protobuf.Timestamp + 99, // 157: org.lfedge.eve.info.ZInfoLocation.utc_timestamp:type_name -> google.protobuf.Timestamp + 27, // 158: org.lfedge.eve.info.ZInfoLocation.horizontal_reliability:type_name -> org.lfedge.eve.info.LocReliability + 27, // 159: org.lfedge.eve.info.ZInfoLocation.vertical_reliability:type_name -> org.lfedge.eve.info.LocReliability + 106, // 160: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.component:type_name -> org.lfedge.eve.info.KubeComp + 107, // 161: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.status:type_name -> org.lfedge.eve.info.KubeCompUpdateStatus + 39, // 162: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.error:type_name -> org.lfedge.eve.info.ErrorInfo + 108, // 163: org.lfedge.eve.info.ZInfoKubeCluster.nodes:type_name -> org.lfedge.eve.info.KubeNodeInfo + 109, // 164: org.lfedge.eve.info.ZInfoKubeCluster.pod_name_spaces:type_name -> org.lfedge.eve.info.KubePodNameSpaceInfo + 110, // 165: org.lfedge.eve.info.ZInfoKubeCluster.eve_apps:type_name -> org.lfedge.eve.info.KubeEVEAppPodInfo + 111, // 166: org.lfedge.eve.info.ZInfoKubeCluster.storage:type_name -> org.lfedge.eve.info.KubeStorageInfo + 112, // 167: org.lfedge.eve.info.ZInfoKubeCluster.eve_vm_apps:type_name -> org.lfedge.eve.info.KubeVMIInfo + 44, // 168: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem + 44, // 169: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem + 170, // [170:170] is the sub-list for method output_type + 170, // [170:170] is the sub-list for method input_type + 170, // [170:170] is the sub-list for extension type_name + 170, // [170:170] is the sub-list for extension extendee + 0, // [0:170] is the sub-list for field type_name } func init() { file_info_info_proto_init() } @@ -10410,7 +10671,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageDiskState); i { + switch v := v.(*CellularBearer); i { case 0: return &v.state case 1: @@ -10422,7 +10683,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmartAttr); i { + switch v := v.(*CellularProfile); i { case 0: return &v.state case 1: @@ -10434,7 +10695,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageDiskInfo); i { + switch v := v.(*StorageDiskState); i { case 0: return &v.state case 1: @@ -10446,7 +10707,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageChildren); i { + switch v := v.(*SmartAttr); i { case 0: return &v.state case 1: @@ -10458,7 +10719,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageInfo); i { + switch v := v.(*StorageDiskInfo); i { case 0: return &v.state case 1: @@ -10470,7 +10731,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoHardware); i { + switch v := v.(*StorageChildren); i { case 0: return &v.state case 1: @@ -10482,7 +10743,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoDevice); i { + switch v := v.(*StorageInfo); i { case 0: return &v.state case 1: @@ -10494,7 +10755,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OptionalCapabilities); i { + switch v := v.(*ZInfoHardware); i { case 0: return &v.state case 1: @@ -10506,7 +10767,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestationInfo); i { + switch v := v.(*ZInfoDevice); i { case 0: return &v.state case 1: @@ -10518,7 +10779,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemAdapterInfo); i { + switch v := v.(*OptionalCapabilities); i { case 0: return &v.state case 1: @@ -10530,7 +10791,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DevicePortStatus); i { + switch v := v.(*AttestationInfo); i { case 0: return &v.state case 1: @@ -10542,7 +10803,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DevicePort); i { + switch v := v.(*SystemAdapterInfo); i { case 0: return &v.state case 1: @@ -10554,7 +10815,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyStatus); i { + switch v := v.(*DevicePortStatus); i { case 0: return &v.state case 1: @@ -10566,7 +10827,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyEntry); i { + switch v := v.(*DevicePort); i { case 0: return &v.state case 1: @@ -10578,7 +10839,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WirelessStatus); i { + switch v := v.(*ProxyStatus); i { case 0: return &v.state case 1: @@ -10590,7 +10851,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZCellularStatus); i { + switch v := v.(*ProxyEntry); i { case 0: return &v.state case 1: @@ -10602,7 +10863,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoDevSW); i { + switch v := v.(*WirelessStatus); i { case 0: return &v.state case 1: @@ -10614,7 +10875,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoStorage); i { + switch v := v.(*ZCellularStatus); i { case 0: return &v.state case 1: @@ -10626,7 +10887,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoSnapshot); i { + switch v := v.(*ZInfoDevSW); i { case 0: return &v.state case 1: @@ -10638,7 +10899,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoClusterNode); i { + switch v := v.(*ZInfoStorage); i { case 0: return &v.state case 1: @@ -10650,7 +10911,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoApp); i { + switch v := v.(*ZInfoSnapshot); i { case 0: return &v.state case 1: @@ -10662,7 +10923,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnLinkInfo); i { + switch v := v.(*ZInfoClusterNode); i { case 0: return &v.state case 1: @@ -10674,7 +10935,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnLink); i { + switch v := v.(*ZInfoApp); i { case 0: return &v.state case 1: @@ -10686,7 +10947,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnEndPoint); i { + switch v := v.(*ZInfoVpnLinkInfo); i { case 0: return &v.state case 1: @@ -10698,7 +10959,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnConn); i { + switch v := v.(*ZInfoVpnLink); i { case 0: return &v.state case 1: @@ -10710,7 +10971,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpn); i { + switch v := v.(*ZInfoVpnEndPoint); i { case 0: return &v.state case 1: @@ -10722,7 +10983,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoNetworkInstance); i { + switch v := v.(*ZInfoVpnConn); i { case 0: return &v.state case 1: @@ -10734,7 +10995,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IPRoute); i { + switch v := v.(*ZInfoVpn); i { case 0: return &v.state case 1: @@ -10746,7 +11007,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsageInfo); i { + switch v := v.(*ZInfoNetworkInstance); i { case 0: return &v.state case 1: @@ -10758,7 +11019,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeResources); i { + switch v := v.(*IPRoute); i { case 0: return &v.state case 1: @@ -10770,7 +11031,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVolume); i { + switch v := v.(*UsageInfo); i { case 0: return &v.state case 1: @@ -10782,7 +11043,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContentResources); i { + switch v := v.(*VolumeResources); i { case 0: return &v.state case 1: @@ -10794,7 +11055,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoContentTree); i { + switch v := v.(*ZInfoVolume); i { case 0: return &v.state case 1: @@ -10806,7 +11067,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoBlob); i { + switch v := v.(*ContentResources); i { case 0: return &v.state case 1: @@ -10818,7 +11079,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoBlobList); i { + switch v := v.(*ZInfoContentTree); i { case 0: return &v.state case 1: @@ -10830,7 +11091,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoMsg); i { + switch v := v.(*ZInfoBlob); i { case 0: return &v.state case 1: @@ -10842,7 +11103,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Capabilities); i { + switch v := v.(*ZInfoBlobList); i { case 0: return &v.state case 1: @@ -10854,7 +11115,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoAppInstMetaData); i { + switch v := v.(*ZInfoMsg); i { case 0: return &v.state case 1: @@ -10866,7 +11127,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoEdgeview); i { + switch v := v.(*Capabilities); i { case 0: return &v.state case 1: @@ -10878,7 +11139,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoLocation); i { + switch v := v.(*ZInfoAppInstMetaData); i { case 0: return &v.state case 1: @@ -10890,7 +11151,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoKubeClusterUpdateStatus); i { + switch v := v.(*ZInfoEdgeview); i { case 0: return &v.state case 1: @@ -10902,6 +11163,30 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZInfoLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_info_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZInfoKubeClusterUpdateStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_info_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZInfoKubeCluster); i { case 0: return &v.state @@ -10921,10 +11206,10 @@ func file_info_info_proto_init() { (*DeprecatedMetricItem_FloatValue)(nil), (*DeprecatedMetricItem_StringValue)(nil), } - file_info_info_proto_msgTypes[49].OneofWrappers = []interface{}{ + file_info_info_proto_msgTypes[51].OneofWrappers = []interface{}{ (*ZInfoNetworkInstance_Vinfo)(nil), } - file_info_info_proto_msgTypes[58].OneofWrappers = []interface{}{ + file_info_info_proto_msgTypes[60].OneofWrappers = []interface{}{ (*ZInfoMsg_Dinfo)(nil), (*ZInfoMsg_Ainfo)(nil), (*ZInfoMsg_Niinfo)(nil), @@ -10947,7 +11232,7 @@ func file_info_info_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_info_info_proto_rawDesc, NumEnums: 28, - NumMessages: 67, + NumMessages: 69, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/pillar/vendor/modules.txt b/pkg/pillar/vendor/modules.txt index 639ab0dd29..533bf49848 100644 --- a/pkg/pillar/vendor/modules.txt +++ b/pkg/pillar/vendor/modules.txt @@ -676,7 +676,7 @@ github.com/leodido/go-urn github.com/lf-edge/edge-containers/pkg/registry github.com/lf-edge/edge-containers/pkg/resolver github.com/lf-edge/edge-containers/pkg/tgz -# github.com/lf-edge/eve-api/go v0.0.0-20250416000930-73eb0befc1e5 +# github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f ## explicit; go 1.20 github.com/lf-edge/eve-api/go/attest github.com/lf-edge/eve-api/go/auth From 8bdc47ac9166860846c2833546075078b07491ce Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Tue, 1 Apr 2025 18:20:32 +0200 Subject: [PATCH 2/9] Add LTE attach config and status fields to Pillar types Added LTE attach configuration parameters to CellularAccessPoint, and extended WwanNetworkStatus to include status information for all bearers and modem profiles. Signed-off-by: Milan Lenco (cherry picked from commit 89d6fe020eafa692e4ee110445f6ba88339f1dd3) --- pkg/pillar/cipher/cipher.go | 2 + pkg/pillar/types/cipherinfotypes.go | 30 ++++++++--- pkg/pillar/types/dpc.go | 35 +++++++------ pkg/pillar/types/wwan.go | 77 +++++++++++++++++++++++++++++ 4 files changed, 122 insertions(+), 22 deletions(-) diff --git a/pkg/pillar/cipher/cipher.go b/pkg/pillar/cipher/cipher.go index 2765062fd4..9daed1f488 100644 --- a/pkg/pillar/cipher/cipher.go +++ b/pkg/pillar/cipher/cipher.go @@ -26,6 +26,8 @@ func getEncryptionBlock( decBlock.WifiPassword = zconfigDecBlockPtr.WifiPassword decBlock.CellularNetUsername = zconfigDecBlockPtr.CellularNetUsername decBlock.CellularNetPassword = zconfigDecBlockPtr.CellularNetPassword + decBlock.CellularNetAttachUsername = zconfigDecBlockPtr.CellularNetAttachUsername + decBlock.CellularNetAttachPassword = zconfigDecBlockPtr.CellularNetAttachPassword decBlock.ProtectedUserData = zconfigDecBlockPtr.ProtectedUserData decBlock.ClusterToken = zconfigDecBlockPtr.ClusterToken return decBlock diff --git a/pkg/pillar/types/cipherinfotypes.go b/pkg/pillar/types/cipherinfotypes.go index e0996eea89..1be3405299 100644 --- a/pkg/pillar/types/cipherinfotypes.go +++ b/pkg/pillar/types/cipherinfotypes.go @@ -4,6 +4,7 @@ package types import ( + "bytes" "encoding/hex" "github.com/google/go-cmp/cmp" @@ -134,18 +135,31 @@ func (status CipherBlockStatus) LogKey() string { return string(base.CipherBlockStatusLogType) + "-" + status.Key() } +// Equal compares two instances of CipherBlockStatus for equality. +func (status *CipherBlockStatus) Equal(status2 CipherBlockStatus) bool { + return status.CipherBlockID == status2.CipherBlockID && + status.CipherContextID == status2.CipherContextID && + bytes.Equal(status.InitialValue, status2.InitialValue) && + bytes.Equal(status.CipherData, status2.CipherData) && + bytes.Equal(status.ClearTextHash, status2.ClearTextHash) +} + // EncryptionBlock - This is a Mirror of // api/proto/config/acipherinfo.proto - EncryptionBlock // Always need to keep these two consistent. type EncryptionBlock struct { - DsAPIKey string - DsPassword string - WifiUserName string // If the authentication type is EAP - WifiPassword string + DsAPIKey string + DsPassword string + WifiUserName string // If the authentication type is EAP + WifiPassword string + // Credentials for the cellular default bearer: CellularNetUsername string CellularNetPassword string - ProtectedUserData string - ClusterToken string - User zcommon.EncryptionBlockUser - EncryptedData string + // Credentials for the cellular attach bearer: + CellularNetAttachUsername string + CellularNetAttachPassword string + ProtectedUserData string + ClusterToken string + User zcommon.EncryptionBlockUser + EncryptedData string } diff --git a/pkg/pillar/types/dpc.go b/pkg/pillar/types/dpc.go index f282896158..7fe2db619d 100644 --- a/pkg/pillar/types/dpc.go +++ b/pkg/pillar/types/dpc.go @@ -822,11 +822,14 @@ type CellularAccessPoint struct { SIMSlot uint8 // If true, then this configuration is currently activated. Activated bool - // Access Point Network + // Access Point Network for the default bearer. APN string - // Authentication protocol used by the network. + // The IP addressing type to use for the default bearer. + IPType WwanIPType + // Authentication protocol used for the default bearer. AuthProtocol WwanAuthProtocol - // EncryptedCredentials : encrypted username and password. + // Encrypted user credentials for the default bearer and/or the attach bearer + // (when required). EncryptedCredentials CipherBlockStatus // The set of cellular network operators that modem should preferably try to register // and connect into. @@ -837,23 +840,22 @@ type CellularAccessPoint struct { PreferredRATs []WwanRAT // If true, then modem will avoid connecting to networks with roaming. ForbidRoaming bool + // Access Point Network for the attach (aka initial) bearer. + AttachAPN string + // The IP addressing type to use for the attach bearer. + AttachIPType WwanIPType + // Authentication protocol used for the attach bearer. + AttachAuthProtocol WwanAuthProtocol } // Equal compares two instances of CellularAccessPoint for equality. func (ap CellularAccessPoint) Equal(ap2 CellularAccessPoint) bool { if ap.SIMSlot != ap2.SIMSlot || ap.Activated != ap2.Activated || - ap.APN != ap2.APN { - return false - } - enc1 := ap.EncryptedCredentials - enc2 := ap2.EncryptedCredentials - if ap.AuthProtocol != ap2.AuthProtocol || - enc1.CipherBlockID != enc2.CipherBlockID || - enc1.CipherContextID != enc2.CipherContextID || - !bytes.Equal(enc1.InitialValue, enc2.InitialValue) || - !bytes.Equal(enc1.CipherData, enc2.CipherData) || - !bytes.Equal(enc1.ClearTextHash, enc2.ClearTextHash) { + ap.APN != ap2.APN || + ap.IPType != ap2.IPType || + ap.AuthProtocol != ap2.AuthProtocol || + !ap.EncryptedCredentials.Equal(ap2.EncryptedCredentials) { return false } if !generics.EqualLists(ap.PreferredPLMNs, ap2.PreferredPLMNs) || @@ -861,6 +863,11 @@ func (ap CellularAccessPoint) Equal(ap2 CellularAccessPoint) bool { ap.ForbidRoaming != ap2.ForbidRoaming { return false } + if ap.AttachAPN != ap2.AttachAPN || + ap.AttachIPType != ap2.AttachIPType || + ap.AttachAuthProtocol != ap2.AttachAuthProtocol { + return false + } return true } diff --git a/pkg/pillar/types/wwan.go b/pkg/pillar/types/wwan.go index 4223311865..1ee776246e 100644 --- a/pkg/pillar/types/wwan.go +++ b/pkg/pillar/types/wwan.go @@ -149,6 +149,20 @@ const ( WwanRAT5GNR WwanRAT = "5gnr" ) +// WwanIPType : the IP addressing type to use for a given attach or default bearer. +type WwanIPType string + +const ( + // WwanIPTypeUnspecified : IP type is not specified. + WwanIPTypeUnspecified WwanIPType = "" + // WwanIPTypeIPv4 : IPv4 only. + WwanIPTypeIPv4 WwanIPType = "ipv4" + // WwanIPTypeIPv4AndIPv6 : IPv4 and IPv6. + WwanIPTypeIPv4AndIPv6 WwanIPType = "ipv4v6" + // WwanIPTypeIPv6 : IPv6 only. + WwanIPTypeIPv6 WwanIPType = "ipv6" +) + // WwanProbe : cellular connectivity verification probe. type WwanProbe struct { // If true, then probing is disabled. @@ -339,6 +353,11 @@ type WwanNetworkStatus struct { IPSettings WwanIPSettings // True if location tracking is successfully running. LocationTracking bool + // Contains all bearers currently associated with the cellular connection, + // including the attach (initial) bearer. + Bearers []WwanBearer + // Cellular connection profiles stored on the modem. + Profiles []WwanProfile } // WwanCellModule contains cellular module specs. @@ -456,6 +475,60 @@ func (wips WwanIPSettings) Equal(wips2 WwanIPSettings) bool { wips.MTU == wips2.MTU } +// WwanBearer represents a logical connection established between a User Equipment (UE) +// and a cellular network. +type WwanBearer struct { + // Access Point Network of the bearer. + APN string + // Purpose of the bearer. + Type BearerType + // The IP addressing type to use for the bearer. + IPType WwanIPType + // Indicates whether or not the bearer is connected. + Connected bool + // Provides additional information specifying the reason why the modem is not connected + // (either due to a failed connection attempt, or due to a network initiated disconnection). + ConnectionError string + // Unix timestamp in seconds made when the current connection was established. + // Zero value if the bearer is not connected. + ConnectedAt uint64 +} + +// BearerType : purpose of a given cellular bearer. +type BearerType int32 + +// The values here should be same as the ones defined in info.proto of EVE API. +const ( + // BearerTypeUnspecified : bearer type is not specified/known. + BearerTypeUnspecified BearerType = iota + // BearerTypeAttach : bearer used for the initial attach procedure. + BearerTypeAttach + // BearerTypeDefault : default connection bearer providing packet data access + // to the network. + BearerTypeDefault + // BearerTypeDedicated : secondary context (2G/3G) or dedicated bearer (4G), + // defined by the user of the API. These bearers use the same IP address used + // by a primary context or default bearer and provide a dedicated flow for specific + // traffic with different QoS settings. + BearerTypeDedicated +) + +// WwanProfile is a modem-stored configuration that defines how the device +// connects to a network. It is used mostly during the initial attach procedure. +type WwanProfile struct { + // The name of the profile. + Name string + // Access Point Name used by the profile. + APN string + // Which bearer type this profile is for. + BearerType BearerType + // The IP addressing type used by the profile. + IPType WwanIPType + // When true, the modem will not connect to networks that require roaming + // when using this profile. + ForbidRoaming bool +} + // Equal compares two instances of WwanNetworkStatus for equality. func (wns WwanNetworkStatus) Equal(wns2 WwanNetworkStatus) bool { if wns.LogicalLabel != wns2.LogicalLabel || @@ -484,6 +557,10 @@ func (wns WwanNetworkStatus) Equal(wns2 WwanNetworkStatus) bool { wns.LocationTracking != wns2.LocationTracking { return false } + if !generics.EqualSets(wns.Bearers, wns2.Bearers) || + !generics.EqualSets(wns.Profiles, wns2.Profiles) { + return false + } return true } From e0742af1113375682ca1ab62a213ab86621e4213 Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Wed, 21 May 2025 17:01:36 +0200 Subject: [PATCH 3/9] mmagent: Update pillar and eve-api dependencies This update adds support for LTE attach configuration and related informational fields. Signed-off-by: Milan Lenco --- pkg/wwan/mmagent/go.mod | 7 +- pkg/wwan/mmagent/go.sum | 4 +- .../lf-edge/eve-api/go/config/netconfig.pb.go | 170 +- .../eve-api/go/evecommon/acipherinfo.pb.go | 73 +- .../eve-api/go/evecommon/evecommon.pb.go | 156 +- .../lf-edge/eve-api/go/info/info.pb.go | 3613 +++++++++-------- .../lf-edge/eve/pkg/pillar/cipher/cipher.go | 61 +- .../eve/pkg/pillar/cipher/handlecipher.go | 2 +- .../eve/pkg/pillar/containerd/containerd.go | 2 +- .../eve/pkg/pillar/types/cipherinfotypes.go | 28 +- .../lf-edge/eve/pkg/pillar/types/dpc.go | 35 +- .../lf-edge/eve/pkg/pillar/types/global.go | 13 + .../pkg/pillar/types/patchenvelopestypes.go | 115 +- .../lf-edge/eve/pkg/pillar/types/wwan.go | 77 + .../eve/pkg/pillar/types/zedmanagertypes.go | 24 +- pkg/wwan/mmagent/vendor/modules.txt | 6 +- 16 files changed, 2594 insertions(+), 1792 deletions(-) diff --git a/pkg/wwan/mmagent/go.mod b/pkg/wwan/mmagent/go.mod index d92fec4bbb..f0b525405c 100644 --- a/pkg/wwan/mmagent/go.mod +++ b/pkg/wwan/mmagent/go.mod @@ -1,11 +1,12 @@ module github.com/lf-edge/eve/pkg/wwan/mmagent -go 1.23 +go 1.23.0 + toolchain go1.24.1 require ( github.com/godbus/dbus/v5 v5.1.0 - github.com/lf-edge/eve/pkg/pillar v0.0.0-20250314140011-251590c3c9b2 + github.com/lf-edge/eve/pkg/pillar v0.0.0-20250521102811-3fd4163ef046 github.com/miekg/dns v1.1.55 github.com/sirupsen/logrus v1.9.3 github.com/tatsushid/go-fastping v0.0.0-20160109021039-d7bb493dee3e @@ -60,7 +61,7 @@ require ( github.com/klauspost/compress v1.17.6 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 // indirect - github.com/lf-edge/eve-api/go v0.0.0-20250310225738-c77ab6f8c73a // indirect + github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f // indirect github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d // indirect github.com/linuxkit/linuxkit/src/cmd/linuxkit v0.0.0-20240507172735-6d37353ca1ee // indirect github.com/moby/locker v1.0.1 // indirect diff --git a/pkg/wwan/mmagent/go.sum b/pkg/wwan/mmagent/go.sum index 3e46d802e5..fa222afc7e 100644 --- a/pkg/wwan/mmagent/go.sum +++ b/pkg/wwan/mmagent/go.sum @@ -1332,8 +1332,8 @@ github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xw github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 h1:kiqB1Rk8fmWci0idN68azRDJfPxCivD3zNDddWZocFw= github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80/go.mod h1:4yXdumKdTzF0URMtxOl8Xnzdxnoy1QR+2dzfOr4CIZY= -github.com/lf-edge/eve-api/go v0.0.0-20250310225738-c77ab6f8c73a h1:AI1EbTLgXv+vxbWGmp00+SV9u0hnmxO/bcPj6G6avA0= -github.com/lf-edge/eve-api/go v0.0.0-20250310225738-c77ab6f8c73a/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA= +github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f h1:FCTReYtGDfxIX/5jiir/SNFBY1mttQcML4uX3tZP+GI= +github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f/go.mod h1:ot6MhAhBXapUDl/hXklaX4kY88T3uC4PTg0D2wD8DzA= github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d h1:tUBb9M6u42LXwHAYHyh22wJeUUQlTpDkXwRXalpRqbo= github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d/go.mod h1:Nn3juMJJ1G8dyHOebdZyS4jOB/fuxAd5fIajBaWjHr8= github.com/linuxkit/linuxkit/src/cmd/linuxkit v0.0.0-20240507172735-6d37353ca1ee h1:ASS39H/5OkVqkGSOR2xtcIsu3EZH4aDQOKhE1OfazUo= diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go index d70bf26fed..d2c2b687d7 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/config/netconfig.pb.go @@ -618,11 +618,17 @@ type CellularAccessPoint struct { SimSlot uint32 `protobuf:"varint,1,opt,name=sim_slot,json=simSlot,proto3" json:"sim_slot,omitempty"` // Access Point Network to connect into. // By default it is "internet". + // Applies to the default bearer. + // To modify the attach bearer APN, use attach_apn instead. Apn string `protobuf:"bytes,2,opt,name=apn,proto3" json:"apn,omitempty"` // Authentication protocol used by the network. + // Applies to the default bearer. + // To modify the authentication protocol for the attach bearer, use attach_auth_protocol instead. AuthProtocol CellularAuthProtocol `protobuf:"varint,3,opt,name=auth_protocol,json=authProtocol,proto3,enum=org.lfedge.eve.config.CellularAuthProtocol" json:"auth_protocol,omitempty"` // Cipher data may contain encrypted user credentials - // (inside cellNetUsername and cellNetPassword fields). + // (inside cellular_net_* fields of EncryptionBlock). + // EncryptionBlock allows separate configuration of credentials for the attach + // and default bearers. CipherData *evecommon.CipherBlock `protobuf:"bytes,4,opt,name=cipher_data,json=cipherData,proto3" json:"cipher_data,omitempty"` // The set of cellular network operators that modem should preferably try to register // and connect into. @@ -639,6 +645,19 @@ type CellularAccessPoint struct { // Not listed technologies will not be tried. // If empty, then modem will select RAT automatically. PreferredRats []evecommon.RadioAccessTechnology `protobuf:"varint,7,rep,packed,name=preferred_rats,json=preferredRats,proto3,enum=org.lfedge.eve.common.RadioAccessTechnology" json:"preferred_rats,omitempty"` + // The IP addressing type to use for the default bearer. + IpType evecommon.CellularIPType `protobuf:"varint,8,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // Access Point Name (APN) for the attach (initial) bearer. + // This field is optional. If not specified, EVE will not send any attach bearer + // configuration to the modem. Instead, the modem will use one of its pre-installed + // profiles (see CellularProfile) to determine the configuration. + AttachApn string `protobuf:"bytes,9,opt,name=attach_apn,json=attachApn,proto3" json:"attach_apn,omitempty"` + // The IP addressing type to use for the attach bearer. + // Leave undefined if attach_apn is not specified. + AttachIpType evecommon.CellularIPType `protobuf:"varint,10,opt,name=attach_ip_type,json=attachIpType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"attach_ip_type,omitempty"` + // Authentication protocol used for the attach bearer. + // Leave undefined if attach_apn is not specified. + AttachAuthProtocol CellularAuthProtocol `protobuf:"varint,11,opt,name=attach_auth_protocol,json=attachAuthProtocol,proto3,enum=org.lfedge.eve.config.CellularAuthProtocol" json:"attach_auth_protocol,omitempty"` } func (x *CellularAccessPoint) Reset() { @@ -722,6 +741,34 @@ func (x *CellularAccessPoint) GetPreferredRats() []evecommon.RadioAccessTechnolo return nil } +func (x *CellularAccessPoint) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularAccessPoint) GetAttachApn() string { + if x != nil { + return x.AttachApn + } + return "" +} + +func (x *CellularAccessPoint) GetAttachIpType() evecommon.CellularIPType { + if x != nil { + return x.AttachIpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularAccessPoint) GetAttachAuthProtocol() CellularAuthProtocol { + if x != nil { + return x.AttachAuthProtocol + } + return CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_NONE +} + type WifiConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -977,7 +1024,7 @@ var file_config_netconfig_proto_rawDesc = []byte{ 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0xfe, 0x02, 0x0a, 0x13, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0x89, 0x05, 0x0a, 0x13, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x69, 0x6d, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x69, 0x6d, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x6e, 0x18, @@ -1001,47 +1048,64 @@ var file_config_netconfig_proto_rawDesc = []byte{ 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x72, - 0x65, 0x64, 0x52, 0x61, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, - 0x44, 0x12, 0x42, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x46, - 0x69, 0x4b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x53, - 0x63, 0x68, 0x65, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x45, 0x0a, - 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x65, 0x64, 0x52, 0x61, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, + 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, + 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x5f, 0x61, 0x70, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x41, 0x70, 0x6e, 0x12, 0x4b, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, + 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x72, - 0x79, 0x70, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x12, 0x42, 0x0a, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x1e, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x69, 0x70, - 0x68, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, - 0x44, 0x61, 0x74, 0x61, 0x1a, 0x45, 0x0a, 0x0b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0xa1, 0x01, 0x0a, 0x14, - 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, - 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, - 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, - 0x50, 0x41, 0x50, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, - 0x43, 0x48, 0x41, 0x50, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, - 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, - 0x5f, 0x50, 0x41, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, 0x03, 0x42, - 0x3d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, - 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x49, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x5d, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x61, 0x75, 0x74, + 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, + 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x12, 0x61, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x22, 0x92, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x53, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x09, + 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x46, 0x69, 0x4b, 0x65, 0x79, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x65, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x06, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0a, 0x63, + 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x52, 0x0a, 0x63, 0x69, 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0x45, 0x0a, 0x0b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0xa1, 0x01, 0x0a, 0x14, 0x43, 0x65, 0x6c, 0x6c, 0x75, + 0x6c, 0x61, 0x72, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, + 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x1e, 0x0a, 0x1a, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, + 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x41, 0x50, 0x10, 0x01, + 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, 0x54, + 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, + 0x02, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x50, 0x41, 0x50, 0x5f, + 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x48, 0x41, 0x50, 0x10, 0x03, 0x42, 0x3d, 0x0a, 0x15, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, + 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -1077,7 +1141,8 @@ var file_config_netconfig_proto_goTypes = []interface{}{ (*ConnectivityProbe)(nil), // 15: org.lfedge.eve.config.ConnectivityProbe (*evecommon.CipherBlock)(nil), // 16: org.lfedge.eve.common.CipherBlock (evecommon.RadioAccessTechnology)(0), // 17: org.lfedge.eve.common.RadioAccessTechnology - (WiFiKeyScheme)(0), // 18: org.lfedge.eve.config.WiFiKeyScheme + (evecommon.CellularIPType)(0), // 18: org.lfedge.eve.common.CellularIPType + (WiFiKeyScheme)(0), // 19: org.lfedge.eve.config.WiFiKeyScheme } var file_config_netconfig_proto_depIdxs = []int32{ 9, // 0: org.lfedge.eve.config.NetworkConfig.type:type_name -> org.lfedge.eve.config.NetworkType @@ -1095,14 +1160,17 @@ var file_config_netconfig_proto_depIdxs = []int32{ 0, // 12: org.lfedge.eve.config.CellularAccessPoint.auth_protocol:type_name -> org.lfedge.eve.config.CellularAuthProtocol 16, // 13: org.lfedge.eve.config.CellularAccessPoint.cipher_data:type_name -> org.lfedge.eve.common.CipherBlock 17, // 14: org.lfedge.eve.config.CellularAccessPoint.preferred_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology - 18, // 15: org.lfedge.eve.config.WifiConfig.keyScheme:type_name -> org.lfedge.eve.config.WiFiKeyScheme - 8, // 16: org.lfedge.eve.config.WifiConfig.crypto:type_name -> org.lfedge.eve.config.WifiConfig.cryptoblock - 16, // 17: org.lfedge.eve.config.WifiConfig.cipherData:type_name -> org.lfedge.eve.common.CipherBlock - 18, // [18:18] is the sub-list for method output_type - 18, // [18:18] is the sub-list for method input_type - 18, // [18:18] is the sub-list for extension type_name - 18, // [18:18] is the sub-list for extension extendee - 0, // [0:18] is the sub-list for field type_name + 18, // 15: org.lfedge.eve.config.CellularAccessPoint.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 18, // 16: org.lfedge.eve.config.CellularAccessPoint.attach_ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 0, // 17: org.lfedge.eve.config.CellularAccessPoint.attach_auth_protocol:type_name -> org.lfedge.eve.config.CellularAuthProtocol + 19, // 18: org.lfedge.eve.config.WifiConfig.keyScheme:type_name -> org.lfedge.eve.config.WiFiKeyScheme + 8, // 19: org.lfedge.eve.config.WifiConfig.crypto:type_name -> org.lfedge.eve.config.WifiConfig.cryptoblock + 16, // 20: org.lfedge.eve.config.WifiConfig.cipherData:type_name -> org.lfedge.eve.common.CipherBlock + 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_config_netconfig_proto_init() } diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go index 2cd32be96e..537e0d6d83 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/acipherinfo.pb.go @@ -349,8 +349,11 @@ type EncryptionBlock struct { WifiPassword string `protobuf:"bytes,4,opt,name=wifiPassword,proto3" json:"wifiPassword,omitempty"` ProtectedUserData string `protobuf:"bytes,5,opt,name=protectedUserData,proto3" json:"protectedUserData,omitempty"` // Username for cellular network. + // Applies to the default bearer. + // To configure credentials for the attach bearer, use cellular_net_attach_* fields instead. CellularNetUsername string `protobuf:"bytes,6,opt,name=cellular_net_username,json=cellularNetUsername,proto3" json:"cellular_net_username,omitempty"` // Password for cellular network. + // Applies to the default bearer. CellularNetPassword string `protobuf:"bytes,7,opt,name=cellular_net_password,json=cellularNetPassword,proto3" json:"cellular_net_password,omitempty"` // Cluster token ClusterToken string `protobuf:"bytes,8,opt,name=cluster_token,json=clusterToken,proto3" json:"cluster_token,omitempty"` @@ -360,6 +363,12 @@ type EncryptionBlock struct { // by the user specified. User EncryptionBlockUser `protobuf:"varint,9,opt,name=user,proto3,enum=org.lfedge.eve.common.EncryptionBlockUser" json:"user,omitempty"` EncryptedData string `protobuf:"bytes,10,opt,name=encrypted_data,json=encryptedData,proto3" json:"encrypted_data,omitempty"` + // Username for the cellular attach bearer. + // Leave empty if attach_apn in CellularAccessPoint is not specified. + CellularNetAttachUsername string `protobuf:"bytes,11,opt,name=cellular_net_attach_username,json=cellularNetAttachUsername,proto3" json:"cellular_net_attach_username,omitempty"` + // Password for the cellular attach bearer. + // Leave empty if attach_apn in CellularAccessPoint is not specified. + CellularNetAttachPassword string `protobuf:"bytes,12,opt,name=cellular_net_attach_password,json=cellularNetAttachPassword,proto3" json:"cellular_net_attach_password,omitempty"` } func (x *EncryptionBlock) Reset() { @@ -464,6 +473,20 @@ func (x *EncryptionBlock) GetEncryptedData() string { return "" } +func (x *EncryptionBlock) GetCellularNetAttachUsername() string { + if x != nil { + return x.CellularNetAttachUsername + } + return "" +} + +func (x *EncryptionBlock) GetCellularNetAttachPassword() string { + if x != nil { + return x.CellularNetAttachPassword + } + return "" +} + var File_evecommon_acipherinfo_proto protoreflect.FileDescriptor var file_evecommon_acipherinfo_proto_rawDesc = []byte{ @@ -506,7 +529,7 @@ var file_evecommon_acipherinfo_proto_rawDesc = []byte{ 0x70, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, - 0x35, 0x36, 0x22, 0xb7, 0x03, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, + 0x35, 0x36, 0x22, 0xb9, 0x04, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x73, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x73, 0x41, 0x50, 0x49, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x73, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, @@ -533,26 +556,34 @@ var file_evecommon_acipherinfo_proto_rawDesc = []byte{ 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, - 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x2a, 0x2f, 0x0a, 0x11, - 0x4b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x10, 0x01, 0x2a, 0x33, 0x0a, - 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x46, 0x42, - 0x10, 0x01, 0x2a, 0x70, 0x0a, 0x13, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x45, 0x4e, 0x43, - 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, - 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, - 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, - 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x44, 0x41, - 0x54, 0x41, 0x10, 0x01, 0x42, 0x4f, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x0b, 0x41, - 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, - 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3f, 0x0a, 0x1c, + 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x19, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, + 0x1c, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x19, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4e, 0x65, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x2f, + 0x0a, 0x11, 0x4b, 0x65, 0x79, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, + 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4b, 0x45, 0x41, 0x5f, 0x45, 0x43, 0x44, 0x48, 0x10, 0x01, 0x2a, + 0x33, 0x0a, 0x10, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x41, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, + 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x41, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, + 0x46, 0x42, 0x10, 0x01, 0x2a, 0x70, 0x0a, 0x13, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x21, 0x45, + 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, + 0x55, 0x53, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x32, 0x0a, 0x2e, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x42, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x42, 0x49, 0x4e, 0x41, + 0x52, 0x59, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, + 0x44, 0x41, 0x54, 0x41, 0x10, 0x01, 0x42, 0x4f, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, + 0x0b, 0x41, 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x01, 0x5a, 0x27, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, + 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, + 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go index c046935781..09817f29ca 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/evecommon/evecommon.pb.go @@ -131,6 +131,126 @@ func (RadioAccessTechnology) EnumDescriptor() ([]byte, []int) { return file_evecommon_evecommon_proto_rawDescGZIP(), []int{1} } +// The IP addressing type to use for a given attach or default bearer. +type CellularIPType int32 + +const ( + // IP type is not specified. + // When unspecified, EVE will not enforce an IP type in the bearer configuration. + // The modem will instead use its built-in profiles (see CellularProfile) to determine + // the appropriate IP type for the network. + CellularIPType_CELLULAR_IP_TYPE_UNSPECIFIED CellularIPType = 0 + // IPv4 only. + CellularIPType_CELLULAR_IP_TYPE_IPV4 CellularIPType = 1 + // IPv4 and IPv6. + CellularIPType_CELLULAR_IP_TYPE_IPV4_AND_IPV6 CellularIPType = 2 + // IPv6 only. + CellularIPType_CELLULAR_IP_TYPE_IPV6 CellularIPType = 3 +) + +// Enum value maps for CellularIPType. +var ( + CellularIPType_name = map[int32]string{ + 0: "CELLULAR_IP_TYPE_UNSPECIFIED", + 1: "CELLULAR_IP_TYPE_IPV4", + 2: "CELLULAR_IP_TYPE_IPV4_AND_IPV6", + 3: "CELLULAR_IP_TYPE_IPV6", + } + CellularIPType_value = map[string]int32{ + "CELLULAR_IP_TYPE_UNSPECIFIED": 0, + "CELLULAR_IP_TYPE_IPV4": 1, + "CELLULAR_IP_TYPE_IPV4_AND_IPV6": 2, + "CELLULAR_IP_TYPE_IPV6": 3, + } +) + +func (x CellularIPType) Enum() *CellularIPType { + p := new(CellularIPType) + *p = x + return p +} + +func (x CellularIPType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CellularIPType) Descriptor() protoreflect.EnumDescriptor { + return file_evecommon_evecommon_proto_enumTypes[2].Descriptor() +} + +func (CellularIPType) Type() protoreflect.EnumType { + return &file_evecommon_evecommon_proto_enumTypes[2] +} + +func (x CellularIPType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CellularIPType.Descriptor instead. +func (CellularIPType) EnumDescriptor() ([]byte, []int) { + return file_evecommon_evecommon_proto_rawDescGZIP(), []int{2} +} + +// Purpose of a given cellular bearer. +type BearerType int32 + +const ( + // Bearer type is not specified. + BearerType_BEARER_TYPE_UNSPECIFIED BearerType = 0 + // Bearer used for the initial attach procedure. + BearerType_BEARER_TYPE_ATTACH BearerType = 1 + // Default connection bearer providing packet data access to the network. + BearerType_BEARER_TYPE_DEFAULT BearerType = 2 + // Secondary context (2G/3G) or dedicated bearer (4G), defined by the user + // of the API. These bearers use the same IP address used by a primary + // context or default bearer and provide a dedicated flow for specific + // traffic with different QoS settings. + BearerType_BEARER_TYPE_DEDICATED BearerType = 3 +) + +// Enum value maps for BearerType. +var ( + BearerType_name = map[int32]string{ + 0: "BEARER_TYPE_UNSPECIFIED", + 1: "BEARER_TYPE_ATTACH", + 2: "BEARER_TYPE_DEFAULT", + 3: "BEARER_TYPE_DEDICATED", + } + BearerType_value = map[string]int32{ + "BEARER_TYPE_UNSPECIFIED": 0, + "BEARER_TYPE_ATTACH": 1, + "BEARER_TYPE_DEFAULT": 2, + "BEARER_TYPE_DEDICATED": 3, + } +) + +func (x BearerType) Enum() *BearerType { + p := new(BearerType) + *p = x + return p +} + +func (x BearerType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BearerType) Descriptor() protoreflect.EnumDescriptor { + return file_evecommon_evecommon_proto_enumTypes[3].Descriptor() +} + +func (BearerType) Type() protoreflect.EnumType { + return &file_evecommon_evecommon_proto_enumTypes[3] +} + +func (x BearerType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BearerType.Descriptor instead. +func (BearerType) EnumDescriptor() ([]byte, []int) { + return file_evecommon_evecommon_proto_rawDescGZIP(), []int{3} +} + // DiskDescription describes disk // we can use different data to locate disk in the system type DiskDescription struct { @@ -228,12 +348,28 @@ var file_evecommon_evecommon_proto_rawDesc = []byte{ 0x43, 0x48, 0x4e, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 0x4c, 0x54, 0x45, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x45, 0x43, 0x48, 0x4e, 0x4f, 0x4c, 0x4f, 0x47, 0x59, 0x5f, 0x35, 0x47, 0x4e, 0x52, 0x10, 0x04, - 0x42, 0x4d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, 0x09, 0x45, 0x76, 0x65, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, - 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2a, 0x8c, 0x01, 0x0a, 0x0e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, + 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, + 0x52, 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, + 0x12, 0x22, 0x0a, 0x1e, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x49, 0x50, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x49, 0x50, + 0x56, 0x36, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, + 0x5f, 0x49, 0x50, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x03, 0x2a, + 0x75, 0x0a, 0x0a, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, + 0x17, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x45, + 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, + 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, + 0x45, 0x41, 0x52, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x44, 0x49, 0x43, + 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x42, 0x4d, 0x0a, 0x15, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x42, + 0x09, 0x45, 0x76, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x01, 0x5a, 0x27, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, + 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x76, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -248,12 +384,14 @@ func file_evecommon_evecommon_proto_rawDescGZIP() []byte { return file_evecommon_evecommon_proto_rawDescData } -var file_evecommon_evecommon_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_evecommon_evecommon_proto_enumTypes = make([]protoimpl.EnumInfo, 4) var file_evecommon_evecommon_proto_msgTypes = make([]protoimpl.MessageInfo, 1) var file_evecommon_evecommon_proto_goTypes = []interface{}{ (HashAlgorithm)(0), // 0: org.lfedge.eve.common.HashAlgorithm (RadioAccessTechnology)(0), // 1: org.lfedge.eve.common.RadioAccessTechnology - (*DiskDescription)(nil), // 2: org.lfedge.eve.common.DiskDescription + (CellularIPType)(0), // 2: org.lfedge.eve.common.CellularIPType + (BearerType)(0), // 3: org.lfedge.eve.common.BearerType + (*DiskDescription)(nil), // 4: org.lfedge.eve.common.DiskDescription } var file_evecommon_evecommon_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -287,7 +425,7 @@ func file_evecommon_evecommon_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_evecommon_evecommon_proto_rawDesc, - NumEnums: 2, + NumEnums: 4, NumMessages: 1, NumExtensions: 0, NumServices: 0, diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go index 67f9f1cdd8..1fae9178a6 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve-api/go/info/info.pb.go @@ -1035,6 +1035,8 @@ const ( APICapability_API_CAPABILITY_WIN_LIC_PASSTHROUGH APICapability = 12 // Support for passing through OEM Windows license from host's the ACPI tables to the VM APICapability_API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE APICapability = 13 // Volume snapshots supported APICapability_API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE APICapability = 14 // Support for Patch Envelope Encryption + APICapability_API_CAPABILITY_SINGLE_STACK_IP_NETWORK APICapability = 15 // Support for V4Only and V6Only NetworkType + APICapability_API_CAPABILITY_CELLULAR_ATTACH_CONFIG APICapability = 16 // Support cellular attach configuration ) // Enum value maps for APICapability. @@ -1055,6 +1057,8 @@ var ( 12: "API_CAPABILITY_WIN_LIC_PASSTHROUGH", 13: "API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE", 14: "API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE", + 15: "API_CAPABILITY_SINGLE_STACK_IP_NETWORK", + 16: "API_CAPABILITY_CELLULAR_ATTACH_CONFIG", } APICapability_value = map[string]int32{ "API_CAPABILITY_UNSPECIFIED": 0, @@ -1072,6 +1076,8 @@ var ( "API_CAPABILITY_WIN_LIC_PASSTHROUGH": 12, "API_CAPABILITY_VOLUME_SNAPSHOTS_IMMEDIATE": 13, "API_CAPABILITY_ENCRYPTED_PATCH_ENVELOPE": 14, + "API_CAPABILITY_SINGLE_STACK_IP_NETWORK": 15, + "API_CAPABILITY_CELLULAR_ATTACH_CONFIG": 16, } ) @@ -3700,6 +3706,189 @@ func (x *ZCellularProvider) GetForbidden() bool { return false } +// State of a cellular bearer. +type CellularBearer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Access Point Network of the bearer. + Apn string `protobuf:"bytes,1,opt,name=apn,proto3" json:"apn,omitempty"` + // Purpose of the bearer. + BearerType evecommon.BearerType `protobuf:"varint,2,opt,name=bearer_type,json=bearerType,proto3,enum=org.lfedge.eve.common.BearerType" json:"bearer_type,omitempty"` + // The IP addressing type to use for the bearer. + IpType evecommon.CellularIPType `protobuf:"varint,3,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // Indicates whether or not the bearer is connected. + Connected bool `protobuf:"varint,4,opt,name=connected,proto3" json:"connected,omitempty"` + // Provides additional information specifying the reason why the modem is not connected + // (either due to a failed connection attempt, or due to a a network initiated + // disconnection). + ConnectionError string `protobuf:"bytes,5,opt,name=connection_error,json=connectionError,proto3" json:"connection_error,omitempty"` + // Time when the current connection was established. + // Zero timestamp if the bearer is not connected. + ConnectedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=connected_at,json=connectedAt,proto3" json:"connected_at,omitempty"` +} + +func (x *CellularBearer) Reset() { + *x = CellularBearer{} + if protoimpl.UnsafeEnabled { + mi := &file_info_info_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CellularBearer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CellularBearer) ProtoMessage() {} + +func (x *CellularBearer) ProtoReflect() protoreflect.Message { + mi := &file_info_info_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CellularBearer.ProtoReflect.Descriptor instead. +func (*CellularBearer) Descriptor() ([]byte, []int) { + return file_info_info_proto_rawDescGZIP(), []int{23} +} + +func (x *CellularBearer) GetApn() string { + if x != nil { + return x.Apn + } + return "" +} + +func (x *CellularBearer) GetBearerType() evecommon.BearerType { + if x != nil { + return x.BearerType + } + return evecommon.BearerType(0) +} + +func (x *CellularBearer) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularBearer) GetConnected() bool { + if x != nil { + return x.Connected + } + return false +} + +func (x *CellularBearer) GetConnectionError() string { + if x != nil { + return x.ConnectionError + } + return "" +} + +func (x *CellularBearer) GetConnectedAt() *timestamppb.Timestamp { + if x != nil { + return x.ConnectedAt + } + return nil +} + +// A cellular profile is a modem-stored configuration that defines how the device +// connects to a network. It is used mostly during the initial attach procedure. +type CellularProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the profile. + ProfileName string `protobuf:"bytes,1,opt,name=profile_name,json=profileName,proto3" json:"profile_name,omitempty"` + // Access Point Name used by the profile. + Apn string `protobuf:"bytes,2,opt,name=apn,proto3" json:"apn,omitempty"` + // Which bearer type this profile is for. + BearerType evecommon.BearerType `protobuf:"varint,3,opt,name=bearer_type,json=bearerType,proto3,enum=org.lfedge.eve.common.BearerType" json:"bearer_type,omitempty"` + // The IP addressing type used by the profile. + IpType evecommon.CellularIPType `protobuf:"varint,4,opt,name=ip_type,json=ipType,proto3,enum=org.lfedge.eve.common.CellularIPType" json:"ip_type,omitempty"` + // When true, the modem will not connect to networks that require roaming when using this profile. + ForbidRoaming bool `protobuf:"varint,5,opt,name=forbid_roaming,json=forbidRoaming,proto3" json:"forbid_roaming,omitempty"` +} + +func (x *CellularProfile) Reset() { + *x = CellularProfile{} + if protoimpl.UnsafeEnabled { + mi := &file_info_info_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CellularProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CellularProfile) ProtoMessage() {} + +func (x *CellularProfile) ProtoReflect() protoreflect.Message { + mi := &file_info_info_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CellularProfile.ProtoReflect.Descriptor instead. +func (*CellularProfile) Descriptor() ([]byte, []int) { + return file_info_info_proto_rawDescGZIP(), []int{24} +} + +func (x *CellularProfile) GetProfileName() string { + if x != nil { + return x.ProfileName + } + return "" +} + +func (x *CellularProfile) GetApn() string { + if x != nil { + return x.Apn + } + return "" +} + +func (x *CellularProfile) GetBearerType() evecommon.BearerType { + if x != nil { + return x.BearerType + } + return evecommon.BearerType(0) +} + +func (x *CellularProfile) GetIpType() evecommon.CellularIPType { + if x != nil { + return x.IpType + } + return evecommon.CellularIPType(0) +} + +func (x *CellularProfile) GetForbidRoaming() bool { + if x != nil { + return x.ForbidRoaming + } + return false +} + type StorageDiskState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3714,7 +3903,7 @@ type StorageDiskState struct { func (x *StorageDiskState) Reset() { *x = StorageDiskState{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[23] + mi := &file_info_info_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3727,7 +3916,7 @@ func (x *StorageDiskState) String() string { func (*StorageDiskState) ProtoMessage() {} func (x *StorageDiskState) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[23] + mi := &file_info_info_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3740,7 +3929,7 @@ func (x *StorageDiskState) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageDiskState.ProtoReflect.Descriptor instead. func (*StorageDiskState) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{23} + return file_info_info_proto_rawDescGZIP(), []int{25} } func (x *StorageDiskState) GetDiskName() *evecommon.DiskDescription { @@ -3789,7 +3978,7 @@ type SmartAttr struct { func (x *SmartAttr) Reset() { *x = SmartAttr{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[24] + mi := &file_info_info_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3802,7 +3991,7 @@ func (x *SmartAttr) String() string { func (*SmartAttr) ProtoMessage() {} func (x *SmartAttr) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[24] + mi := &file_info_info_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3815,7 +4004,7 @@ func (x *SmartAttr) ProtoReflect() protoreflect.Message { // Deprecated: Use SmartAttr.ProtoReflect.Descriptor instead. func (*SmartAttr) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{24} + return file_info_info_proto_rawDescGZIP(), []int{26} } func (x *SmartAttr) GetId() uint32 { @@ -3890,7 +4079,7 @@ type StorageDiskInfo struct { func (x *StorageDiskInfo) Reset() { *x = StorageDiskInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[25] + mi := &file_info_info_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3903,7 +4092,7 @@ func (x *StorageDiskInfo) String() string { func (*StorageDiskInfo) ProtoMessage() {} func (x *StorageDiskInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[25] + mi := &file_info_info_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3916,7 +4105,7 @@ func (x *StorageDiskInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageDiskInfo.ProtoReflect.Descriptor instead. func (*StorageDiskInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{25} + return file_info_info_proto_rawDescGZIP(), []int{27} } func (x *StorageDiskInfo) GetDiskName() string { @@ -3977,7 +4166,7 @@ type StorageChildren struct { func (x *StorageChildren) Reset() { *x = StorageChildren{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[26] + mi := &file_info_info_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3990,7 +4179,7 @@ func (x *StorageChildren) String() string { func (*StorageChildren) ProtoMessage() {} func (x *StorageChildren) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[26] + mi := &file_info_info_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4003,7 +4192,7 @@ func (x *StorageChildren) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageChildren.ProtoReflect.Descriptor instead. func (*StorageChildren) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{26} + return file_info_info_proto_rawDescGZIP(), []int{28} } func (x *StorageChildren) GetCurrentRaid() StorageRaidType { @@ -4064,7 +4253,7 @@ type StorageInfo struct { func (x *StorageInfo) Reset() { *x = StorageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[27] + mi := &file_info_info_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4077,7 +4266,7 @@ func (x *StorageInfo) String() string { func (*StorageInfo) ProtoMessage() {} func (x *StorageInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[27] + mi := &file_info_info_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4090,7 +4279,7 @@ func (x *StorageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StorageInfo.ProtoReflect.Descriptor instead. func (*StorageInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{27} + return file_info_info_proto_rawDescGZIP(), []int{29} } func (x *StorageInfo) GetPoolName() string { @@ -4189,7 +4378,7 @@ type ZInfoHardware struct { func (x *ZInfoHardware) Reset() { *x = ZInfoHardware{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[28] + mi := &file_info_info_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4202,7 +4391,7 @@ func (x *ZInfoHardware) String() string { func (*ZInfoHardware) ProtoMessage() {} func (x *ZInfoHardware) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[28] + mi := &file_info_info_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4215,7 +4404,7 @@ func (x *ZInfoHardware) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoHardware.ProtoReflect.Descriptor instead. func (*ZInfoHardware) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{28} + return file_info_info_proto_rawDescGZIP(), []int{30} } func (x *ZInfoHardware) GetDisks() []*StorageDiskInfo { @@ -4316,7 +4505,7 @@ type ZInfoDevice struct { func (x *ZInfoDevice) Reset() { *x = ZInfoDevice{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[29] + mi := &file_info_info_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4329,7 +4518,7 @@ func (x *ZInfoDevice) String() string { func (*ZInfoDevice) ProtoMessage() {} func (x *ZInfoDevice) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[29] + mi := &file_info_info_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4342,7 +4531,7 @@ func (x *ZInfoDevice) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoDevice.ProtoReflect.Descriptor instead. func (*ZInfoDevice) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{29} + return file_info_info_proto_rawDescGZIP(), []int{31} } func (x *ZInfoDevice) GetMachineArch() string { @@ -4698,7 +4887,7 @@ type OptionalCapabilities struct { func (x *OptionalCapabilities) Reset() { *x = OptionalCapabilities{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[30] + mi := &file_info_info_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4711,7 +4900,7 @@ func (x *OptionalCapabilities) String() string { func (*OptionalCapabilities) ProtoMessage() {} func (x *OptionalCapabilities) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[30] + mi := &file_info_info_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4724,7 +4913,7 @@ func (x *OptionalCapabilities) ProtoReflect() protoreflect.Message { // Deprecated: Use OptionalCapabilities.ProtoReflect.Descriptor instead. func (*OptionalCapabilities) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{30} + return file_info_info_proto_rawDescGZIP(), []int{32} } func (x *OptionalCapabilities) GetHvTypeKubevirt() bool { @@ -4747,7 +4936,7 @@ type AttestationInfo struct { func (x *AttestationInfo) Reset() { *x = AttestationInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[31] + mi := &file_info_info_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4760,7 +4949,7 @@ func (x *AttestationInfo) String() string { func (*AttestationInfo) ProtoMessage() {} func (x *AttestationInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[31] + mi := &file_info_info_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4773,7 +4962,7 @@ func (x *AttestationInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use AttestationInfo.ProtoReflect.Descriptor instead. func (*AttestationInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{31} + return file_info_info_proto_rawDescGZIP(), []int{33} } func (x *AttestationInfo) GetState() AttestationState { @@ -4803,7 +4992,7 @@ type SystemAdapterInfo struct { func (x *SystemAdapterInfo) Reset() { *x = SystemAdapterInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[32] + mi := &file_info_info_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4816,7 +5005,7 @@ func (x *SystemAdapterInfo) String() string { func (*SystemAdapterInfo) ProtoMessage() {} func (x *SystemAdapterInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[32] + mi := &file_info_info_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4829,7 +5018,7 @@ func (x *SystemAdapterInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SystemAdapterInfo.ProtoReflect.Descriptor instead. func (*SystemAdapterInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{32} + return file_info_info_proto_rawDescGZIP(), []int{34} } func (x *SystemAdapterInfo) GetCurrentIndex() uint32 { @@ -4863,7 +5052,7 @@ type DevicePortStatus struct { func (x *DevicePortStatus) Reset() { *x = DevicePortStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[33] + mi := &file_info_info_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4876,7 +5065,7 @@ func (x *DevicePortStatus) String() string { func (*DevicePortStatus) ProtoMessage() {} func (x *DevicePortStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[33] + mi := &file_info_info_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4889,7 +5078,7 @@ func (x *DevicePortStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use DevicePortStatus.ProtoReflect.Descriptor instead. func (*DevicePortStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{33} + return file_info_info_proto_rawDescGZIP(), []int{35} } func (x *DevicePortStatus) GetVersion() uint32 { @@ -4982,7 +5171,7 @@ type DevicePort struct { func (x *DevicePort) Reset() { *x = DevicePort{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[34] + mi := &file_info_info_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4995,7 +5184,7 @@ func (x *DevicePort) String() string { func (*DevicePort) ProtoMessage() {} func (x *DevicePort) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[34] + mi := &file_info_info_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5008,7 +5197,7 @@ func (x *DevicePort) ProtoReflect() protoreflect.Message { // Deprecated: Use DevicePort.ProtoReflect.Descriptor instead. func (*DevicePort) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{34} + return file_info_info_proto_rawDescGZIP(), []int{36} } func (x *DevicePort) GetIfname() string { @@ -5209,7 +5398,7 @@ type ProxyStatus struct { func (x *ProxyStatus) Reset() { *x = ProxyStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[35] + mi := &file_info_info_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5222,7 +5411,7 @@ func (x *ProxyStatus) String() string { func (*ProxyStatus) ProtoMessage() {} func (x *ProxyStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[35] + mi := &file_info_info_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5235,7 +5424,7 @@ func (x *ProxyStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ProxyStatus.ProtoReflect.Descriptor instead. func (*ProxyStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{35} + return file_info_info_proto_rawDescGZIP(), []int{37} } func (x *ProxyStatus) GetProxies() []*ProxyEntry { @@ -5293,7 +5482,7 @@ type ProxyEntry struct { func (x *ProxyEntry) Reset() { *x = ProxyEntry{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[36] + mi := &file_info_info_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5306,7 +5495,7 @@ func (x *ProxyEntry) String() string { func (*ProxyEntry) ProtoMessage() {} func (x *ProxyEntry) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[36] + mi := &file_info_info_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5319,7 +5508,7 @@ func (x *ProxyEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use ProxyEntry.ProtoReflect.Descriptor instead. func (*ProxyEntry) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{36} + return file_info_info_proto_rawDescGZIP(), []int{38} } func (x *ProxyEntry) GetType() uint32 { @@ -5355,7 +5544,7 @@ type WirelessStatus struct { func (x *WirelessStatus) Reset() { *x = WirelessStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[37] + mi := &file_info_info_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5368,7 +5557,7 @@ func (x *WirelessStatus) String() string { func (*WirelessStatus) ProtoMessage() {} func (x *WirelessStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[37] + mi := &file_info_info_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5381,7 +5570,7 @@ func (x *WirelessStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use WirelessStatus.ProtoReflect.Descriptor instead. func (*WirelessStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{37} + return file_info_info_proto_rawDescGZIP(), []int{39} } func (x *WirelessStatus) GetType() WirelessType { @@ -5424,12 +5613,17 @@ type ZCellularStatus struct { // if the connectivity probing is failing, error is reported here // (see CellularConnectivityProbe). ProbeError string `protobuf:"bytes,11,opt,name=probe_error,json=probeError,proto3" json:"probe_error,omitempty"` + // Contains all bearers currently associated with the cellular connection, + // including the attach (initial) bearer. + Bearers []*CellularBearer `protobuf:"bytes,12,rep,name=bearers,proto3" json:"bearers,omitempty"` + // Cellular connection profiles stored on the modem. + Profiles []*CellularProfile `protobuf:"bytes,13,rep,name=profiles,proto3" json:"profiles,omitempty"` } func (x *ZCellularStatus) Reset() { *x = ZCellularStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[38] + mi := &file_info_info_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5442,7 +5636,7 @@ func (x *ZCellularStatus) String() string { func (*ZCellularStatus) ProtoMessage() {} func (x *ZCellularStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[38] + mi := &file_info_info_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5455,7 +5649,7 @@ func (x *ZCellularStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ZCellularStatus.ProtoReflect.Descriptor instead. func (*ZCellularStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{38} + return file_info_info_proto_rawDescGZIP(), []int{40} } func (x *ZCellularStatus) GetCellularModule() string { @@ -5507,6 +5701,20 @@ func (x *ZCellularStatus) GetProbeError() string { return "" } +func (x *ZCellularStatus) GetBearers() []*CellularBearer { + if x != nil { + return x.Bearers + } + return nil +} + +func (x *ZCellularStatus) GetProfiles() []*CellularProfile { + if x != nil { + return x.Profiles + } + return nil +} + // SW Info for the device base OS // Many of these fields are for debug purposes. The ones intended // for the UI/cli are userStatus, subStatus*, shortVersion, and swErr @@ -5534,7 +5742,7 @@ type ZInfoDevSW struct { func (x *ZInfoDevSW) Reset() { *x = ZInfoDevSW{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[39] + mi := &file_info_info_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5547,7 +5755,7 @@ func (x *ZInfoDevSW) String() string { func (*ZInfoDevSW) ProtoMessage() {} func (x *ZInfoDevSW) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[39] + mi := &file_info_info_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5560,7 +5768,7 @@ func (x *ZInfoDevSW) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoDevSW.ProtoReflect.Descriptor instead. func (*ZInfoDevSW) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{39} + return file_info_info_proto_rawDescGZIP(), []int{41} } func (x *ZInfoDevSW) GetActivated() bool { @@ -5669,7 +5877,7 @@ type ZInfoStorage struct { func (x *ZInfoStorage) Reset() { *x = ZInfoStorage{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[40] + mi := &file_info_info_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5682,7 +5890,7 @@ func (x *ZInfoStorage) String() string { func (*ZInfoStorage) ProtoMessage() {} func (x *ZInfoStorage) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[40] + mi := &file_info_info_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5695,7 +5903,7 @@ func (x *ZInfoStorage) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoStorage.ProtoReflect.Descriptor instead. func (*ZInfoStorage) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{40} + return file_info_info_proto_rawDescGZIP(), []int{42} } func (x *ZInfoStorage) GetDevice() string { @@ -5764,7 +5972,7 @@ type ZInfoSnapshot struct { func (x *ZInfoSnapshot) Reset() { *x = ZInfoSnapshot{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[41] + mi := &file_info_info_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5777,7 +5985,7 @@ func (x *ZInfoSnapshot) String() string { func (*ZInfoSnapshot) ProtoMessage() {} func (x *ZInfoSnapshot) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[41] + mi := &file_info_info_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5790,7 +5998,7 @@ func (x *ZInfoSnapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoSnapshot.ProtoReflect.Descriptor instead. func (*ZInfoSnapshot) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{41} + return file_info_info_proto_rawDescGZIP(), []int{43} } func (x *ZInfoSnapshot) GetId() string { @@ -5846,7 +6054,7 @@ type ZInfoClusterNode struct { func (x *ZInfoClusterNode) Reset() { *x = ZInfoClusterNode{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[42] + mi := &file_info_info_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5859,7 +6067,7 @@ func (x *ZInfoClusterNode) String() string { func (*ZInfoClusterNode) ProtoMessage() {} func (x *ZInfoClusterNode) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[42] + mi := &file_info_info_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5872,7 +6080,7 @@ func (x *ZInfoClusterNode) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoClusterNode.ProtoReflect.Descriptor instead. func (*ZInfoClusterNode) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{42} + return file_info_info_proto_rawDescGZIP(), []int{44} } func (x *ZInfoClusterNode) GetNodeStatus() ZInfoClusterNodeStatus { @@ -5908,7 +6116,7 @@ type ZInfoApp struct { func (x *ZInfoApp) Reset() { *x = ZInfoApp{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[43] + mi := &file_info_info_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5921,7 +6129,7 @@ func (x *ZInfoApp) String() string { func (*ZInfoApp) ProtoMessage() {} func (x *ZInfoApp) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[43] + mi := &file_info_info_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5934,7 +6142,7 @@ func (x *ZInfoApp) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoApp.ProtoReflect.Descriptor instead. func (*ZInfoApp) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{43} + return file_info_info_proto_rawDescGZIP(), []int{45} } func (x *ZInfoApp) GetAppID() string { @@ -6042,7 +6250,7 @@ type ZInfoVpnLinkInfo struct { func (x *ZInfoVpnLinkInfo) Reset() { *x = ZInfoVpnLinkInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[44] + mi := &file_info_info_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6055,7 +6263,7 @@ func (x *ZInfoVpnLinkInfo) String() string { func (*ZInfoVpnLinkInfo) ProtoMessage() {} func (x *ZInfoVpnLinkInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[44] + mi := &file_info_info_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6068,7 +6276,7 @@ func (x *ZInfoVpnLinkInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnLinkInfo.ProtoReflect.Descriptor instead. func (*ZInfoVpnLinkInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{44} + return file_info_info_proto_rawDescGZIP(), []int{46} } func (x *ZInfoVpnLinkInfo) GetSpiId() string { @@ -6111,7 +6319,7 @@ type ZInfoVpnLink struct { func (x *ZInfoVpnLink) Reset() { *x = ZInfoVpnLink{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[45] + mi := &file_info_info_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6124,7 +6332,7 @@ func (x *ZInfoVpnLink) String() string { func (*ZInfoVpnLink) ProtoMessage() {} func (x *ZInfoVpnLink) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[45] + mi := &file_info_info_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6137,7 +6345,7 @@ func (x *ZInfoVpnLink) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnLink.ProtoReflect.Descriptor instead. func (*ZInfoVpnLink) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{45} + return file_info_info_proto_rawDescGZIP(), []int{47} } func (x *ZInfoVpnLink) GetId() string { @@ -6210,7 +6418,7 @@ type ZInfoVpnEndPoint struct { func (x *ZInfoVpnEndPoint) Reset() { *x = ZInfoVpnEndPoint{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[46] + mi := &file_info_info_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6223,7 +6431,7 @@ func (x *ZInfoVpnEndPoint) String() string { func (*ZInfoVpnEndPoint) ProtoMessage() {} func (x *ZInfoVpnEndPoint) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[46] + mi := &file_info_info_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6236,7 +6444,7 @@ func (x *ZInfoVpnEndPoint) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnEndPoint.ProtoReflect.Descriptor instead. func (*ZInfoVpnEndPoint) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{46} + return file_info_info_proto_rawDescGZIP(), []int{48} } func (x *ZInfoVpnEndPoint) GetId() string { @@ -6280,7 +6488,7 @@ type ZInfoVpnConn struct { func (x *ZInfoVpnConn) Reset() { *x = ZInfoVpnConn{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[47] + mi := &file_info_info_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6293,7 +6501,7 @@ func (x *ZInfoVpnConn) String() string { func (*ZInfoVpnConn) ProtoMessage() {} func (x *ZInfoVpnConn) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[47] + mi := &file_info_info_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6306,7 +6514,7 @@ func (x *ZInfoVpnConn) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpnConn.ProtoReflect.Descriptor instead. func (*ZInfoVpnConn) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{47} + return file_info_info_proto_rawDescGZIP(), []int{49} } func (x *ZInfoVpnConn) GetId() string { @@ -6387,7 +6595,7 @@ type ZInfoVpn struct { func (x *ZInfoVpn) Reset() { *x = ZInfoVpn{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[48] + mi := &file_info_info_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6400,7 +6608,7 @@ func (x *ZInfoVpn) String() string { func (*ZInfoVpn) ProtoMessage() {} func (x *ZInfoVpn) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[48] + mi := &file_info_info_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6413,7 +6621,7 @@ func (x *ZInfoVpn) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVpn.ProtoReflect.Descriptor instead. func (*ZInfoVpn) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{48} + return file_info_info_proto_rawDescGZIP(), []int{50} } func (x *ZInfoVpn) GetUpTime() uint64 { @@ -6514,7 +6722,7 @@ type ZInfoNetworkInstance struct { func (x *ZInfoNetworkInstance) Reset() { *x = ZInfoNetworkInstance{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[49] + mi := &file_info_info_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6527,7 +6735,7 @@ func (x *ZInfoNetworkInstance) String() string { func (*ZInfoNetworkInstance) ProtoMessage() {} func (x *ZInfoNetworkInstance) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[49] + mi := &file_info_info_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6540,7 +6748,7 @@ func (x *ZInfoNetworkInstance) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoNetworkInstance.ProtoReflect.Descriptor instead. func (*ZInfoNetworkInstance) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{49} + return file_info_info_proto_rawDescGZIP(), []int{51} } func (x *ZInfoNetworkInstance) GetNetworkID() string { @@ -6747,7 +6955,7 @@ type IPRoute struct { func (x *IPRoute) Reset() { *x = IPRoute{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[50] + mi := &file_info_info_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6760,7 +6968,7 @@ func (x *IPRoute) String() string { func (*IPRoute) ProtoMessage() {} func (x *IPRoute) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[50] + mi := &file_info_info_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6773,7 +6981,7 @@ func (x *IPRoute) ProtoReflect() protoreflect.Message { // Deprecated: Use IPRoute.ProtoReflect.Descriptor instead. func (*IPRoute) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{50} + return file_info_info_proto_rawDescGZIP(), []int{52} } func (x *IPRoute) GetDestinationNetwork() string { @@ -6817,7 +7025,7 @@ type UsageInfo struct { func (x *UsageInfo) Reset() { *x = UsageInfo{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[51] + mi := &file_info_info_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6830,7 +7038,7 @@ func (x *UsageInfo) String() string { func (*UsageInfo) ProtoMessage() {} func (x *UsageInfo) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[51] + mi := &file_info_info_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6843,7 +7051,7 @@ func (x *UsageInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use UsageInfo.ProtoReflect.Descriptor instead. func (*UsageInfo) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{51} + return file_info_info_proto_rawDescGZIP(), []int{53} } func (x *UsageInfo) GetCreateTime() *timestamppb.Timestamp { @@ -6879,7 +7087,7 @@ type VolumeResources struct { func (x *VolumeResources) Reset() { *x = VolumeResources{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[52] + mi := &file_info_info_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6892,7 +7100,7 @@ func (x *VolumeResources) String() string { func (*VolumeResources) ProtoMessage() {} func (x *VolumeResources) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[52] + mi := &file_info_info_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6905,7 +7113,7 @@ func (x *VolumeResources) ProtoReflect() protoreflect.Message { // Deprecated: Use VolumeResources.ProtoReflect.Descriptor instead. func (*VolumeResources) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{52} + return file_info_info_proto_rawDescGZIP(), []int{54} } func (x *VolumeResources) GetMaxSizeBytes() uint64 { @@ -6950,7 +7158,7 @@ type ZInfoVolume struct { func (x *ZInfoVolume) Reset() { *x = ZInfoVolume{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[53] + mi := &file_info_info_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6963,7 +7171,7 @@ func (x *ZInfoVolume) String() string { func (*ZInfoVolume) ProtoMessage() {} func (x *ZInfoVolume) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[53] + mi := &file_info_info_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6976,7 +7184,7 @@ func (x *ZInfoVolume) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoVolume.ProtoReflect.Descriptor instead. func (*ZInfoVolume) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{53} + return file_info_info_proto_rawDescGZIP(), []int{55} } func (x *ZInfoVolume) GetUuid() string { @@ -7046,7 +7254,7 @@ type ContentResources struct { func (x *ContentResources) Reset() { *x = ContentResources{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[54] + mi := &file_info_info_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7059,7 +7267,7 @@ func (x *ContentResources) String() string { func (*ContentResources) ProtoMessage() {} func (x *ContentResources) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[54] + mi := &file_info_info_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7072,7 +7280,7 @@ func (x *ContentResources) ProtoReflect() protoreflect.Message { // Deprecated: Use ContentResources.ProtoReflect.Descriptor instead. func (*ContentResources) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{54} + return file_info_info_proto_rawDescGZIP(), []int{56} } func (x *ContentResources) GetCurSizeBytes() uint64 { @@ -7115,7 +7323,7 @@ type ZInfoContentTree struct { func (x *ZInfoContentTree) Reset() { *x = ZInfoContentTree{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[55] + mi := &file_info_info_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7128,7 +7336,7 @@ func (x *ZInfoContentTree) String() string { func (*ZInfoContentTree) ProtoMessage() {} func (x *ZInfoContentTree) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[55] + mi := &file_info_info_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7141,7 +7349,7 @@ func (x *ZInfoContentTree) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoContentTree.ProtoReflect.Descriptor instead. func (*ZInfoContentTree) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{55} + return file_info_info_proto_rawDescGZIP(), []int{57} } func (x *ZInfoContentTree) GetUuid() string { @@ -7239,7 +7447,7 @@ type ZInfoBlob struct { func (x *ZInfoBlob) Reset() { *x = ZInfoBlob{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[56] + mi := &file_info_info_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7252,7 +7460,7 @@ func (x *ZInfoBlob) String() string { func (*ZInfoBlob) ProtoMessage() {} func (x *ZInfoBlob) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[56] + mi := &file_info_info_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7265,7 +7473,7 @@ func (x *ZInfoBlob) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoBlob.ProtoReflect.Descriptor instead. func (*ZInfoBlob) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{56} + return file_info_info_proto_rawDescGZIP(), []int{58} } func (x *ZInfoBlob) GetSha256() string { @@ -7322,7 +7530,7 @@ type ZInfoBlobList struct { func (x *ZInfoBlobList) Reset() { *x = ZInfoBlobList{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[57] + mi := &file_info_info_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7335,7 +7543,7 @@ func (x *ZInfoBlobList) String() string { func (*ZInfoBlobList) ProtoMessage() {} func (x *ZInfoBlobList) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[57] + mi := &file_info_info_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7348,7 +7556,7 @@ func (x *ZInfoBlobList) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoBlobList.ProtoReflect.Descriptor instead. func (*ZInfoBlobList) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{57} + return file_info_info_proto_rawDescGZIP(), []int{59} } func (x *ZInfoBlobList) GetBlob() []*ZInfoBlob { @@ -7395,7 +7603,7 @@ type ZInfoMsg struct { func (x *ZInfoMsg) Reset() { *x = ZInfoMsg{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[58] + mi := &file_info_info_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7408,7 +7616,7 @@ func (x *ZInfoMsg) String() string { func (*ZInfoMsg) ProtoMessage() {} func (x *ZInfoMsg) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[58] + mi := &file_info_info_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7421,7 +7629,7 @@ func (x *ZInfoMsg) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoMsg.ProtoReflect.Descriptor instead. func (*ZInfoMsg) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{58} + return file_info_info_proto_rawDescGZIP(), []int{60} } func (x *ZInfoMsg) GetZtype() ZInfoTypes { @@ -7670,7 +7878,7 @@ type Capabilities struct { func (x *Capabilities) Reset() { *x = Capabilities{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[59] + mi := &file_info_info_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7683,7 +7891,7 @@ func (x *Capabilities) String() string { func (*Capabilities) ProtoMessage() {} func (x *Capabilities) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[59] + mi := &file_info_info_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7696,7 +7904,7 @@ func (x *Capabilities) ProtoReflect() protoreflect.Message { // Deprecated: Use Capabilities.ProtoReflect.Descriptor instead. func (*Capabilities) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{59} + return file_info_info_proto_rawDescGZIP(), []int{61} } func (x *Capabilities) GetHWAssistedVirtualization() bool { @@ -7729,7 +7937,7 @@ type ZInfoAppInstMetaData struct { func (x *ZInfoAppInstMetaData) Reset() { *x = ZInfoAppInstMetaData{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[60] + mi := &file_info_info_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7742,7 +7950,7 @@ func (x *ZInfoAppInstMetaData) String() string { func (*ZInfoAppInstMetaData) ProtoMessage() {} func (x *ZInfoAppInstMetaData) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[60] + mi := &file_info_info_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7755,7 +7963,7 @@ func (x *ZInfoAppInstMetaData) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoAppInstMetaData.ProtoReflect.Descriptor instead. func (*ZInfoAppInstMetaData) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{60} + return file_info_info_proto_rawDescGZIP(), []int{62} } func (x *ZInfoAppInstMetaData) GetUuid() string { @@ -7800,7 +8008,7 @@ type ZInfoEdgeview struct { func (x *ZInfoEdgeview) Reset() { *x = ZInfoEdgeview{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[61] + mi := &file_info_info_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7813,7 +8021,7 @@ func (x *ZInfoEdgeview) String() string { func (*ZInfoEdgeview) ProtoMessage() {} func (x *ZInfoEdgeview) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[61] + mi := &file_info_info_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7826,7 +8034,7 @@ func (x *ZInfoEdgeview) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoEdgeview.ProtoReflect.Descriptor instead. func (*ZInfoEdgeview) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{61} + return file_info_info_proto_rawDescGZIP(), []int{63} } func (x *ZInfoEdgeview) GetExpireTime() *timestamppb.Timestamp { @@ -7910,7 +8118,7 @@ type ZInfoLocation struct { func (x *ZInfoLocation) Reset() { *x = ZInfoLocation{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[62] + mi := &file_info_info_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7923,7 +8131,7 @@ func (x *ZInfoLocation) String() string { func (*ZInfoLocation) ProtoMessage() {} func (x *ZInfoLocation) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[62] + mi := &file_info_info_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7936,7 +8144,7 @@ func (x *ZInfoLocation) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoLocation.ProtoReflect.Descriptor instead. func (*ZInfoLocation) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{62} + return file_info_info_proto_rawDescGZIP(), []int{64} } func (x *ZInfoLocation) GetLatitude() float64 { @@ -8026,7 +8234,7 @@ type ZInfoKubeClusterUpdateStatus struct { func (x *ZInfoKubeClusterUpdateStatus) Reset() { *x = ZInfoKubeClusterUpdateStatus{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[63] + mi := &file_info_info_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8039,7 +8247,7 @@ func (x *ZInfoKubeClusterUpdateStatus) String() string { func (*ZInfoKubeClusterUpdateStatus) ProtoMessage() {} func (x *ZInfoKubeClusterUpdateStatus) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[63] + mi := &file_info_info_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8052,7 +8260,7 @@ func (x *ZInfoKubeClusterUpdateStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoKubeClusterUpdateStatus.ProtoReflect.Descriptor instead. func (*ZInfoKubeClusterUpdateStatus) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{63} + return file_info_info_proto_rawDescGZIP(), []int{65} } func (x *ZInfoKubeClusterUpdateStatus) GetCurrentNode() string { @@ -8114,7 +8322,7 @@ type ZInfoKubeCluster struct { func (x *ZInfoKubeCluster) Reset() { *x = ZInfoKubeCluster{} if protoimpl.UnsafeEnabled { - mi := &file_info_info_proto_msgTypes[64] + mi := &file_info_info_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8127,7 +8335,7 @@ func (x *ZInfoKubeCluster) String() string { func (*ZInfoKubeCluster) ProtoMessage() {} func (x *ZInfoKubeCluster) ProtoReflect() protoreflect.Message { - mi := &file_info_info_proto_msgTypes[64] + mi := &file_info_info_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8140,7 +8348,7 @@ func (x *ZInfoKubeCluster) ProtoReflect() protoreflect.Message { // Deprecated: Use ZInfoKubeCluster.ProtoReflect.Descriptor instead. func (*ZInfoKubeCluster) Descriptor() ([]byte, []int) { - return file_info_info_proto_rawDescGZIP(), []int{64} + return file_info_info_proto_rawDescGZIP(), []int{66} } func (x *ZInfoKubeCluster) GetNodes() []*KubeNodeInfo { @@ -8498,1328 +8706,1376 @@ var file_info_info_proto_rawDesc = []byte{ 0x0a, 0x07, 0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x6f, 0x72, - 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, - 0x74, 0x74, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x6f, 0x72, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x68, 0x65, 0x6e, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x68, - 0x65, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x61, 0x77, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x22, 0xeb, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x77, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x77, 0x77, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, 0x72, 0x69, - 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x64, 0x65, - 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x29, - 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, - 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3d, 0x0a, 0x0a, 0x73, 0x6d, 0x61, - 0x72, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x52, 0x09, 0x73, - 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x93, - 0x02, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, - 0x65, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, - 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, 0x12, 0x3b, 0x0a, 0x05, 0x64, - 0x69, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, - 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, - 0x07, 0x67, 0x5f, 0x75, 0x5f, 0x69, 0x5f, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x04, - 0x67, 0x55, 0x49, 0x44, 0x22, 0xe5, 0x04, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x7a, 0x66, - 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x7a, 0x66, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x52, 0x61, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x69, - 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x69, 0x7a, 0x65, - 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x7a, 0x76, 0x6f, 0x6c, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5a, 0x76, 0x6f, 0x6c, - 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x64, 0x69, - 0x73, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x62, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x22, 0xae, 0x02, 0x0a, 0x0e, 0x43, 0x65, 0x6c, 0x6c, 0x75, + 0x6c, 0x61, 0x72, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x6e, 0x12, 0x42, 0x0a, 0x0b, 0x62, + 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, + 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 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, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0xf1, 0x01, 0x0a, 0x0f, 0x43, 0x65, 0x6c, 0x6c, + 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x61, 0x70, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x61, 0x70, 0x6e, + 0x12, 0x42, 0x0a, 0x0b, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x42, 0x65, + 0x61, 0x72, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x69, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x43, 0x65, + 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x49, 0x50, 0x54, 0x79, 0x70, 0x65, 0x52, 0x06, 0x69, 0x70, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6f, 0x72, 0x62, 0x69, 0x64, 0x5f, 0x72, + 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x6f, + 0x72, 0x62, 0x69, 0x64, 0x52, 0x6f, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0xcc, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x0b, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, - 0x64, 0x72, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, - 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x22, 0x4b, 0x0a, 0x0d, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x12, 0x3a, 0x0a, - 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x22, 0xe9, 0x15, 0x0a, 0x0b, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, - 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x70, - 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x6e, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, - 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x05, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x72, 0x52, 0x05, 0x6d, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x12, 0x4e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, - 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x12, 0x43, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x6b, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x69, 0x73, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6d, 0x61, 0x72, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x6d, 0x61, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd8, 0x01, 0x0a, 0x09, 0x53, + 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x77, 0x6f, 0x72, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x77, + 0x6f, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x12, 0x1f, 0x0a, 0x0b, + 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x77, 0x68, 0x65, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x61, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x08, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xeb, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, + 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, + 0x73, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x77, 0x77, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x77, 0x77, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, + 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x3d, + 0x0a, 0x0a, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x52, 0x09, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x41, 0x74, 0x74, 0x72, 0x4a, 0x04, 0x08, + 0x03, 0x10, 0x04, 0x22, 0x93, 0x02, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, + 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, + 0x12, 0x3b, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x40, 0x0a, + 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x07, 0x67, 0x5f, 0x75, 0x5f, 0x69, 0x5f, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x04, 0x67, 0x55, 0x49, 0x44, 0x22, 0xe5, 0x04, 0x0a, 0x0b, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, + 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x7a, 0x66, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x7a, 0x66, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x69, 0x64, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, + 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x7a, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x7a, 0x70, 0x6f, 0x6f, + 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x7a, + 0x76, 0x6f, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5a, 0x76, 0x6f, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x4e, 0x53, 0x52, 0x03, 0x64, 0x6e, - 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x12, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, - 0x0a, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x3b, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x53, 0x57, 0x52, - 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x48, 0x6f, 0x73, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x61, 0x73, 0x74, - 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x17, - 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, - 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x26, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x09, 0x48, 0x53, 0x4d, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x72, 0x65, 0x6e, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x48, 0x53, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x6c, - 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, - 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, - 0x52, 0x65, 0x73, 0x74, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, - 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x5f, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x52, + 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x6f, 0x6f, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x70, 0x6f, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, + 0x67, 0x22, 0x4b, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x44, + 0x69, 0x73, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x64, 0x69, 0x73, 0x6b, 0x73, 0x22, 0xe9, + 0x15, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x41, 0x72, 0x63, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x70, 0x75, 0x41, 0x72, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x6e, 0x63, 0x70, 0x75, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x6f, + 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x2c, 0x0a, 0x11, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x79, + 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x05, 0x6d, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, - 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, - 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x20, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, - 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x62, 0x6f, - 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, - 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x10, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x22, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x74, 0x52, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x72, 0x61, - 0x64, 0x69, 0x6f, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x65, 0x6c, 0x6c, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x73, - 0x12, 0x35, 0x0a, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x18, 0x24, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x69, 0x6d, 0x63, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, - 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x05, 0x74, - 0x61, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, - 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x66, 0x0a, 0x17, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, - 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, - 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x15, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x68, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x5f, 0x70, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, 0x67, 0x50, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x69, 0x6e, - 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, - 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x62, 0x61, 0x73, 0x65, 0x6f, - 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x6f, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, 0x0a, 0x18, 0x6d, 0x61, 0x69, - 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, - 0x25, 0x0a, 0x0c, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x2f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x72, 0x6d, 0x61, - 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x30, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, - 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x17, 0x73, - 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x68, - 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x0e, 0x61, 0x70, 0x69, 0x5f, 0x63, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x52, 0x0d, 0x61, 0x70, 0x69, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x15, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x35, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, - 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x14, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x28, 0x0a, - 0x10, 0x68, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x76, 0x54, 0x79, 0x70, 0x65, 0x4b, - 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x76, - 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 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, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x50, - 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 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, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x65, 0x64, 0x65, 0x64, 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, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, - 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, - 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x99, 0x07, 0x0a, 0x0a, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x66, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x4d, 0x67, 0x6d, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4d, 0x67, 0x6d, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x72, 0x65, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, - 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x28, 0x0a, - 0x10, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x4e, 0x74, 0x70, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6e, 0x73, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6e, 0x73, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, - 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x12, 0x24, 0x0a, 0x0d, 0x64, - 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, 0x68, 0x18, 0x12, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, - 0x68, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x63, - 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x63, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x17, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x26, 0x0a, - 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x19, 0x20, 0x01, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, + 0x72, 0x52, 0x05, 0x6d, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4e, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x12, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x4e, - 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x1a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x47, - 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x0b, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, + 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, + 0x65, 0x76, 0x53, 0x57, 0x52, 0x06, 0x73, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x48, 0x6f, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, + 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x42, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x17, 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, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, + 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, - 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x68, 0x79, 0x49, 0x6f, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x18, - 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, 0x55, - 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x22, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0xf6, 0x01, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x65, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x52, 0x4c, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, - 0x78, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x70, 0x61, 0x64, 0x55, 0x52, 0x4c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x70, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x22, - 0x4c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x0e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x66, 0x6f, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, 0x70, + 0x74, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x49, 0x0a, 0x09, 0x48, + 0x53, 0x4d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, - 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x48, 0x53, 0x4d, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, + 0x6f, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x48, 0x53, 0x4d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, + 0x61, 0x63, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x50, 0x0a, 0x11, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x52, 0x11, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x08, + 0x73, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x07, 0x73, 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x10, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x49, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, + 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x0c, 0x61, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x30, 0x0a, + 0x13, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x62, 0x6f, + 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x49, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x22, 0xf1, 0x02, 0x0a, 0x0f, 0x5a, 0x43, - 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x0a, - 0x0f, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, - 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x69, 0x6d, 0x5f, 0x63, 0x61, - 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6d, 0x43, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, - 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x09, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x63, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, 0x69, 0x6f, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x52, 0x0b, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 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, 0x0b, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, 0xdc, 0x04, - 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x53, 0x57, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, - 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, - 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, - 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x73, 0x75, - 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, - 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, - 0x0a, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, - 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, - 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, - 0x08, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x07, 0x73, 0x6e, 0x61, 0x70, 0x45, 0x72, 0x72, 0x22, 0x60, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x86, 0x05, 0x0a, 0x08, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x41, - 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, + 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x0b, 0x63, 0x65, + 0x6c, 0x6c, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x65, 0x6c, 0x6c, 0x52, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x18, 0x24, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x69, 0x6d, 0x63, 0x61, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x73, 0x69, 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x05, + 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x25, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0c, 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, 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x61, - 0x70, 0x70, 0x45, 0x72, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x61, 0x73, + 0x6b, 0x73, 0x52, 0x05, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x69, + 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x26, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x66, 0x0a, 0x17, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, + 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, + 0x67, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x17, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x64, 0x6f, + 0x67, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x72, 0x65, 0x62, 0x6f, + 0x6f, 0x74, 0x5f, 0x69, 0x6e, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x29, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x61, 0x70, 0x70, - 0x45, 0x72, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6f, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x0c, + 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x15, + 0x62, 0x61, 0x73, 0x65, 0x6f, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x62, 0x61, 0x73, + 0x65, 0x6f, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, + 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x64, + 0x0a, 0x18, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, + 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x16, 0x6d, 0x61, + 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0c, 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, + 0x64, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, + 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x30, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x36, 0x0a, 0x17, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x31, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x15, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x32, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x0e, 0x61, 0x70, 0x69, + 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x33, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0d, 0x61, 0x70, 0x69, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x34, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5e, 0x0a, 0x15, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x66, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, - 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, - 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0c, 0x4a, 0x04, 0x08, - 0x13, 0x10, 0x14, 0x22, 0x5e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, - 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x75, 0x62, 0x4e, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, - 0x4c, 0x69, 0x6e, 0x6b, 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, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x71, 0x49, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x73, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, - 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, - 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x52, 0x14, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x40, 0x0a, 0x14, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x68, 0x76, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6b, 0x75, + 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x76, + 0x54, 0x79, 0x70, 0x65, 0x4b, 0x75, 0x62, 0x65, 0x76, 0x69, 0x72, 0x74, 0x22, 0x84, 0x01, 0x0a, + 0x0f, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x3b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x22, 0x76, 0x0a, 0x11, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x64, 0x61, + 0x70, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3d, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xd1, 0x02, 0x0a, 0x10, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 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, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, + 0x6c, 0x61, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 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, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0d, 0x6c, 0x61, 0x73, 0x74, + 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 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, 0x0d, 0x6c, 0x61, 0x73, + 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x05, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0x99, 0x07, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x69, 0x66, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, + 0x4d, 0x67, 0x6d, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x4d, 0x67, + 0x6d, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x65, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x66, 0x72, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x68, 0x63, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x74, 0x70, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x23, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x6f, + 0x72, 0x65, 0x4e, 0x74, 0x70, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0a, 0x64, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4c, 0x6f, 0x77, + 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x69, 0x67, + 0x68, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x68, 0x63, 0x70, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x48, 0x69, 0x67, 0x68, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x05, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x50, 0x41, 0x64, + 0x64, 0x72, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x49, 0x50, 0x41, 0x64, 0x64, + 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x18, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x03, 0x64, 0x6e, + 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x44, 0x4e, 0x53, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x12, 0x0e, 0x0a, 0x02, 0x75, + 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x37, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xe7, 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 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, 0x18, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x1d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, 0x68, + 0x79, 0x49, 0x6f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x05, + 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x55, 0x55, 0x49, 0x44, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x55, 0x55, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x77, + 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x77, 0x69, 0x72, 0x65, 0x6c, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x22, 0xf6, 0x01, 0x0a, 0x0b, + 0x50, 0x72, 0x6f, 0x78, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x70, + 0x72, 0x6f, 0x78, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x63, 0x65, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x63, 0x66, 0x69, 0x6c, 0x65, + 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x28, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, + 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x55, 0x52, 0x4c, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x70, + 0x61, 0x64, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x70, 0x61, + 0x64, 0x55, 0x52, 0x4c, 0x22, 0x4c, 0x0a, 0x0a, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x0e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x08, + 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x08, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x22, 0xf2, + 0x03, 0x0a, 0x0f, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x5f, 0x6d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x65, 0x6c, + 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, + 0x69, 0x6d, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x69, 0x6d, 0x43, 0x61, 0x72, 0x64, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6f, 0x2e, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4f, + 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x61, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x52, 0x61, 0x64, + 0x69, 0x6f, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x61, 0x74, 0x73, 0x12, + 0x3d, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 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, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x3d, 0x0a, 0x07, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x61, 0x72, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x52, 0x07, 0x62, 0x65, 0x61, 0x72, 0x65, 0x72, + 0x73, 0x12, 0x40, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, + 0x61, 0x72, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x73, 0x22, 0xdc, 0x04, 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, + 0x53, 0x57, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x6e, 0x67, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x73, 0x77, 0x45, 0x72, 0x72, 0x12, 0x2a, 0x0a, + 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x75, 0x73, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x53, 0x74, 0x72, + 0x12, 0x42, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, + 0x53, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09, 0x73, 0x75, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x73, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, + 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x0d, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x5f, 0x65, 0x72, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x6e, 0x61, 0x70, 0x45, 0x72, 0x72, 0x22, 0x60, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x22, 0x86, 0x05, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x41, 0x70, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x41, 0x70, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, 0x70, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x41, 0x70, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x41, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, + 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x08, 0x62, 0x6f, 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 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, 0x08, 0x62, 0x6f, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x70, 0x70, 0x45, 0x72, 0x72, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x06, 0x61, 0x70, 0x70, 0x45, 0x72, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, - 0x6b, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, - 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, + 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x66, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2e, 0x0a, + 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x52, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x4a, 0x04, 0x08, + 0x09, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0x5e, 0x0a, 0x10, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x70, 0x69, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x70, + 0x69, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x75, 0x62, 0x4e, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x02, 0x0a, 0x0c, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 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, 0x14, + 0x0a, 0x05, 0x72, 0x65, 0x71, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, + 0x65, 0x71, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x65, 0x73, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x65, 0x73, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, - 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x04, 0x63, 0x6f, 0x6e, 0x6e, 0x22, 0x9f, 0x08, 0x0a, - 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, - 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 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, 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, - 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x12, 0x32, 0x0a, 0x12, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, - 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, - 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, - 0x50, 0x41, 0x64, 0x64, 0x72, 0x12, 0x50, 0x0a, 0x0d, 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x49, 0x50, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, - 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x04, 0x76, 0x69, 0x66, 0x73, 0x18, - 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, - 0x56, 0x69, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x76, 0x69, 0x66, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x12, 0x4a, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, - 0x6e, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x18, 0x28, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x70, 0x6e, 0x4c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, + 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4e, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, + 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xe7, + 0x02, 0x0a, 0x0c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 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, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x6b, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, + 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, + 0x56, 0x70, 0x6e, 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, + 0x45, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x05, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x37, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x4c, 0x69, 0x6e, + 0x6b, 0x52, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x08, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x12, + 0x2a, 0x0a, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x04, 0x63, + 0x6f, 0x6e, 0x6e, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x74, 0x75, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x39, - 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x43, 0x6f, 0x6e, 0x6e, 0x52, 0x04, 0x63, 0x6f, + 0x6e, 0x6e, 0x22, 0x9f, 0x08, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x61, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x64, 0x12, 0x3c, 0x0a, + 0x0b, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x08, 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, 0x0b, + 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x40, 0x0a, 0x0c, 0x73, + 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, - 0x08, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x22, 0x89, - 0x01, 0x0a, 0x07, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x70, 0x70, 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x52, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x16, 0x6c, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, - 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, - 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, - 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, - 0x8b, 0x03, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, - 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, - 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, - 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, - 0x72, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x36, 0x0a, - 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, - 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, - 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, - 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, - 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, - 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xb5, 0x02, 0x0a, 0x09, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x12, - 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, - 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x57, 0x52, + 0x0c, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, + 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, + 0x74, 0x66, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x43, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x49, 0x6e, 0x74, 0x66, 0x12, + 0x32, 0x0a, 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, + 0x41, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x12, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x41, 0x6c, + 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x72, + 0x69, 0x64, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x72, 0x69, + 0x64, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, + 0x72, 0x69, 0x64, 0x67, 0x65, 0x49, 0x50, 0x41, 0x64, 0x64, 0x72, 0x12, 0x50, 0x0a, 0x0d, 0x69, + 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x17, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x49, 0x50, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x69, 0x70, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x34, 0x0a, + 0x04, 0x76, 0x69, 0x66, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x22, 0x43, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x6c, - 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6f, 0x2e, 0x5a, 0x6d, 0x65, 0x74, 0x56, 0x69, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x76, + 0x69, 0x66, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x70, 0x76, 0x34, 0x45, 0x69, 0x64, 0x12, 0x4a, 0x0a, + 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x1e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x69, + 0x6f, 0x42, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x10, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x22, 0xa7, - 0x09, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x05, 0x7a, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, + 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x3e, 0x0a, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, 0x18, 0x28, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x72, 0x72, + 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6d, 0x74, 0x75, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x2b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x49, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, + 0x08, 0x18, 0x10, 0x19, 0x22, 0x89, 0x01, 0x0a, 0x07, 0x49, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x12, 0x2f, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x64, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x70, 0x70, + 0x22, 0xb7, 0x01, 0x0a, 0x09, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, + 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 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, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x66, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x0f, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, + 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x8b, 0x03, 0x0a, 0x0b, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x05, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x05, 0x7a, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x05, 0x64, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x05, 0x64, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, - 0x48, 0x00, 0x52, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x6e, 0x69, 0x69, - 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x38, - 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x42, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, 0x77, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x70, 0x72, + 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, - 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x48, 0x00, - 0x52, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, - 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x05, 0x62, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, - 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, - 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, - 0x00, 0x52, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x76, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, - 0x52, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x06, 0x68, 0x77, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, + 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x36, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x53, 0x69, + 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, + 0x75, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xc9, 0x03, 0x0a, 0x10, + 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, - 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, - 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x07, 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, - 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, - 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, - 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x6c, - 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, - 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, - 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, - 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x6e, - 0x74, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, - 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x54, 0x50, 0x53, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x74, 0x70, 0x53, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, + 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, + 0x0a, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, + 0x0a, 0x03, 0x65, 0x72, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, + 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb5, 0x02, 0x0a, 0x09, 0x5a, 0x49, 0x6e, 0x66, + 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x43, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x53, + 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, + 0x03, 0x65, 0x72, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x63, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x72, 0x72, 0x22, + 0x43, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x32, 0x0a, 0x04, 0x62, 0x6c, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x52, 0x04, + 0x62, 0x6c, 0x6f, 0x62, 0x22, 0xa7, 0x09, 0x0a, 0x08, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x73, + 0x67, 0x12, 0x35, 0x0a, 0x05, 0x7a, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x05, 0x7a, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x76, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x76, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x05, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0b, 0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22, 0x76, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x18, 0x48, 0x57, 0x41, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x48, 0x57, 0x41, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, - 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x7c, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x48, + 0x00, 0x52, 0x05, 0x64, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x35, 0x0a, 0x05, 0x61, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x48, 0x00, 0x52, 0x05, 0x61, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0x43, 0x0a, 0x06, 0x6e, 0x69, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x69, + 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3d, + 0x0a, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x72, 0x65, 0x65, 0x48, 0x00, 0x52, 0x05, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, + 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x05, 0x62, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x07, 0x61, 0x6d, 0x64, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, - 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x01, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, - 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 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, - 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, - 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x45, 0x78, 0x74, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x75, - 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, 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, 0x0c, - 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x5a, 0x0a, 0x16, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, + 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x07, 0x61, 0x6d, 0x64, 0x69, 0x6e, 0x66, 0x6f, + 0x12, 0x3c, 0x0a, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, 0x67, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3c, + 0x0a, 0x06, 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, 0x68, 0x77, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x07, + 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, + 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x6f, 0x63, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x09, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x50, 0x61, 0x74, 0x63, 0x68, + 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x72, + 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, + 0x64, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, + 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, + 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, + 0x66, 0x6f, 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x48, 0x00, 0x52, 0x0a, + 0x6e, 0x74, 0x70, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x63, 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, + 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, + 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3c, 0x0a, 0x0b, 0x61, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 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, 0x0b, 0x61, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0x0a, 0x0b, 0x49, 0x6e, 0x66, + 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x15, 0x10, 0x16, 0x22, 0x76, + 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3a, + 0x0a, 0x18, 0x48, 0x57, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x18, 0x48, 0x57, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x4f, + 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x49, 0x4f, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x14, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x41, + 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, + 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, + 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xe2, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x64, + 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 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, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x02, 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, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x65, 0x76, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x70, 0x70, 0x12, 0x1b, 0x0a, 0x09, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x78, 0x74, 0x22, 0xe8, 0x03, 0x0a, 0x0d, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, + 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, + 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x12, 0x3f, 0x0a, 0x0d, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x04, 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, 0x0c, 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x5a, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, + 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, + 0x74, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x56, + 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, - 0x79, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x6c, - 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x56, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, - 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, - 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x13, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x12, 0x35, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x75, - 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, - 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x31, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, - 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, - 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x96, - 0x02, 0x0a, 0x1c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, - 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, - 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, - 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, - 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, - 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x82, 0x03, 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, + 0x79, 0x52, 0x13, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x35, 0x0a, 0x16, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, + 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x6f, 0x6e, 0x74, + 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, 0x12, 0x31, 0x0a, + 0x14, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, + 0x61, 0x69, 0x6e, 0x74, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x63, 0x61, 0x6c, 0x55, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74, 0x79, + 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x22, 0x96, 0x02, 0x0a, 0x1c, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, + 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x50, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x70, 0x6f, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x5f, - 0x61, 0x70, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, - 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x45, 0x56, 0x45, 0x41, 0x70, 0x70, 0x50, 0x6f, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x65, 0x76, 0x65, 0x41, 0x70, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x76, - 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x56, 0x4d, 0x49, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x65, 0x76, 0x65, 0x56, 0x6d, 0x41, 0x70, 0x70, 0x73, 0x2a, 0x75, 0x0a, 0x11, - 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, - 0x65, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x47, 0x61, 0x75, 0x67, 0x65, 0x10, - 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, - 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x10, 0x03, 0x2a, 0xb0, 0x02, 0x0a, 0x0a, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x4e, 0x6f, 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, - 0x08, 0x5a, 0x69, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x5a, - 0x69, 0x41, 0x70, 0x70, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x5a, 0x69, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x06, 0x12, 0x0c, 0x0a, - 0x08, 0x5a, 0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x5a, - 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, 0x65, 0x65, 0x10, 0x08, 0x12, 0x0e, - 0x0a, 0x0a, 0x5a, 0x69, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x10, 0x09, 0x12, 0x15, - 0x0a, 0x11, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, - 0x61, 0x74, 0x61, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x45, 0x64, 0x67, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x5a, 0x69, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x5a, 0x69, - 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, - 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x10, 0x11, 0x12, - 0x1d, 0x0a, 0x19, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x12, 0x22, 0x04, - 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, - 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x2a, 0x91, 0x03, 0x0a, 0x08, 0x5a, 0x53, 0x77, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, - 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x45, - 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, - 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, - 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x48, - 0x41, 0x4c, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x48, 0x41, 0x4c, 0x54, - 0x45, 0x44, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, - 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, - 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, - 0x41, 0x47, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, - 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, - 0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, - 0x0d, 0x0a, 0x09, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x10, 0x12, 0x0c, - 0x0a, 0x08, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x11, 0x12, 0x0b, 0x0a, 0x07, - 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x41, - 0x44, 0x45, 0x44, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x57, 0x41, 0x49, 0x54, 0x4e, 0x45, - 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x14, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x15, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, - 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x16, 0x12, 0x0b, 0x0a, - 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x17, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, - 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x18, 0x2a, 0x99, 0x02, 0x0a, 0x06, 0x45, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, - 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x4f, 0x53, 0x10, - 0x01, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x59, 0x53, 0x54, - 0x45, 0x4d, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, - 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x16, - 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, - 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x05, 0x12, - 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, - 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, - 0x52, 0x4b, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, - 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, - 0x08, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, - 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x10, 0x09, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, - 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, - 0x42, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, - 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0b, 0x2a, 0x63, 0x0a, 0x08, 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, - 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x41, - 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x45, 0x56, 0x45, 0x52, - 0x49, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x4e, 0x0a, 0x16, 0x48, - 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, - 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x13, - 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, - 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, - 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, - 0x45, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, - 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, - 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, - 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x2a, 0x3f, 0x0a, 0x09, 0x50, 0x43, 0x52, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x43, 0x52, 0x5f, 0x44, 0x49, 0x53, - 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x07, 0x53, 0x69, 0x6d, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, - 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x45, 0x53, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xa0, 0x02, 0x0a, 0x17, 0x5a, 0x43, 0x65, 0x6c, 0x6c, - 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, - 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, - 0x0a, 0x22, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, - 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, - 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, - 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x4f, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, - 0x12, 0x25, 0x0a, 0x21, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, - 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, - 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x33, 0x0a, 0x2f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, - 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x41, 0x4e, 0x44, - 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, + 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, + 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, + 0x43, 0x6f, 0x6d, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, + 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x82, 0x03, + 0x0a, 0x10, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x37, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, + 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x0f, 0x70, + 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, + 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x50, + 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0d, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x41, + 0x0a, 0x08, 0x65, 0x76, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x45, 0x56, 0x45, 0x41, 0x70, + 0x70, 0x50, 0x6f, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x65, 0x76, 0x65, 0x41, 0x70, 0x70, + 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, + 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x76, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x61, 0x70, 0x70, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, + 0x67, 0x65, 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2e, 0x4b, 0x75, 0x62, 0x65, + 0x56, 0x4d, 0x49, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x65, 0x76, 0x65, 0x56, 0x6d, 0x41, 0x70, + 0x70, 0x73, 0x2a, 0x75, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, + 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x00, 0x12, + 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, + 0x47, 0x61, 0x75, 0x67, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x65, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, 0x65, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x10, + 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x74, + 0x65, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x03, 0x2a, 0xb0, 0x02, 0x0a, 0x0a, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x4e, 0x6f, + 0x70, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x5a, 0x69, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, + 0x5a, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x5a, 0x69, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x10, + 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x69, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x72, + 0x65, 0x65, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, 0x69, 0x42, 0x6c, 0x6f, 0x62, 0x4c, 0x69, + 0x73, 0x74, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x5a, 0x69, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x10, 0x0a, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x45, 0x64, 0x67, 0x65, 0x76, 0x69, 0x65, 0x77, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x5a, + 0x69, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, 0x5a, + 0x69, 0x50, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x10, 0x0e, + 0x12, 0x10, 0x0a, 0x0c, 0x5a, 0x69, 0x4e, 0x54, 0x50, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x10, 0x11, 0x12, 0x1d, 0x0a, 0x19, 0x5a, 0x69, 0x4b, 0x75, 0x62, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x10, 0x12, 0x22, 0x04, 0x08, 0x02, 0x10, 0x02, 0x22, 0x04, 0x08, 0x04, 0x10, 0x04, + 0x22, 0x04, 0x08, 0x05, 0x10, 0x05, 0x22, 0x04, 0x08, 0x0f, 0x10, 0x0f, 0x2a, 0x91, 0x03, 0x0a, + 0x08, 0x5a, 0x53, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, + 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, + 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x4c, + 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, + 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x48, 0x41, 0x4c, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0a, + 0x0a, 0x06, 0x48, 0x41, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x45, + 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x55, + 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x53, 0x4f, 0x4c, + 0x56, 0x49, 0x4e, 0x47, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0c, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, + 0x53, 0x4f, 0x4c, 0x56, 0x45, 0x44, 0x5f, 0x54, 0x41, 0x47, 0x10, 0x0d, 0x12, 0x13, 0x0a, 0x0f, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, + 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x4c, + 0x55, 0x4d, 0x45, 0x10, 0x0f, 0x12, 0x0d, 0x0a, 0x09, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x49, + 0x4e, 0x47, 0x10, 0x10, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x11, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x12, 0x12, + 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x13, 0x12, 0x18, 0x0a, 0x14, 0x41, + 0x57, 0x41, 0x49, 0x54, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x10, 0x14, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x15, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x45, + 0x44, 0x10, 0x16, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x17, + 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x18, + 0x2a, 0x99, 0x02, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, + 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x41, + 0x53, 0x45, 0x5f, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x45, 0x4e, 0x54, 0x49, 0x54, + 0x59, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x41, 0x55, + 0x4c, 0x54, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, + 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, + 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, + 0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x08, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, + 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x45, 0x45, 0x10, 0x09, + 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x45, + 0x4e, 0x54, 0x5f, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x4e, 0x54, + 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x10, 0x0b, 0x2a, 0x63, 0x0a, 0x08, + 0x53, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x56, 0x45, + 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x4e, + 0x4f, 0x54, 0x49, 0x43, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x45, 0x56, 0x45, 0x52, + 0x49, 0x54, 0x59, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x53, 0x45, 0x56, 0x45, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, + 0x03, 0x2a, 0x4e, 0x0a, 0x16, 0x48, 0x77, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x46, + 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x63, 0x41, 0x74, 0x52, + 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, + 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, + 0x43, 0x5f, 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, + 0x45, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, + 0x41, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, + 0x02, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x53, 0x45, 0x43, 0x5f, 0x41, 0x54, 0x5f, + 0x52, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x2a, 0x3f, 0x0a, 0x09, + 0x50, 0x43, 0x52, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, 0x52, + 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x43, + 0x52, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, + 0x43, 0x52, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, + 0x07, 0x53, 0x69, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x4d, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, + 0x48, 0x59, 0x53, 0x49, 0x43, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4d, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x53, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xa0, 0x02, 0x0a, + 0x17, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x43, 0x45, + 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, + 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, 0x0a, 0x24, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, - 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x43, - 0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x05, 0x2a, 0x92, 0x01, 0x0a, 0x18, 0x5a, 0x43, - 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x27, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, - 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, - 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, - 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, - 0x4f, 0x4c, 0x5f, 0x51, 0x4d, 0x49, 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x43, 0x45, - 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, - 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xb1, - 0x02, 0x0a, 0x0c, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x1d, 0x0a, 0x19, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, - 0x0a, 0x14, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, - 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x5a, 0x44, 0x45, 0x56, - 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, - 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, - 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x5a, 0x44, 0x45, - 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4f, - 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, - 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, - 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x44, 0x45, 0x56, 0x49, - 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x49, - 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x10, 0x06, 0x12, 0x1e, 0x0a, - 0x1a, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, - 0x4f, 0x57, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x07, 0x12, 0x23, 0x0a, - 0x1f, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, - 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, - 0x10, 0x08, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, - 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, - 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, - 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, - 0x4e, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x10, 0x05, - 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, - 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, - 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x07, 0x2a, 0xe3, 0x01, 0x0a, 0x0f, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, - 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x30, 0x10, 0x01, 0x12, 0x1b, + 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x41, 0x44, 0x49, 0x4f, + 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, + 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x03, 0x12, 0x33, 0x0a, + 0x2f, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x50, 0x45, 0x52, + 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, + 0x4e, 0x45, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x04, 0x12, 0x2b, 0x0a, 0x27, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, + 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x05, 0x2a, + 0x92, 0x01, 0x0a, 0x18, 0x5a, 0x43, 0x65, 0x6c, 0x6c, 0x75, 0x6c, 0x61, 0x72, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x2b, 0x0a, 0x27, + 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, + 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x43, + 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, + 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x51, 0x4d, 0x49, 0x10, 0x01, 0x12, 0x24, + 0x0a, 0x20, 0x5a, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x43, 0x4f, 0x4e, + 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x4d, 0x42, + 0x49, 0x4d, 0x10, 0x02, 0x2a, 0xb1, 0x02, 0x0a, 0x0c, 0x5a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x5a, + 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4d, 0x41, 0x49, + 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x03, 0x12, + 0x21, 0x0a, 0x1d, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, + 0x5f, 0x42, 0x41, 0x53, 0x45, 0x4f, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x24, 0x0a, + 0x20, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x52, 0x45, 0x50, 0x41, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, + 0x46, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4f, 0x46, + 0x46, 0x10, 0x07, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x50, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x50, 0x4f, + 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x10, 0x08, 0x2a, 0xf5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, + 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x47, 0x52, 0x41, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1a, + 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, + 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x41, + 0x56, 0x41, 0x49, 0x4c, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, + 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, + 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x07, + 0x2a, 0xe3, 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x61, 0x69, 0x64, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, + 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, + 0x44, 0x30, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, + 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x31, 0x10, + 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, + 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x35, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x31, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x53, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x36, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x52, 0x41, 0x49, 0x44, 0x35, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, - 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, - 0x49, 0x44, 0x36, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, - 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x37, - 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, - 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x52, 0x41, 0x49, 0x44, 0x10, 0x06, - 0x2a, 0x6b, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x45, 0x58, 0x54, 0x34, - 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x5a, 0x46, 0x53, 0x10, 0x02, 0x2a, 0xb8, 0x04, - 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, - 0x1e, 0x0a, 0x1a, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, - 0x59, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, - 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, - 0x54, 0x59, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, - 0x25, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x53, - 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, - 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x44, 0x47, 0x45, 0x56, - 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, - 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x10, 0x05, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, - 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, - 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x4f, - 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, - 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x4d, - 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x54, 0x55, 0x10, 0x08, 0x12, 0x26, 0x0a, - 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x53, 0x10, 0x09, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, - 0x5f, 0x4e, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x4f, - 0x52, 0x44, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, - 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, 0x54, 0x50, 0x53, 0x5f, 0x46, 0x51, - 0x44, 0x4e, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x49, 0x4e, 0x5f, 0x4c, 0x49, 0x43, 0x5f, 0x50, - 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, 0x10, 0x0c, 0x12, 0x2d, 0x0a, 0x29, - 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, - 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x5f, - 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x41, + 0x5f, 0x52, 0x41, 0x49, 0x44, 0x37, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x54, 0x4f, 0x52, + 0x41, 0x47, 0x45, 0x5f, 0x52, 0x41, 0x49, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, + 0x52, 0x41, 0x49, 0x44, 0x10, 0x06, 0x2a, 0x6b, 0x0a, 0x0f, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x54, 0x4f, + 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, + 0x53, 0x54, 0x4f, 0x52, 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, + 0x4f, 0x5f, 0x45, 0x58, 0x54, 0x34, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x53, 0x54, 0x4f, 0x52, + 0x41, 0x47, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x5a, 0x46, + 0x53, 0x10, 0x02, 0x2a, 0x8f, 0x05, 0x0a, 0x0d, 0x41, 0x50, 0x49, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, + 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x02, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x41, + 0x59, 0x5f, 0x49, 0x4e, 0x5f, 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x53, 0x10, 0x03, 0x12, 0x1b, + 0x0a, 0x17, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x45, 0x44, 0x47, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x04, 0x12, 0x23, 0x0a, 0x1f, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, + 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x53, 0x10, 0x05, + 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, + 0x54, 0x59, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, + 0x4e, 0x43, 0x45, 0x5f, 0x52, 0x4f, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1c, 0x0a, + 0x18, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, + 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x41, + 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x54, + 0x55, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x44, 0x41, 0x50, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x53, 0x10, 0x09, 0x12, 0x2f, 0x0a, 0x2b, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, - 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, - 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x0e, 0x2a, 0xb9, 0x03, 0x0a, 0x0a, 0x42, 0x6f, 0x6f, - 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x4f, 0x4f, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, - 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, - 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, - 0x54, 0x5f, 0x43, 0x4d, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, 0x4f, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, - 0x18, 0x0a, 0x14, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, - 0x41, 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, - 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, - 0x45, 0x43, 0x54, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, - 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x4f, 0x4d, 0x10, - 0x07, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x48, 0x55, 0x4e, 0x47, 0x10, 0x08, - 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, - 0x57, 0x41, 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x16, - 0x0a, 0x12, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, - 0x52, 0x4e, 0x45, 0x4c, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, - 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, - 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x42, - 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, - 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, - 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, - 0x46, 0x5f, 0x43, 0x4d, 0x44, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, - 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, 0x41, 0x49, - 0x4c, 0x10, 0xff, 0x01, 0x2a, 0xa1, 0x02, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, - 0x61, 0x6e, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, - 0x0a, 0x1c, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, - 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, - 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, - 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, - 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, - 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, - 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, - 0x43, 0x4b, 0x45, 0x44, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x49, + 0x46, 0x4f, 0x52, 0x43, 0x45, 0x44, 0x5f, 0x4e, 0x45, 0x54, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, + 0x46, 0x41, 0x43, 0x45, 0x5f, 0x4f, 0x52, 0x44, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x1c, 0x0a, 0x18, + 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4e, + 0x54, 0x50, 0x53, 0x5f, 0x46, 0x51, 0x44, 0x4e, 0x10, 0x0b, 0x12, 0x26, 0x0a, 0x22, 0x41, 0x50, + 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x57, 0x49, 0x4e, + 0x5f, 0x4c, 0x49, 0x43, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x54, 0x48, 0x52, 0x4f, 0x55, 0x47, 0x48, + 0x10, 0x0c, 0x12, 0x2d, 0x0a, 0x29, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x4f, 0x4c, 0x55, 0x4d, 0x45, 0x5f, 0x53, 0x4e, 0x41, 0x50, + 0x53, 0x48, 0x4f, 0x54, 0x53, 0x5f, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, + 0x0d, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x50, 0x41, + 0x54, 0x43, 0x48, 0x5f, 0x45, 0x4e, 0x56, 0x45, 0x4c, 0x4f, 0x50, 0x45, 0x10, 0x0e, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x50, 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, + 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x49, 0x50, + 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x0f, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, + 0x49, 0x5f, 0x43, 0x41, 0x50, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x45, 0x4c, + 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x5f, 0x41, 0x54, 0x54, 0x41, 0x43, 0x48, 0x5f, 0x43, 0x4f, 0x4e, + 0x46, 0x49, 0x47, 0x10, 0x10, 0x2a, 0xb9, 0x03, 0x0a, 0x0a, 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, + 0x5f, 0x46, 0x49, 0x52, 0x53, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x43, + 0x4d, 0x44, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, + 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x4c, 0x4c, + 0x42, 0x41, 0x43, 0x4b, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4f, 0x4f, + 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4f, 0x4f, 0x4d, 0x10, 0x07, 0x12, 0x1d, + 0x0a, 0x19, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, + 0x54, 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x48, 0x55, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1c, 0x0a, + 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x57, 0x41, 0x54, + 0x43, 0x48, 0x44, 0x4f, 0x47, 0x5f, 0x50, 0x49, 0x44, 0x10, 0x09, 0x12, 0x16, 0x0a, 0x12, 0x42, + 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, + 0x4c, 0x10, 0x0a, 0x12, 0x1a, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, + 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x0b, 0x12, + 0x17, 0x0a, 0x13, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0c, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, + 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, + 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x4f, 0x46, 0x46, 0x5f, 0x43, + 0x4d, 0x44, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x16, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, + 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x52, 0x53, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0xff, + 0x01, 0x2a, 0xa1, 0x02, 0x0a, 0x15, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x4d, + 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, + 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x2a, 0x0a, + 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, + 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, + 0x51, 0x55, 0x45, 0x53, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x53, 0x50, - 0x41, 0x43, 0x45, 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, - 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, - 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x49, - 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, - 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, - 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x05, 0x2a, 0xb5, 0x02, 0x0a, 0x10, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, - 0x1d, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, - 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, - 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, - 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, - 0x4d, 0x5f, 0x45, 0x53, 0x43, 0x52, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x03, 0x12, - 0x21, 0x0a, 0x1d, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, - 0x10, 0x04, 0x12, 0x28, 0x0a, 0x24, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, - 0x53, 0x43, 0x52, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, + 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x56, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x4c, 0x4f, 0x43, 0x4b, 0x45, + 0x44, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, + 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x5f, 0x53, 0x50, 0x41, 0x43, 0x45, + 0x10, 0x03, 0x12, 0x32, 0x0a, 0x2e, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, + 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x50, + 0x4d, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x2d, 0x0a, 0x29, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, + 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, + 0x4e, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, + 0x55, 0x52, 0x45, 0x10, 0x05, 0x2a, 0xb5, 0x02, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, + 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x20, 0x0a, + 0x1c, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x43, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x01, 0x12, + 0x24, 0x0a, 0x20, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x45, 0x5f, 0x57, + 0x41, 0x49, 0x54, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x50, 0x4d, 0x5f, 0x45, + 0x53, 0x43, 0x52, 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x03, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x06, - 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x07, - 0x2a, 0x8b, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x50, 0x50, 0x5f, - 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x50, - 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, - 0x47, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, - 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, - 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x61, - 0x0a, 0x0c, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, - 0x0a, 0x19, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, - 0x12, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, - 0x49, 0x46, 0x49, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, - 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x10, - 0x02, 0x2a, 0x71, 0x0a, 0x0c, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, - 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, - 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, - 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, - 0x07, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, - 0x4c, 0x4c, 0x42, 0x41, 0x43, 0x4b, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x06, 0x2a, 0xcb, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, - 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x4e, 0x45, - 0x5f, 0x53, 0x55, 0x42, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, - 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, - 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, - 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, - 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, - 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, - 0x1c, 0x0a, 0x18, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x5f, 0x54, - 0x45, 0x53, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x06, 0x12, 0x13, 0x0a, - 0x0f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, - 0x10, 0x07, 0x2a, 0x68, 0x0a, 0x0c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, - 0x1b, 0x0a, 0x17, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x49, 0x4d, 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb8, 0x01, 0x0a, - 0x16, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x49, 0x4e, 0x46, - 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, - 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x49, - 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x52, 0x45, 0x41, 0x44, 0x59, - 0x10, 0x02, 0x12, 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, - 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x8f, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, - 0x6f, 0x56, 0x70, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, - 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, - 0x4e, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, - 0x50, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, - 0x13, 0x0a, 0x0f, 0x56, 0x50, 0x4e, 0x5f, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, - 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, - 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x52, - 0x45, 0x4b, 0x45, 0x59, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, - 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x85, 0x01, 0x0a, 0x15, 0x5a, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, - 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, - 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x4e, 0x45, 0x54, 0x49, - 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, - 0x03, 0x2a, 0x9e, 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, - 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, - 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, - 0x57, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, - 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, - 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, - 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x43, 0x5f, - 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, - 0x10, 0x04, 0x42, 0x39, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, - 0x2e, 0x65, 0x76, 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, - 0x65, 0x2d, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x04, 0x12, + 0x28, 0x0a, 0x24, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x53, 0x43, 0x52, + 0x4f, 0x57, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x05, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, + 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, + 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x06, 0x12, 0x1e, 0x0a, + 0x1a, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x07, 0x2a, 0x8b, 0x01, + 0x0a, 0x13, 0x41, 0x70, 0x70, 0x49, 0x6e, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, + 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x27, 0x0a, 0x23, 0x41, 0x50, 0x50, 0x5f, 0x49, + 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x4b, 0x55, 0x42, 0x45, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x01, + 0x12, 0x29, 0x0a, 0x25, 0x41, 0x50, 0x50, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x54, + 0x41, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, + 0x4f, 0x4d, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x02, 0x2a, 0x61, 0x0a, 0x0c, 0x57, + 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x57, + 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x49, + 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x57, 0x49, 0x46, 0x49, + 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x43, 0x45, 0x4c, 0x4c, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x02, 0x2a, 0x71, + 0x0a, 0x0c, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x08, + 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x4f, 0x57, 0x4e, + 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x41, 0x4c, 0x4c, 0x42, + 0x41, 0x43, 0x4b, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x06, 0x2a, 0xcb, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x65, 0x4f, 0x73, 0x53, 0x75, 0x62, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x53, 0x55, + 0x42, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x4f, 0x57, + 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x56, 0x45, 0x52, 0x49, 0x46, 0x59, 0x5f, 0x49, 0x4e, 0x50, + 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x42, + 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x50, 0x44, 0x41, + 0x54, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x45, 0x45, 0x44, 0x5f, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x55, 0x50, + 0x44, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x45, 0x52, 0x52, 0x45, 0x44, 0x10, 0x07, 0x2a, + 0x68, 0x0a, 0x0c, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1d, 0x0a, 0x19, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, + 0x0a, 0x18, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x41, 0x50, 0x50, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4d, + 0x4d, 0x45, 0x44, 0x49, 0x41, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb8, 0x01, 0x0a, 0x16, 0x5a, 0x49, + 0x6e, 0x66, 0x6f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x26, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, + 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x24, 0x0a, 0x20, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, + 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, + 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, + 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, + 0x23, 0x0a, 0x1f, 0x5a, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x5f, 0x43, 0x4c, 0x55, 0x53, 0x54, 0x45, + 0x52, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, + 0x57, 0x4e, 0x10, 0x03, 0x2a, 0x8f, 0x01, 0x0a, 0x0d, 0x5a, 0x49, 0x6e, 0x66, 0x6f, 0x56, 0x70, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, + 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x49, + 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x56, 0x50, 0x4e, 0x5f, + 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, + 0x56, 0x50, 0x4e, 0x5f, 0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, + 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x50, 0x4e, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x52, 0x45, 0x4b, 0x45, + 0x59, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x4e, 0x5f, 0x44, 0x45, 0x4c, + 0x45, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x85, 0x01, 0x0a, 0x15, 0x5a, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1e, 0x0a, 0x1a, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x17, 0x0a, 0x13, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x5a, 0x4e, 0x45, + 0x54, 0x49, 0x4e, 0x53, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4f, 0x4e, 0x4c, 0x49, + 0x4e, 0x45, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x5a, 0x4e, 0x45, 0x54, 0x49, 0x4e, 0x53, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x2a, 0x9e, + 0x01, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x12, 0x1f, 0x0a, 0x1b, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, + 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, + 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x01, + 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, + 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x4f, 0x43, + 0x5f, 0x52, 0x45, 0x4c, 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x45, 0x44, + 0x49, 0x55, 0x4d, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x4f, 0x43, 0x5f, 0x52, 0x45, 0x4c, + 0x49, 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x04, 0x42, + 0x39, 0x0a, 0x13, 0x6f, 0x72, 0x67, 0x2e, 0x6c, 0x66, 0x65, 0x64, 0x67, 0x65, 0x2e, 0x65, 0x76, + 0x65, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6c, 0x66, 0x2d, 0x65, 0x64, 0x67, 0x65, 0x2f, 0x65, 0x76, 0x65, 0x2d, 0x61, + 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -9835,7 +10091,7 @@ func file_info_info_proto_rawDescGZIP() []byte { } var file_info_info_proto_enumTypes = make([]protoimpl.EnumInfo, 28) -var file_info_info_proto_msgTypes = make([]protoimpl.MessageInfo, 67) +var file_info_info_proto_msgTypes = make([]protoimpl.MessageInfo, 69) var file_info_info_proto_goTypes = []interface{}{ (DepMetricItemType)(0), // 0: org.lfedge.eve.info.DepMetricItemType (ZInfoTypes)(0), // 1: org.lfedge.eve.info.ZInfoTypes @@ -9888,78 +10144,82 @@ var file_info_info_proto_goTypes = []interface{}{ (*ZSimcardInfo)(nil), // 48: org.lfedge.eve.info.ZSimcardInfo (*ZCellularModuleInfo)(nil), // 49: org.lfedge.eve.info.ZCellularModuleInfo (*ZCellularProvider)(nil), // 50: org.lfedge.eve.info.ZCellularProvider - (*StorageDiskState)(nil), // 51: org.lfedge.eve.info.StorageDiskState - (*SmartAttr)(nil), // 52: org.lfedge.eve.info.SmartAttr - (*StorageDiskInfo)(nil), // 53: org.lfedge.eve.info.StorageDiskInfo - (*StorageChildren)(nil), // 54: org.lfedge.eve.info.StorageChildren - (*StorageInfo)(nil), // 55: org.lfedge.eve.info.StorageInfo - (*ZInfoHardware)(nil), // 56: org.lfedge.eve.info.ZInfoHardware - (*ZInfoDevice)(nil), // 57: org.lfedge.eve.info.ZInfoDevice - (*OptionalCapabilities)(nil), // 58: org.lfedge.eve.info.OptionalCapabilities - (*AttestationInfo)(nil), // 59: org.lfedge.eve.info.AttestationInfo - (*SystemAdapterInfo)(nil), // 60: org.lfedge.eve.info.SystemAdapterInfo - (*DevicePortStatus)(nil), // 61: org.lfedge.eve.info.DevicePortStatus - (*DevicePort)(nil), // 62: org.lfedge.eve.info.DevicePort - (*ProxyStatus)(nil), // 63: org.lfedge.eve.info.ProxyStatus - (*ProxyEntry)(nil), // 64: org.lfedge.eve.info.ProxyEntry - (*WirelessStatus)(nil), // 65: org.lfedge.eve.info.WirelessStatus - (*ZCellularStatus)(nil), // 66: org.lfedge.eve.info.ZCellularStatus - (*ZInfoDevSW)(nil), // 67: org.lfedge.eve.info.ZInfoDevSW - (*ZInfoStorage)(nil), // 68: org.lfedge.eve.info.ZInfoStorage - (*ZInfoSnapshot)(nil), // 69: org.lfedge.eve.info.ZInfoSnapshot - (*ZInfoClusterNode)(nil), // 70: org.lfedge.eve.info.ZInfoClusterNode - (*ZInfoApp)(nil), // 71: org.lfedge.eve.info.ZInfoApp - (*ZInfoVpnLinkInfo)(nil), // 72: org.lfedge.eve.info.ZInfoVpnLinkInfo - (*ZInfoVpnLink)(nil), // 73: org.lfedge.eve.info.ZInfoVpnLink - (*ZInfoVpnEndPoint)(nil), // 74: org.lfedge.eve.info.ZInfoVpnEndPoint - (*ZInfoVpnConn)(nil), // 75: org.lfedge.eve.info.ZInfoVpnConn - (*ZInfoVpn)(nil), // 76: org.lfedge.eve.info.ZInfoVpn - (*ZInfoNetworkInstance)(nil), // 77: org.lfedge.eve.info.ZInfoNetworkInstance - (*IPRoute)(nil), // 78: org.lfedge.eve.info.IPRoute - (*UsageInfo)(nil), // 79: org.lfedge.eve.info.UsageInfo - (*VolumeResources)(nil), // 80: org.lfedge.eve.info.VolumeResources - (*ZInfoVolume)(nil), // 81: org.lfedge.eve.info.ZInfoVolume - (*ContentResources)(nil), // 82: org.lfedge.eve.info.ContentResources - (*ZInfoContentTree)(nil), // 83: org.lfedge.eve.info.ZInfoContentTree - (*ZInfoBlob)(nil), // 84: org.lfedge.eve.info.ZInfoBlob - (*ZInfoBlobList)(nil), // 85: org.lfedge.eve.info.ZInfoBlobList - (*ZInfoMsg)(nil), // 86: org.lfedge.eve.info.ZInfoMsg - (*Capabilities)(nil), // 87: org.lfedge.eve.info.Capabilities - (*ZInfoAppInstMetaData)(nil), // 88: org.lfedge.eve.info.ZInfoAppInstMetaData - (*ZInfoEdgeview)(nil), // 89: org.lfedge.eve.info.ZInfoEdgeview - (*ZInfoLocation)(nil), // 90: org.lfedge.eve.info.ZInfoLocation - (*ZInfoKubeClusterUpdateStatus)(nil), // 91: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus - (*ZInfoKubeCluster)(nil), // 92: org.lfedge.eve.info.ZInfoKubeCluster - nil, // 93: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry - nil, // 94: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry - (evecommon.PhyIoType)(0), // 95: org.lfedge.eve.common.PhyIoType - (evecommon.PhyIoMemberUsage)(0), // 96: org.lfedge.eve.common.PhyIoMemberUsage - (*timestamppb.Timestamp)(nil), // 97: google.protobuf.Timestamp - (*evecommon.DiskDescription)(nil), // 98: org.lfedge.eve.common.DiskDescription - (evecommon.RadioAccessTechnology)(0), // 99: org.lfedge.eve.common.RadioAccessTechnology - (*ZInfoPatchEnvelope)(nil), // 100: org.lfedge.eve.info.ZInfoPatchEnvelope - (*ZInfoNTPSources)(nil), // 101: org.lfedge.eve.info.ZInfoNTPSources - (KubeComp)(0), // 102: org.lfedge.eve.info.KubeComp - (KubeCompUpdateStatus)(0), // 103: org.lfedge.eve.info.KubeCompUpdateStatus - (*KubeNodeInfo)(nil), // 104: org.lfedge.eve.info.KubeNodeInfo - (*KubePodNameSpaceInfo)(nil), // 105: org.lfedge.eve.info.KubePodNameSpaceInfo - (*KubeEVEAppPodInfo)(nil), // 106: org.lfedge.eve.info.KubeEVEAppPodInfo - (*KubeStorageInfo)(nil), // 107: org.lfedge.eve.info.KubeStorageInfo - (*KubeVMIInfo)(nil), // 108: org.lfedge.eve.info.KubeVMIInfo + (*CellularBearer)(nil), // 51: org.lfedge.eve.info.CellularBearer + (*CellularProfile)(nil), // 52: org.lfedge.eve.info.CellularProfile + (*StorageDiskState)(nil), // 53: org.lfedge.eve.info.StorageDiskState + (*SmartAttr)(nil), // 54: org.lfedge.eve.info.SmartAttr + (*StorageDiskInfo)(nil), // 55: org.lfedge.eve.info.StorageDiskInfo + (*StorageChildren)(nil), // 56: org.lfedge.eve.info.StorageChildren + (*StorageInfo)(nil), // 57: org.lfedge.eve.info.StorageInfo + (*ZInfoHardware)(nil), // 58: org.lfedge.eve.info.ZInfoHardware + (*ZInfoDevice)(nil), // 59: org.lfedge.eve.info.ZInfoDevice + (*OptionalCapabilities)(nil), // 60: org.lfedge.eve.info.OptionalCapabilities + (*AttestationInfo)(nil), // 61: org.lfedge.eve.info.AttestationInfo + (*SystemAdapterInfo)(nil), // 62: org.lfedge.eve.info.SystemAdapterInfo + (*DevicePortStatus)(nil), // 63: org.lfedge.eve.info.DevicePortStatus + (*DevicePort)(nil), // 64: org.lfedge.eve.info.DevicePort + (*ProxyStatus)(nil), // 65: org.lfedge.eve.info.ProxyStatus + (*ProxyEntry)(nil), // 66: org.lfedge.eve.info.ProxyEntry + (*WirelessStatus)(nil), // 67: org.lfedge.eve.info.WirelessStatus + (*ZCellularStatus)(nil), // 68: org.lfedge.eve.info.ZCellularStatus + (*ZInfoDevSW)(nil), // 69: org.lfedge.eve.info.ZInfoDevSW + (*ZInfoStorage)(nil), // 70: org.lfedge.eve.info.ZInfoStorage + (*ZInfoSnapshot)(nil), // 71: org.lfedge.eve.info.ZInfoSnapshot + (*ZInfoClusterNode)(nil), // 72: org.lfedge.eve.info.ZInfoClusterNode + (*ZInfoApp)(nil), // 73: org.lfedge.eve.info.ZInfoApp + (*ZInfoVpnLinkInfo)(nil), // 74: org.lfedge.eve.info.ZInfoVpnLinkInfo + (*ZInfoVpnLink)(nil), // 75: org.lfedge.eve.info.ZInfoVpnLink + (*ZInfoVpnEndPoint)(nil), // 76: org.lfedge.eve.info.ZInfoVpnEndPoint + (*ZInfoVpnConn)(nil), // 77: org.lfedge.eve.info.ZInfoVpnConn + (*ZInfoVpn)(nil), // 78: org.lfedge.eve.info.ZInfoVpn + (*ZInfoNetworkInstance)(nil), // 79: org.lfedge.eve.info.ZInfoNetworkInstance + (*IPRoute)(nil), // 80: org.lfedge.eve.info.IPRoute + (*UsageInfo)(nil), // 81: org.lfedge.eve.info.UsageInfo + (*VolumeResources)(nil), // 82: org.lfedge.eve.info.VolumeResources + (*ZInfoVolume)(nil), // 83: org.lfedge.eve.info.ZInfoVolume + (*ContentResources)(nil), // 84: org.lfedge.eve.info.ContentResources + (*ZInfoContentTree)(nil), // 85: org.lfedge.eve.info.ZInfoContentTree + (*ZInfoBlob)(nil), // 86: org.lfedge.eve.info.ZInfoBlob + (*ZInfoBlobList)(nil), // 87: org.lfedge.eve.info.ZInfoBlobList + (*ZInfoMsg)(nil), // 88: org.lfedge.eve.info.ZInfoMsg + (*Capabilities)(nil), // 89: org.lfedge.eve.info.Capabilities + (*ZInfoAppInstMetaData)(nil), // 90: org.lfedge.eve.info.ZInfoAppInstMetaData + (*ZInfoEdgeview)(nil), // 91: org.lfedge.eve.info.ZInfoEdgeview + (*ZInfoLocation)(nil), // 92: org.lfedge.eve.info.ZInfoLocation + (*ZInfoKubeClusterUpdateStatus)(nil), // 93: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus + (*ZInfoKubeCluster)(nil), // 94: org.lfedge.eve.info.ZInfoKubeCluster + nil, // 95: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry + nil, // 96: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry + (evecommon.PhyIoType)(0), // 97: org.lfedge.eve.common.PhyIoType + (evecommon.PhyIoMemberUsage)(0), // 98: org.lfedge.eve.common.PhyIoMemberUsage + (*timestamppb.Timestamp)(nil), // 99: google.protobuf.Timestamp + (evecommon.BearerType)(0), // 100: org.lfedge.eve.common.BearerType + (evecommon.CellularIPType)(0), // 101: org.lfedge.eve.common.CellularIPType + (*evecommon.DiskDescription)(nil), // 102: org.lfedge.eve.common.DiskDescription + (evecommon.RadioAccessTechnology)(0), // 103: org.lfedge.eve.common.RadioAccessTechnology + (*ZInfoPatchEnvelope)(nil), // 104: org.lfedge.eve.info.ZInfoPatchEnvelope + (*ZInfoNTPSources)(nil), // 105: org.lfedge.eve.info.ZInfoNTPSources + (KubeComp)(0), // 106: org.lfedge.eve.info.KubeComp + (KubeCompUpdateStatus)(0), // 107: org.lfedge.eve.info.KubeCompUpdateStatus + (*KubeNodeInfo)(nil), // 108: org.lfedge.eve.info.KubeNodeInfo + (*KubePodNameSpaceInfo)(nil), // 109: org.lfedge.eve.info.KubePodNameSpaceInfo + (*KubeEVEAppPodInfo)(nil), // 110: org.lfedge.eve.info.KubeEVEAppPodInfo + (*KubeStorageInfo)(nil), // 111: org.lfedge.eve.info.KubeStorageInfo + (*KubeVMIInfo)(nil), // 112: org.lfedge.eve.info.KubeVMIInfo } var file_info_info_proto_depIdxs = []int32{ 0, // 0: org.lfedge.eve.info.deprecatedMetricItem.type:type_name -> org.lfedge.eve.info.DepMetricItemType - 95, // 1: org.lfedge.eve.info.ZioBundle.type:type_name -> org.lfedge.eve.common.PhyIoType + 97, // 1: org.lfedge.eve.info.ZioBundle.type:type_name -> org.lfedge.eve.common.PhyIoType 32, // 2: org.lfedge.eve.info.ZioBundle.ioAddressList:type_name -> org.lfedge.eve.info.IoAddresses - 96, // 3: org.lfedge.eve.info.ZioBundle.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage + 98, // 3: org.lfedge.eve.info.ZioBundle.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage 39, // 4: org.lfedge.eve.info.ZioBundle.err:type_name -> org.lfedge.eve.info.ErrorInfo 33, // 5: org.lfedge.eve.info.IoAddresses.vf_info:type_name -> org.lfedge.eve.info.VfPublishedInfo 37, // 6: org.lfedge.eve.info.ZInfoNetwork.dns:type_name -> org.lfedge.eve.info.ZInfoDNS 36, // 7: org.lfedge.eve.info.ZInfoNetwork.location:type_name -> org.lfedge.eve.info.GeoLoc 39, // 8: org.lfedge.eve.info.ZInfoNetwork.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo - 63, // 9: org.lfedge.eve.info.ZInfoNetwork.proxy:type_name -> org.lfedge.eve.info.ProxyStatus + 65, // 9: org.lfedge.eve.info.ZInfoNetwork.proxy:type_name -> org.lfedge.eve.info.ProxyStatus 2, // 10: org.lfedge.eve.info.ZInfoSW.state:type_name -> org.lfedge.eve.info.ZSwState - 97, // 11: org.lfedge.eve.info.ErrorInfo.timestamp:type_name -> google.protobuf.Timestamp + 99, // 11: org.lfedge.eve.info.ErrorInfo.timestamp:type_name -> google.protobuf.Timestamp 4, // 12: org.lfedge.eve.info.ErrorInfo.severity:type_name -> org.lfedge.eve.info.Severity 40, // 13: org.lfedge.eve.info.ErrorInfo.entities:type_name -> org.lfedge.eve.info.DeviceEntity 3, // 14: org.lfedge.eve.info.DeviceEntity.entity:type_name -> org.lfedge.eve.info.Entity @@ -9968,154 +10228,161 @@ var file_info_info_proto_depIdxs = []int32{ 7, // 17: org.lfedge.eve.info.VaultInfo.pcrStatus:type_name -> org.lfedge.eve.info.PCRStatus 6, // 18: org.lfedge.eve.info.DataSecAtRest.status:type_name -> org.lfedge.eve.info.DataSecAtRestStatus 41, // 19: org.lfedge.eve.info.DataSecAtRest.vaultList:type_name -> org.lfedge.eve.info.VaultInfo - 93, // 20: org.lfedge.eve.info.ZInfoConfigItemStatus.configItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry - 94, // 21: org.lfedge.eve.info.ZInfoConfigItemStatus.unknownConfigItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry + 95, // 20: org.lfedge.eve.info.ZInfoConfigItemStatus.configItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry + 96, // 21: org.lfedge.eve.info.ZInfoConfigItemStatus.unknownConfigItems:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry 8, // 22: org.lfedge.eve.info.ZSimcardInfo.type:type_name -> org.lfedge.eve.info.SimType 9, // 23: org.lfedge.eve.info.ZCellularModuleInfo.operating_state:type_name -> org.lfedge.eve.info.ZCellularOperatingState 10, // 24: org.lfedge.eve.info.ZCellularModuleInfo.control_protocol:type_name -> org.lfedge.eve.info.ZCellularControlProtocol - 98, // 25: org.lfedge.eve.info.StorageDiskState.disk_name:type_name -> org.lfedge.eve.common.DiskDescription - 12, // 26: org.lfedge.eve.info.StorageDiskState.status:type_name -> org.lfedge.eve.info.StorageStatus - 52, // 27: org.lfedge.eve.info.StorageDiskInfo.smart_attr:type_name -> org.lfedge.eve.info.SmartAttr - 13, // 28: org.lfedge.eve.info.StorageChildren.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType - 51, // 29: org.lfedge.eve.info.StorageChildren.disks:type_name -> org.lfedge.eve.info.StorageDiskState - 54, // 30: org.lfedge.eve.info.StorageChildren.children:type_name -> org.lfedge.eve.info.StorageChildren - 14, // 31: org.lfedge.eve.info.StorageInfo.storage_type:type_name -> org.lfedge.eve.info.StorageTypeInfo - 13, // 32: org.lfedge.eve.info.StorageInfo.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType - 12, // 33: org.lfedge.eve.info.StorageInfo.storage_state:type_name -> org.lfedge.eve.info.StorageStatus - 51, // 34: org.lfedge.eve.info.StorageInfo.disks:type_name -> org.lfedge.eve.info.StorageDiskState - 54, // 35: org.lfedge.eve.info.StorageInfo.children:type_name -> org.lfedge.eve.info.StorageChildren - 53, // 36: org.lfedge.eve.info.ZInfoHardware.disks:type_name -> org.lfedge.eve.info.StorageDiskInfo - 34, // 37: org.lfedge.eve.info.ZInfoDevice.minfo:type_name -> org.lfedge.eve.info.ZInfoManufacturer - 35, // 38: org.lfedge.eve.info.ZInfoDevice.network:type_name -> org.lfedge.eve.info.ZInfoNetwork - 31, // 39: org.lfedge.eve.info.ZInfoDevice.assignableAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 37, // 40: org.lfedge.eve.info.ZInfoDevice.dns:type_name -> org.lfedge.eve.info.ZInfoDNS - 68, // 41: org.lfedge.eve.info.ZInfoDevice.storageList:type_name -> org.lfedge.eve.info.ZInfoStorage - 97, // 42: org.lfedge.eve.info.ZInfoDevice.bootTime:type_name -> google.protobuf.Timestamp - 67, // 43: org.lfedge.eve.info.ZInfoDevice.swList:type_name -> org.lfedge.eve.info.ZInfoDevSW - 28, // 44: org.lfedge.eve.info.ZInfoDevice.metricItems:type_name -> org.lfedge.eve.info.deprecatedMetricItem - 97, // 45: org.lfedge.eve.info.ZInfoDevice.lastRebootTime:type_name -> google.protobuf.Timestamp - 60, // 46: org.lfedge.eve.info.ZInfoDevice.systemAdapter:type_name -> org.lfedge.eve.info.SystemAdapterInfo - 5, // 47: org.lfedge.eve.info.ZInfoDevice.HSMStatus:type_name -> org.lfedge.eve.info.HwSecurityModuleStatus - 42, // 48: org.lfedge.eve.info.ZInfoDevice.dataSecAtRestInfo:type_name -> org.lfedge.eve.info.DataSecAtRest - 43, // 49: org.lfedge.eve.info.ZInfoDevice.sec_info:type_name -> org.lfedge.eve.info.SecurityInfo - 45, // 50: org.lfedge.eve.info.ZInfoDevice.configItemStatus:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus - 46, // 51: org.lfedge.eve.info.ZInfoDevice.appInstances:type_name -> org.lfedge.eve.info.ZInfoAppInstance - 16, // 52: org.lfedge.eve.info.ZInfoDevice.last_boot_reason:type_name -> org.lfedge.eve.info.BootReason - 49, // 53: org.lfedge.eve.info.ZInfoDevice.cell_radios:type_name -> org.lfedge.eve.info.ZCellularModuleInfo - 48, // 54: org.lfedge.eve.info.ZInfoDevice.sims:type_name -> org.lfedge.eve.info.ZSimcardInfo - 47, // 55: org.lfedge.eve.info.ZInfoDevice.tasks:type_name -> org.lfedge.eve.info.ZInfoDeviceTasks - 17, // 56: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reason:type_name -> org.lfedge.eve.info.MaintenanceModeReason - 87, // 57: org.lfedge.eve.info.ZInfoDevice.capabilities:type_name -> org.lfedge.eve.info.Capabilities - 11, // 58: org.lfedge.eve.info.ZInfoDevice.state:type_name -> org.lfedge.eve.info.ZDeviceState - 17, // 59: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reasons:type_name -> org.lfedge.eve.info.MaintenanceModeReason - 55, // 60: org.lfedge.eve.info.ZInfoDevice.storage_info:type_name -> org.lfedge.eve.info.StorageInfo - 59, // 61: org.lfedge.eve.info.ZInfoDevice.attestation_info:type_name -> org.lfedge.eve.info.AttestationInfo - 15, // 62: org.lfedge.eve.info.ZInfoDevice.api_capability:type_name -> org.lfedge.eve.info.APICapability - 58, // 63: org.lfedge.eve.info.ZInfoDevice.optional_capabilities:type_name -> org.lfedge.eve.info.OptionalCapabilities - 18, // 64: org.lfedge.eve.info.AttestationInfo.state:type_name -> org.lfedge.eve.info.AttestationState - 39, // 65: org.lfedge.eve.info.AttestationInfo.error:type_name -> org.lfedge.eve.info.ErrorInfo - 61, // 66: org.lfedge.eve.info.SystemAdapterInfo.status:type_name -> org.lfedge.eve.info.DevicePortStatus - 97, // 67: org.lfedge.eve.info.DevicePortStatus.timePriority:type_name -> google.protobuf.Timestamp - 97, // 68: org.lfedge.eve.info.DevicePortStatus.lastFailed:type_name -> google.protobuf.Timestamp - 97, // 69: org.lfedge.eve.info.DevicePortStatus.lastSucceeded:type_name -> google.protobuf.Timestamp - 62, // 70: org.lfedge.eve.info.DevicePortStatus.ports:type_name -> org.lfedge.eve.info.DevicePort - 63, // 71: org.lfedge.eve.info.DevicePort.proxy:type_name -> org.lfedge.eve.info.ProxyStatus - 37, // 72: org.lfedge.eve.info.DevicePort.dns:type_name -> org.lfedge.eve.info.ZInfoDNS - 36, // 73: org.lfedge.eve.info.DevicePort.location:type_name -> org.lfedge.eve.info.GeoLoc - 39, // 74: org.lfedge.eve.info.DevicePort.err:type_name -> org.lfedge.eve.info.ErrorInfo - 96, // 75: org.lfedge.eve.info.DevicePort.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage - 65, // 76: org.lfedge.eve.info.DevicePort.wireless_status:type_name -> org.lfedge.eve.info.WirelessStatus - 64, // 77: org.lfedge.eve.info.ProxyStatus.proxies:type_name -> org.lfedge.eve.info.ProxyEntry - 20, // 78: org.lfedge.eve.info.WirelessStatus.type:type_name -> org.lfedge.eve.info.WirelessType - 66, // 79: org.lfedge.eve.info.WirelessStatus.cellular:type_name -> org.lfedge.eve.info.ZCellularStatus - 50, // 80: org.lfedge.eve.info.ZCellularStatus.providers:type_name -> org.lfedge.eve.info.ZCellularProvider - 99, // 81: org.lfedge.eve.info.ZCellularStatus.current_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology - 97, // 82: org.lfedge.eve.info.ZCellularStatus.connected_at:type_name -> google.protobuf.Timestamp - 2, // 83: org.lfedge.eve.info.ZInfoDevSW.status:type_name -> org.lfedge.eve.info.ZSwState - 39, // 84: org.lfedge.eve.info.ZInfoDevSW.swErr:type_name -> org.lfedge.eve.info.ErrorInfo - 21, // 85: org.lfedge.eve.info.ZInfoDevSW.userStatus:type_name -> org.lfedge.eve.info.BaseOsStatus - 22, // 86: org.lfedge.eve.info.ZInfoDevSW.subStatus:type_name -> org.lfedge.eve.info.BaseOsSubStatus - 97, // 87: org.lfedge.eve.info.ZInfoSnapshot.create_time:type_name -> google.protobuf.Timestamp - 23, // 88: org.lfedge.eve.info.ZInfoSnapshot.type:type_name -> org.lfedge.eve.info.SnapshotType - 39, // 89: org.lfedge.eve.info.ZInfoSnapshot.snap_err:type_name -> org.lfedge.eve.info.ErrorInfo - 24, // 90: org.lfedge.eve.info.ZInfoClusterNode.node_status:type_name -> org.lfedge.eve.info.ZInfoClusterNodeStatus - 38, // 91: org.lfedge.eve.info.ZInfoApp.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW - 97, // 92: org.lfedge.eve.info.ZInfoApp.bootTime:type_name -> google.protobuf.Timestamp - 31, // 93: org.lfedge.eve.info.ZInfoApp.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 39, // 94: org.lfedge.eve.info.ZInfoApp.appErr:type_name -> org.lfedge.eve.info.ErrorInfo - 2, // 95: org.lfedge.eve.info.ZInfoApp.state:type_name -> org.lfedge.eve.info.ZSwState - 35, // 96: org.lfedge.eve.info.ZInfoApp.network:type_name -> org.lfedge.eve.info.ZInfoNetwork - 69, // 97: org.lfedge.eve.info.ZInfoApp.snapshots:type_name -> org.lfedge.eve.info.ZInfoSnapshot - 25, // 98: org.lfedge.eve.info.ZInfoVpnLink.state:type_name -> org.lfedge.eve.info.ZInfoVpnState - 72, // 99: org.lfedge.eve.info.ZInfoVpnLink.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo - 72, // 100: org.lfedge.eve.info.ZInfoVpnLink.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo - 25, // 101: org.lfedge.eve.info.ZInfoVpnConn.state:type_name -> org.lfedge.eve.info.ZInfoVpnState - 74, // 102: org.lfedge.eve.info.ZInfoVpnConn.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint - 74, // 103: org.lfedge.eve.info.ZInfoVpnConn.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint - 73, // 104: org.lfedge.eve.info.ZInfoVpnConn.links:type_name -> org.lfedge.eve.info.ZInfoVpnLink - 75, // 105: org.lfedge.eve.info.ZInfoVpn.conn:type_name -> org.lfedge.eve.info.ZInfoVpnConn - 97, // 106: org.lfedge.eve.info.ZInfoNetworkInstance.upTimeStamp:type_name -> google.protobuf.Timestamp - 38, // 107: org.lfedge.eve.info.ZInfoNetworkInstance.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW - 29, // 108: org.lfedge.eve.info.ZInfoNetworkInstance.ipAssignments:type_name -> org.lfedge.eve.info.ZmetIPAssignmentEntry - 30, // 109: org.lfedge.eve.info.ZInfoNetworkInstance.vifs:type_name -> org.lfedge.eve.info.ZmetVifInfo - 31, // 110: org.lfedge.eve.info.ZInfoNetworkInstance.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle - 76, // 111: org.lfedge.eve.info.ZInfoNetworkInstance.vinfo:type_name -> org.lfedge.eve.info.ZInfoVpn - 39, // 112: org.lfedge.eve.info.ZInfoNetworkInstance.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo - 26, // 113: org.lfedge.eve.info.ZInfoNetworkInstance.state:type_name -> org.lfedge.eve.info.ZNetworkInstanceState - 78, // 114: org.lfedge.eve.info.ZInfoNetworkInstance.ip_routes:type_name -> org.lfedge.eve.info.IPRoute - 97, // 115: org.lfedge.eve.info.UsageInfo.createTime:type_name -> google.protobuf.Timestamp - 97, // 116: org.lfedge.eve.info.UsageInfo.lastRefcountChangeTime:type_name -> google.protobuf.Timestamp - 79, // 117: org.lfedge.eve.info.ZInfoVolume.usage:type_name -> org.lfedge.eve.info.UsageInfo - 80, // 118: org.lfedge.eve.info.ZInfoVolume.resources:type_name -> org.lfedge.eve.info.VolumeResources - 2, // 119: org.lfedge.eve.info.ZInfoVolume.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 120: org.lfedge.eve.info.ZInfoVolume.volumeErr:type_name -> org.lfedge.eve.info.ErrorInfo - 82, // 121: org.lfedge.eve.info.ZInfoContentTree.resources:type_name -> org.lfedge.eve.info.ContentResources - 79, // 122: org.lfedge.eve.info.ZInfoContentTree.usage:type_name -> org.lfedge.eve.info.UsageInfo - 2, // 123: org.lfedge.eve.info.ZInfoContentTree.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 124: org.lfedge.eve.info.ZInfoContentTree.err:type_name -> org.lfedge.eve.info.ErrorInfo - 82, // 125: org.lfedge.eve.info.ZInfoBlob.resources:type_name -> org.lfedge.eve.info.ContentResources - 79, // 126: org.lfedge.eve.info.ZInfoBlob.usage:type_name -> org.lfedge.eve.info.UsageInfo - 2, // 127: org.lfedge.eve.info.ZInfoBlob.state:type_name -> org.lfedge.eve.info.ZSwState - 39, // 128: org.lfedge.eve.info.ZInfoBlob.err:type_name -> org.lfedge.eve.info.ErrorInfo - 84, // 129: org.lfedge.eve.info.ZInfoBlobList.blob:type_name -> org.lfedge.eve.info.ZInfoBlob - 1, // 130: org.lfedge.eve.info.ZInfoMsg.ztype:type_name -> org.lfedge.eve.info.ZInfoTypes - 57, // 131: org.lfedge.eve.info.ZInfoMsg.dinfo:type_name -> org.lfedge.eve.info.ZInfoDevice - 71, // 132: org.lfedge.eve.info.ZInfoMsg.ainfo:type_name -> org.lfedge.eve.info.ZInfoApp - 77, // 133: org.lfedge.eve.info.ZInfoMsg.niinfo:type_name -> org.lfedge.eve.info.ZInfoNetworkInstance - 81, // 134: org.lfedge.eve.info.ZInfoMsg.vinfo:type_name -> org.lfedge.eve.info.ZInfoVolume - 83, // 135: org.lfedge.eve.info.ZInfoMsg.cinfo:type_name -> org.lfedge.eve.info.ZInfoContentTree - 85, // 136: org.lfedge.eve.info.ZInfoMsg.binfo:type_name -> org.lfedge.eve.info.ZInfoBlobList - 88, // 137: org.lfedge.eve.info.ZInfoMsg.amdinfo:type_name -> org.lfedge.eve.info.ZInfoAppInstMetaData - 89, // 138: org.lfedge.eve.info.ZInfoMsg.evinfo:type_name -> org.lfedge.eve.info.ZInfoEdgeview - 56, // 139: org.lfedge.eve.info.ZInfoMsg.hwinfo:type_name -> org.lfedge.eve.info.ZInfoHardware - 90, // 140: org.lfedge.eve.info.ZInfoMsg.locinfo:type_name -> org.lfedge.eve.info.ZInfoLocation - 100, // 141: org.lfedge.eve.info.ZInfoMsg.patchInfo:type_name -> org.lfedge.eve.info.ZInfoPatchEnvelope - 70, // 142: org.lfedge.eve.info.ZInfoMsg.cluster_node:type_name -> org.lfedge.eve.info.ZInfoClusterNode - 101, // 143: org.lfedge.eve.info.ZInfoMsg.ntp_sources:type_name -> org.lfedge.eve.info.ZInfoNTPSources - 92, // 144: org.lfedge.eve.info.ZInfoMsg.cluster_info:type_name -> org.lfedge.eve.info.ZInfoKubeCluster - 91, // 145: org.lfedge.eve.info.ZInfoMsg.cluster_update_info:type_name -> org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus - 97, // 146: org.lfedge.eve.info.ZInfoMsg.atTimeStamp:type_name -> google.protobuf.Timestamp - 19, // 147: org.lfedge.eve.info.ZInfoAppInstMetaData.type:type_name -> org.lfedge.eve.info.AppInstMetaDataType - 97, // 148: org.lfedge.eve.info.ZInfoEdgeview.expire_time:type_name -> google.protobuf.Timestamp - 97, // 149: org.lfedge.eve.info.ZInfoEdgeview.started_time:type_name -> google.protobuf.Timestamp - 97, // 150: org.lfedge.eve.info.ZInfoLocation.utc_timestamp:type_name -> google.protobuf.Timestamp - 27, // 151: org.lfedge.eve.info.ZInfoLocation.horizontal_reliability:type_name -> org.lfedge.eve.info.LocReliability - 27, // 152: org.lfedge.eve.info.ZInfoLocation.vertical_reliability:type_name -> org.lfedge.eve.info.LocReliability - 102, // 153: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.component:type_name -> org.lfedge.eve.info.KubeComp - 103, // 154: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.status:type_name -> org.lfedge.eve.info.KubeCompUpdateStatus - 39, // 155: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.error:type_name -> org.lfedge.eve.info.ErrorInfo - 104, // 156: org.lfedge.eve.info.ZInfoKubeCluster.nodes:type_name -> org.lfedge.eve.info.KubeNodeInfo - 105, // 157: org.lfedge.eve.info.ZInfoKubeCluster.pod_name_spaces:type_name -> org.lfedge.eve.info.KubePodNameSpaceInfo - 106, // 158: org.lfedge.eve.info.ZInfoKubeCluster.eve_apps:type_name -> org.lfedge.eve.info.KubeEVEAppPodInfo - 107, // 159: org.lfedge.eve.info.ZInfoKubeCluster.storage:type_name -> org.lfedge.eve.info.KubeStorageInfo - 108, // 160: org.lfedge.eve.info.ZInfoKubeCluster.eve_vm_apps:type_name -> org.lfedge.eve.info.KubeVMIInfo - 44, // 161: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem - 44, // 162: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem - 163, // [163:163] is the sub-list for method output_type - 163, // [163:163] is the sub-list for method input_type - 163, // [163:163] is the sub-list for extension type_name - 163, // [163:163] is the sub-list for extension extendee - 0, // [0:163] is the sub-list for field type_name + 100, // 25: org.lfedge.eve.info.CellularBearer.bearer_type:type_name -> org.lfedge.eve.common.BearerType + 101, // 26: org.lfedge.eve.info.CellularBearer.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 99, // 27: org.lfedge.eve.info.CellularBearer.connected_at:type_name -> google.protobuf.Timestamp + 100, // 28: org.lfedge.eve.info.CellularProfile.bearer_type:type_name -> org.lfedge.eve.common.BearerType + 101, // 29: org.lfedge.eve.info.CellularProfile.ip_type:type_name -> org.lfedge.eve.common.CellularIPType + 102, // 30: org.lfedge.eve.info.StorageDiskState.disk_name:type_name -> org.lfedge.eve.common.DiskDescription + 12, // 31: org.lfedge.eve.info.StorageDiskState.status:type_name -> org.lfedge.eve.info.StorageStatus + 54, // 32: org.lfedge.eve.info.StorageDiskInfo.smart_attr:type_name -> org.lfedge.eve.info.SmartAttr + 13, // 33: org.lfedge.eve.info.StorageChildren.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType + 53, // 34: org.lfedge.eve.info.StorageChildren.disks:type_name -> org.lfedge.eve.info.StorageDiskState + 56, // 35: org.lfedge.eve.info.StorageChildren.children:type_name -> org.lfedge.eve.info.StorageChildren + 14, // 36: org.lfedge.eve.info.StorageInfo.storage_type:type_name -> org.lfedge.eve.info.StorageTypeInfo + 13, // 37: org.lfedge.eve.info.StorageInfo.current_raid:type_name -> org.lfedge.eve.info.StorageRaidType + 12, // 38: org.lfedge.eve.info.StorageInfo.storage_state:type_name -> org.lfedge.eve.info.StorageStatus + 53, // 39: org.lfedge.eve.info.StorageInfo.disks:type_name -> org.lfedge.eve.info.StorageDiskState + 56, // 40: org.lfedge.eve.info.StorageInfo.children:type_name -> org.lfedge.eve.info.StorageChildren + 55, // 41: org.lfedge.eve.info.ZInfoHardware.disks:type_name -> org.lfedge.eve.info.StorageDiskInfo + 34, // 42: org.lfedge.eve.info.ZInfoDevice.minfo:type_name -> org.lfedge.eve.info.ZInfoManufacturer + 35, // 43: org.lfedge.eve.info.ZInfoDevice.network:type_name -> org.lfedge.eve.info.ZInfoNetwork + 31, // 44: org.lfedge.eve.info.ZInfoDevice.assignableAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 37, // 45: org.lfedge.eve.info.ZInfoDevice.dns:type_name -> org.lfedge.eve.info.ZInfoDNS + 70, // 46: org.lfedge.eve.info.ZInfoDevice.storageList:type_name -> org.lfedge.eve.info.ZInfoStorage + 99, // 47: org.lfedge.eve.info.ZInfoDevice.bootTime:type_name -> google.protobuf.Timestamp + 69, // 48: org.lfedge.eve.info.ZInfoDevice.swList:type_name -> org.lfedge.eve.info.ZInfoDevSW + 28, // 49: org.lfedge.eve.info.ZInfoDevice.metricItems:type_name -> org.lfedge.eve.info.deprecatedMetricItem + 99, // 50: org.lfedge.eve.info.ZInfoDevice.lastRebootTime:type_name -> google.protobuf.Timestamp + 62, // 51: org.lfedge.eve.info.ZInfoDevice.systemAdapter:type_name -> org.lfedge.eve.info.SystemAdapterInfo + 5, // 52: org.lfedge.eve.info.ZInfoDevice.HSMStatus:type_name -> org.lfedge.eve.info.HwSecurityModuleStatus + 42, // 53: org.lfedge.eve.info.ZInfoDevice.dataSecAtRestInfo:type_name -> org.lfedge.eve.info.DataSecAtRest + 43, // 54: org.lfedge.eve.info.ZInfoDevice.sec_info:type_name -> org.lfedge.eve.info.SecurityInfo + 45, // 55: org.lfedge.eve.info.ZInfoDevice.configItemStatus:type_name -> org.lfedge.eve.info.ZInfoConfigItemStatus + 46, // 56: org.lfedge.eve.info.ZInfoDevice.appInstances:type_name -> org.lfedge.eve.info.ZInfoAppInstance + 16, // 57: org.lfedge.eve.info.ZInfoDevice.last_boot_reason:type_name -> org.lfedge.eve.info.BootReason + 49, // 58: org.lfedge.eve.info.ZInfoDevice.cell_radios:type_name -> org.lfedge.eve.info.ZCellularModuleInfo + 48, // 59: org.lfedge.eve.info.ZInfoDevice.sims:type_name -> org.lfedge.eve.info.ZSimcardInfo + 47, // 60: org.lfedge.eve.info.ZInfoDevice.tasks:type_name -> org.lfedge.eve.info.ZInfoDeviceTasks + 17, // 61: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reason:type_name -> org.lfedge.eve.info.MaintenanceModeReason + 89, // 62: org.lfedge.eve.info.ZInfoDevice.capabilities:type_name -> org.lfedge.eve.info.Capabilities + 11, // 63: org.lfedge.eve.info.ZInfoDevice.state:type_name -> org.lfedge.eve.info.ZDeviceState + 17, // 64: org.lfedge.eve.info.ZInfoDevice.maintenance_mode_reasons:type_name -> org.lfedge.eve.info.MaintenanceModeReason + 57, // 65: org.lfedge.eve.info.ZInfoDevice.storage_info:type_name -> org.lfedge.eve.info.StorageInfo + 61, // 66: org.lfedge.eve.info.ZInfoDevice.attestation_info:type_name -> org.lfedge.eve.info.AttestationInfo + 15, // 67: org.lfedge.eve.info.ZInfoDevice.api_capability:type_name -> org.lfedge.eve.info.APICapability + 60, // 68: org.lfedge.eve.info.ZInfoDevice.optional_capabilities:type_name -> org.lfedge.eve.info.OptionalCapabilities + 18, // 69: org.lfedge.eve.info.AttestationInfo.state:type_name -> org.lfedge.eve.info.AttestationState + 39, // 70: org.lfedge.eve.info.AttestationInfo.error:type_name -> org.lfedge.eve.info.ErrorInfo + 63, // 71: org.lfedge.eve.info.SystemAdapterInfo.status:type_name -> org.lfedge.eve.info.DevicePortStatus + 99, // 72: org.lfedge.eve.info.DevicePortStatus.timePriority:type_name -> google.protobuf.Timestamp + 99, // 73: org.lfedge.eve.info.DevicePortStatus.lastFailed:type_name -> google.protobuf.Timestamp + 99, // 74: org.lfedge.eve.info.DevicePortStatus.lastSucceeded:type_name -> google.protobuf.Timestamp + 64, // 75: org.lfedge.eve.info.DevicePortStatus.ports:type_name -> org.lfedge.eve.info.DevicePort + 65, // 76: org.lfedge.eve.info.DevicePort.proxy:type_name -> org.lfedge.eve.info.ProxyStatus + 37, // 77: org.lfedge.eve.info.DevicePort.dns:type_name -> org.lfedge.eve.info.ZInfoDNS + 36, // 78: org.lfedge.eve.info.DevicePort.location:type_name -> org.lfedge.eve.info.GeoLoc + 39, // 79: org.lfedge.eve.info.DevicePort.err:type_name -> org.lfedge.eve.info.ErrorInfo + 98, // 80: org.lfedge.eve.info.DevicePort.usage:type_name -> org.lfedge.eve.common.PhyIoMemberUsage + 67, // 81: org.lfedge.eve.info.DevicePort.wireless_status:type_name -> org.lfedge.eve.info.WirelessStatus + 66, // 82: org.lfedge.eve.info.ProxyStatus.proxies:type_name -> org.lfedge.eve.info.ProxyEntry + 20, // 83: org.lfedge.eve.info.WirelessStatus.type:type_name -> org.lfedge.eve.info.WirelessType + 68, // 84: org.lfedge.eve.info.WirelessStatus.cellular:type_name -> org.lfedge.eve.info.ZCellularStatus + 50, // 85: org.lfedge.eve.info.ZCellularStatus.providers:type_name -> org.lfedge.eve.info.ZCellularProvider + 103, // 86: org.lfedge.eve.info.ZCellularStatus.current_rats:type_name -> org.lfedge.eve.common.RadioAccessTechnology + 99, // 87: org.lfedge.eve.info.ZCellularStatus.connected_at:type_name -> google.protobuf.Timestamp + 51, // 88: org.lfedge.eve.info.ZCellularStatus.bearers:type_name -> org.lfedge.eve.info.CellularBearer + 52, // 89: org.lfedge.eve.info.ZCellularStatus.profiles:type_name -> org.lfedge.eve.info.CellularProfile + 2, // 90: org.lfedge.eve.info.ZInfoDevSW.status:type_name -> org.lfedge.eve.info.ZSwState + 39, // 91: org.lfedge.eve.info.ZInfoDevSW.swErr:type_name -> org.lfedge.eve.info.ErrorInfo + 21, // 92: org.lfedge.eve.info.ZInfoDevSW.userStatus:type_name -> org.lfedge.eve.info.BaseOsStatus + 22, // 93: org.lfedge.eve.info.ZInfoDevSW.subStatus:type_name -> org.lfedge.eve.info.BaseOsSubStatus + 99, // 94: org.lfedge.eve.info.ZInfoSnapshot.create_time:type_name -> google.protobuf.Timestamp + 23, // 95: org.lfedge.eve.info.ZInfoSnapshot.type:type_name -> org.lfedge.eve.info.SnapshotType + 39, // 96: org.lfedge.eve.info.ZInfoSnapshot.snap_err:type_name -> org.lfedge.eve.info.ErrorInfo + 24, // 97: org.lfedge.eve.info.ZInfoClusterNode.node_status:type_name -> org.lfedge.eve.info.ZInfoClusterNodeStatus + 38, // 98: org.lfedge.eve.info.ZInfoApp.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW + 99, // 99: org.lfedge.eve.info.ZInfoApp.bootTime:type_name -> google.protobuf.Timestamp + 31, // 100: org.lfedge.eve.info.ZInfoApp.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 39, // 101: org.lfedge.eve.info.ZInfoApp.appErr:type_name -> org.lfedge.eve.info.ErrorInfo + 2, // 102: org.lfedge.eve.info.ZInfoApp.state:type_name -> org.lfedge.eve.info.ZSwState + 35, // 103: org.lfedge.eve.info.ZInfoApp.network:type_name -> org.lfedge.eve.info.ZInfoNetwork + 71, // 104: org.lfedge.eve.info.ZInfoApp.snapshots:type_name -> org.lfedge.eve.info.ZInfoSnapshot + 25, // 105: org.lfedge.eve.info.ZInfoVpnLink.state:type_name -> org.lfedge.eve.info.ZInfoVpnState + 74, // 106: org.lfedge.eve.info.ZInfoVpnLink.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo + 74, // 107: org.lfedge.eve.info.ZInfoVpnLink.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnLinkInfo + 25, // 108: org.lfedge.eve.info.ZInfoVpnConn.state:type_name -> org.lfedge.eve.info.ZInfoVpnState + 76, // 109: org.lfedge.eve.info.ZInfoVpnConn.lInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint + 76, // 110: org.lfedge.eve.info.ZInfoVpnConn.rInfo:type_name -> org.lfedge.eve.info.ZInfoVpnEndPoint + 75, // 111: org.lfedge.eve.info.ZInfoVpnConn.links:type_name -> org.lfedge.eve.info.ZInfoVpnLink + 77, // 112: org.lfedge.eve.info.ZInfoVpn.conn:type_name -> org.lfedge.eve.info.ZInfoVpnConn + 99, // 113: org.lfedge.eve.info.ZInfoNetworkInstance.upTimeStamp:type_name -> google.protobuf.Timestamp + 38, // 114: org.lfedge.eve.info.ZInfoNetworkInstance.softwareList:type_name -> org.lfedge.eve.info.ZInfoSW + 29, // 115: org.lfedge.eve.info.ZInfoNetworkInstance.ipAssignments:type_name -> org.lfedge.eve.info.ZmetIPAssignmentEntry + 30, // 116: org.lfedge.eve.info.ZInfoNetworkInstance.vifs:type_name -> org.lfedge.eve.info.ZmetVifInfo + 31, // 117: org.lfedge.eve.info.ZInfoNetworkInstance.assignedAdapters:type_name -> org.lfedge.eve.info.ZioBundle + 78, // 118: org.lfedge.eve.info.ZInfoNetworkInstance.vinfo:type_name -> org.lfedge.eve.info.ZInfoVpn + 39, // 119: org.lfedge.eve.info.ZInfoNetworkInstance.networkErr:type_name -> org.lfedge.eve.info.ErrorInfo + 26, // 120: org.lfedge.eve.info.ZInfoNetworkInstance.state:type_name -> org.lfedge.eve.info.ZNetworkInstanceState + 80, // 121: org.lfedge.eve.info.ZInfoNetworkInstance.ip_routes:type_name -> org.lfedge.eve.info.IPRoute + 99, // 122: org.lfedge.eve.info.UsageInfo.createTime:type_name -> google.protobuf.Timestamp + 99, // 123: org.lfedge.eve.info.UsageInfo.lastRefcountChangeTime:type_name -> google.protobuf.Timestamp + 81, // 124: org.lfedge.eve.info.ZInfoVolume.usage:type_name -> org.lfedge.eve.info.UsageInfo + 82, // 125: org.lfedge.eve.info.ZInfoVolume.resources:type_name -> org.lfedge.eve.info.VolumeResources + 2, // 126: org.lfedge.eve.info.ZInfoVolume.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 127: org.lfedge.eve.info.ZInfoVolume.volumeErr:type_name -> org.lfedge.eve.info.ErrorInfo + 84, // 128: org.lfedge.eve.info.ZInfoContentTree.resources:type_name -> org.lfedge.eve.info.ContentResources + 81, // 129: org.lfedge.eve.info.ZInfoContentTree.usage:type_name -> org.lfedge.eve.info.UsageInfo + 2, // 130: org.lfedge.eve.info.ZInfoContentTree.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 131: org.lfedge.eve.info.ZInfoContentTree.err:type_name -> org.lfedge.eve.info.ErrorInfo + 84, // 132: org.lfedge.eve.info.ZInfoBlob.resources:type_name -> org.lfedge.eve.info.ContentResources + 81, // 133: org.lfedge.eve.info.ZInfoBlob.usage:type_name -> org.lfedge.eve.info.UsageInfo + 2, // 134: org.lfedge.eve.info.ZInfoBlob.state:type_name -> org.lfedge.eve.info.ZSwState + 39, // 135: org.lfedge.eve.info.ZInfoBlob.err:type_name -> org.lfedge.eve.info.ErrorInfo + 86, // 136: org.lfedge.eve.info.ZInfoBlobList.blob:type_name -> org.lfedge.eve.info.ZInfoBlob + 1, // 137: org.lfedge.eve.info.ZInfoMsg.ztype:type_name -> org.lfedge.eve.info.ZInfoTypes + 59, // 138: org.lfedge.eve.info.ZInfoMsg.dinfo:type_name -> org.lfedge.eve.info.ZInfoDevice + 73, // 139: org.lfedge.eve.info.ZInfoMsg.ainfo:type_name -> org.lfedge.eve.info.ZInfoApp + 79, // 140: org.lfedge.eve.info.ZInfoMsg.niinfo:type_name -> org.lfedge.eve.info.ZInfoNetworkInstance + 83, // 141: org.lfedge.eve.info.ZInfoMsg.vinfo:type_name -> org.lfedge.eve.info.ZInfoVolume + 85, // 142: org.lfedge.eve.info.ZInfoMsg.cinfo:type_name -> org.lfedge.eve.info.ZInfoContentTree + 87, // 143: org.lfedge.eve.info.ZInfoMsg.binfo:type_name -> org.lfedge.eve.info.ZInfoBlobList + 90, // 144: org.lfedge.eve.info.ZInfoMsg.amdinfo:type_name -> org.lfedge.eve.info.ZInfoAppInstMetaData + 91, // 145: org.lfedge.eve.info.ZInfoMsg.evinfo:type_name -> org.lfedge.eve.info.ZInfoEdgeview + 58, // 146: org.lfedge.eve.info.ZInfoMsg.hwinfo:type_name -> org.lfedge.eve.info.ZInfoHardware + 92, // 147: org.lfedge.eve.info.ZInfoMsg.locinfo:type_name -> org.lfedge.eve.info.ZInfoLocation + 104, // 148: org.lfedge.eve.info.ZInfoMsg.patchInfo:type_name -> org.lfedge.eve.info.ZInfoPatchEnvelope + 72, // 149: org.lfedge.eve.info.ZInfoMsg.cluster_node:type_name -> org.lfedge.eve.info.ZInfoClusterNode + 105, // 150: org.lfedge.eve.info.ZInfoMsg.ntp_sources:type_name -> org.lfedge.eve.info.ZInfoNTPSources + 94, // 151: org.lfedge.eve.info.ZInfoMsg.cluster_info:type_name -> org.lfedge.eve.info.ZInfoKubeCluster + 93, // 152: org.lfedge.eve.info.ZInfoMsg.cluster_update_info:type_name -> org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus + 99, // 153: org.lfedge.eve.info.ZInfoMsg.atTimeStamp:type_name -> google.protobuf.Timestamp + 19, // 154: org.lfedge.eve.info.ZInfoAppInstMetaData.type:type_name -> org.lfedge.eve.info.AppInstMetaDataType + 99, // 155: org.lfedge.eve.info.ZInfoEdgeview.expire_time:type_name -> google.protobuf.Timestamp + 99, // 156: org.lfedge.eve.info.ZInfoEdgeview.started_time:type_name -> google.protobuf.Timestamp + 99, // 157: org.lfedge.eve.info.ZInfoLocation.utc_timestamp:type_name -> google.protobuf.Timestamp + 27, // 158: org.lfedge.eve.info.ZInfoLocation.horizontal_reliability:type_name -> org.lfedge.eve.info.LocReliability + 27, // 159: org.lfedge.eve.info.ZInfoLocation.vertical_reliability:type_name -> org.lfedge.eve.info.LocReliability + 106, // 160: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.component:type_name -> org.lfedge.eve.info.KubeComp + 107, // 161: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.status:type_name -> org.lfedge.eve.info.KubeCompUpdateStatus + 39, // 162: org.lfedge.eve.info.ZInfoKubeClusterUpdateStatus.error:type_name -> org.lfedge.eve.info.ErrorInfo + 108, // 163: org.lfedge.eve.info.ZInfoKubeCluster.nodes:type_name -> org.lfedge.eve.info.KubeNodeInfo + 109, // 164: org.lfedge.eve.info.ZInfoKubeCluster.pod_name_spaces:type_name -> org.lfedge.eve.info.KubePodNameSpaceInfo + 110, // 165: org.lfedge.eve.info.ZInfoKubeCluster.eve_apps:type_name -> org.lfedge.eve.info.KubeEVEAppPodInfo + 111, // 166: org.lfedge.eve.info.ZInfoKubeCluster.storage:type_name -> org.lfedge.eve.info.KubeStorageInfo + 112, // 167: org.lfedge.eve.info.ZInfoKubeCluster.eve_vm_apps:type_name -> org.lfedge.eve.info.KubeVMIInfo + 44, // 168: org.lfedge.eve.info.ZInfoConfigItemStatus.ConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem + 44, // 169: org.lfedge.eve.info.ZInfoConfigItemStatus.UnknownConfigItemsEntry.value:type_name -> org.lfedge.eve.info.ZInfoConfigItem + 170, // [170:170] is the sub-list for method output_type + 170, // [170:170] is the sub-list for method input_type + 170, // [170:170] is the sub-list for extension type_name + 170, // [170:170] is the sub-list for extension extendee + 0, // [0:170] is the sub-list for field type_name } func init() { file_info_info_proto_init() } @@ -10404,7 +10671,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageDiskState); i { + switch v := v.(*CellularBearer); i { case 0: return &v.state case 1: @@ -10416,7 +10683,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SmartAttr); i { + switch v := v.(*CellularProfile); i { case 0: return &v.state case 1: @@ -10428,7 +10695,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageDiskInfo); i { + switch v := v.(*StorageDiskState); i { case 0: return &v.state case 1: @@ -10440,7 +10707,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageChildren); i { + switch v := v.(*SmartAttr); i { case 0: return &v.state case 1: @@ -10452,7 +10719,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StorageInfo); i { + switch v := v.(*StorageDiskInfo); i { case 0: return &v.state case 1: @@ -10464,7 +10731,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoHardware); i { + switch v := v.(*StorageChildren); i { case 0: return &v.state case 1: @@ -10476,7 +10743,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoDevice); i { + switch v := v.(*StorageInfo); i { case 0: return &v.state case 1: @@ -10488,7 +10755,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OptionalCapabilities); i { + switch v := v.(*ZInfoHardware); i { case 0: return &v.state case 1: @@ -10500,7 +10767,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AttestationInfo); i { + switch v := v.(*ZInfoDevice); i { case 0: return &v.state case 1: @@ -10512,7 +10779,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SystemAdapterInfo); i { + switch v := v.(*OptionalCapabilities); i { case 0: return &v.state case 1: @@ -10524,7 +10791,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DevicePortStatus); i { + switch v := v.(*AttestationInfo); i { case 0: return &v.state case 1: @@ -10536,7 +10803,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DevicePort); i { + switch v := v.(*SystemAdapterInfo); i { case 0: return &v.state case 1: @@ -10548,7 +10815,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyStatus); i { + switch v := v.(*DevicePortStatus); i { case 0: return &v.state case 1: @@ -10560,7 +10827,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyEntry); i { + switch v := v.(*DevicePort); i { case 0: return &v.state case 1: @@ -10572,7 +10839,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WirelessStatus); i { + switch v := v.(*ProxyStatus); i { case 0: return &v.state case 1: @@ -10584,7 +10851,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZCellularStatus); i { + switch v := v.(*ProxyEntry); i { case 0: return &v.state case 1: @@ -10596,7 +10863,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoDevSW); i { + switch v := v.(*WirelessStatus); i { case 0: return &v.state case 1: @@ -10608,7 +10875,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoStorage); i { + switch v := v.(*ZCellularStatus); i { case 0: return &v.state case 1: @@ -10620,7 +10887,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoSnapshot); i { + switch v := v.(*ZInfoDevSW); i { case 0: return &v.state case 1: @@ -10632,7 +10899,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoClusterNode); i { + switch v := v.(*ZInfoStorage); i { case 0: return &v.state case 1: @@ -10644,7 +10911,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoApp); i { + switch v := v.(*ZInfoSnapshot); i { case 0: return &v.state case 1: @@ -10656,7 +10923,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnLinkInfo); i { + switch v := v.(*ZInfoClusterNode); i { case 0: return &v.state case 1: @@ -10668,7 +10935,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnLink); i { + switch v := v.(*ZInfoApp); i { case 0: return &v.state case 1: @@ -10680,7 +10947,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnEndPoint); i { + switch v := v.(*ZInfoVpnLinkInfo); i { case 0: return &v.state case 1: @@ -10692,7 +10959,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpnConn); i { + switch v := v.(*ZInfoVpnLink); i { case 0: return &v.state case 1: @@ -10704,7 +10971,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVpn); i { + switch v := v.(*ZInfoVpnEndPoint); i { case 0: return &v.state case 1: @@ -10716,7 +10983,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoNetworkInstance); i { + switch v := v.(*ZInfoVpnConn); i { case 0: return &v.state case 1: @@ -10728,7 +10995,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IPRoute); i { + switch v := v.(*ZInfoVpn); i { case 0: return &v.state case 1: @@ -10740,7 +11007,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UsageInfo); i { + switch v := v.(*ZInfoNetworkInstance); i { case 0: return &v.state case 1: @@ -10752,7 +11019,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VolumeResources); i { + switch v := v.(*IPRoute); i { case 0: return &v.state case 1: @@ -10764,7 +11031,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoVolume); i { + switch v := v.(*UsageInfo); i { case 0: return &v.state case 1: @@ -10776,7 +11043,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ContentResources); i { + switch v := v.(*VolumeResources); i { case 0: return &v.state case 1: @@ -10788,7 +11055,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoContentTree); i { + switch v := v.(*ZInfoVolume); i { case 0: return &v.state case 1: @@ -10800,7 +11067,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoBlob); i { + switch v := v.(*ContentResources); i { case 0: return &v.state case 1: @@ -10812,7 +11079,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoBlobList); i { + switch v := v.(*ZInfoContentTree); i { case 0: return &v.state case 1: @@ -10824,7 +11091,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoMsg); i { + switch v := v.(*ZInfoBlob); i { case 0: return &v.state case 1: @@ -10836,7 +11103,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Capabilities); i { + switch v := v.(*ZInfoBlobList); i { case 0: return &v.state case 1: @@ -10848,7 +11115,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoAppInstMetaData); i { + switch v := v.(*ZInfoMsg); i { case 0: return &v.state case 1: @@ -10860,7 +11127,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoEdgeview); i { + switch v := v.(*Capabilities); i { case 0: return &v.state case 1: @@ -10872,7 +11139,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoLocation); i { + switch v := v.(*ZInfoAppInstMetaData); i { case 0: return &v.state case 1: @@ -10884,7 +11151,7 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ZInfoKubeClusterUpdateStatus); i { + switch v := v.(*ZInfoEdgeview); i { case 0: return &v.state case 1: @@ -10896,6 +11163,30 @@ func file_info_info_proto_init() { } } file_info_info_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZInfoLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_info_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ZInfoKubeClusterUpdateStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_info_info_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ZInfoKubeCluster); i { case 0: return &v.state @@ -10915,10 +11206,10 @@ func file_info_info_proto_init() { (*DeprecatedMetricItem_FloatValue)(nil), (*DeprecatedMetricItem_StringValue)(nil), } - file_info_info_proto_msgTypes[49].OneofWrappers = []interface{}{ + file_info_info_proto_msgTypes[51].OneofWrappers = []interface{}{ (*ZInfoNetworkInstance_Vinfo)(nil), } - file_info_info_proto_msgTypes[58].OneofWrappers = []interface{}{ + file_info_info_proto_msgTypes[60].OneofWrappers = []interface{}{ (*ZInfoMsg_Dinfo)(nil), (*ZInfoMsg_Ainfo)(nil), (*ZInfoMsg_Niinfo)(nil), @@ -10941,7 +11232,7 @@ func file_info_info_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_info_info_proto_rawDesc, NumEnums: 28, - NumMessages: 67, + NumMessages: 69, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/cipher.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/cipher.go index db7ff4a3e8..9daed1f488 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/cipher.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/cipher.go @@ -26,6 +26,8 @@ func getEncryptionBlock( decBlock.WifiPassword = zconfigDecBlockPtr.WifiPassword decBlock.CellularNetUsername = zconfigDecBlockPtr.CellularNetUsername decBlock.CellularNetPassword = zconfigDecBlockPtr.CellularNetPassword + decBlock.CellularNetAttachUsername = zconfigDecBlockPtr.CellularNetAttachUsername + decBlock.CellularNetAttachPassword = zconfigDecBlockPtr.CellularNetAttachPassword decBlock.ProtectedUserData = zconfigDecBlockPtr.ProtectedUserData decBlock.ClusterToken = zconfigDecBlockPtr.ClusterToken return decBlock @@ -34,13 +36,42 @@ func getEncryptionBlock( // GetCipherCredentials : decrypt encryption block func GetCipherCredentials(ctx *DecryptCipherContext, status types.CipherBlockStatus) (types.CipherBlockStatus, types.EncryptionBlock, error) { + var decBlock types.EncryptionBlock + cipherBlock, clearBytes, err := GetCipherMarshalledData(ctx, status) + if err != nil { + return handleCipherBlockCredError(ctx, &cipherBlock, + decBlock, err, types.DecryptFailed) + } + + var zconfigDecBlock zcommon.EncryptionBlock + err = UnmarshalCipherData(ctx, clearBytes, &zconfigDecBlock) + if err != nil { + ctx.Log.Errorf("%s, encryption block unmarshall failed, %v\n", + cipherBlock.Key(), err) + return handleCipherBlockCredError(ctx, &cipherBlock, + decBlock, err, types.UnmarshalFailed) + } + ctx.Log.Functionf("%s, cipherblock decryption successful", cipherBlock.Key()) + decBlock = getEncryptionBlock(&zconfigDecBlock) + ctx.AgentMetrics.RecordSuccess(ctx.Log) + return cipherBlock, decBlock, err +} + +// GetCipherMarshalledData : decrypt encryption block, without assuming the proto +// encoding data is zcommon.EncryptionBlock, since the data before encryption may have +// its own data structure, it is up to the caller to unmarshal the data using +// 'UnmarshalCipherData' function. Future use cases may not need to add a new +// item in the EncryptionBLock. +func GetCipherMarshalledData(ctx *DecryptCipherContext, + status types.CipherBlockStatus) (types.CipherBlockStatus, []byte, error) { cipherBlock := new(types.CipherBlockStatus) *cipherBlock = status var decBlock types.EncryptionBlock if !cipherBlock.IsCipher { // Should not be called if IsCipher is not set - return handleCipherBlockCredError(ctx, cipherBlock, + cblock, _, err := handleCipherBlockCredError(ctx, cipherBlock, decBlock, nil, types.Invalid) + return cblock, nil, err } ctx.Log.Functionf("%s, cipherblock decryption, using cipher-context: %s\n", cipherBlock.Key(), cipherBlock.CipherContextID) @@ -49,29 +80,31 @@ func GetCipherCredentials(ctx *DecryptCipherContext, cipherBlock.Key(), cipherBlock.Error) ctx.Log.Errorln(errStr) err := errors.New(errStr) - return handleCipherBlockCredError(ctx, cipherBlock, + cblock, _, err := handleCipherBlockCredError(ctx, cipherBlock, decBlock, err, types.NotReady) + return cblock, nil, err } clearBytes, err := DecryptCipherBlock(ctx, *cipherBlock) if err != nil { ctx.Log.Errorf("%s, cipherblock decryption failed, %v\n", cipherBlock.Key(), err) - return handleCipherBlockCredError(ctx, cipherBlock, - decBlock, err, types.DecryptFailed) + cblock, _, err := handleCipherBlockCredError(ctx, cipherBlock, + decBlock, nil, types.Invalid) + return cblock, nil, err } - var zconfigDecBlock zcommon.EncryptionBlock - err = proto.Unmarshal(clearBytes, &zconfigDecBlock) + return *cipherBlock, clearBytes, err +} + +// UnmarshalCipherData generalizes the unmarshalling of cipher data into different Go data structures. +func UnmarshalCipherData(ctx *DecryptCipherContext, clearBytes []byte, out proto.Message) error { + err := proto.Unmarshal(clearBytes, out) if err != nil { - ctx.Log.Errorf("%s, encryption block unmarshall failed, %v\n", - cipherBlock.Key(), err) - return handleCipherBlockCredError(ctx, cipherBlock, - decBlock, err, types.UnmarshalFailed) + ctx.Log.Errorf("encryption block unmarshall failed, %v\n", err) + return fmt.Errorf("failed to unmarshal cipher block: %w", err) } - ctx.Log.Functionf("%s, cipherblock decryption successful", cipherBlock.Key()) - decBlock = getEncryptionBlock(&zconfigDecBlock) - ctx.AgentMetrics.RecordSuccess(ctx.Log) - return *cipherBlock, decBlock, err + ctx.Log.Functionf("cipherblock decryption successful") + return nil } // GetCipherData : decrypt plain text diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/handlecipher.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/handlecipher.go index 6b35d24272..c6ee0da7c1 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/handlecipher.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/cipher/handlecipher.go @@ -108,7 +108,7 @@ func decryptCipherBlockWithECDH(ctx *DecryptCipherContext, edgeNodeCert := lookupEdgeNodeCert(ctx, cipherContext.EdgeNodeCertKey()) if edgeNodeCert == nil { errStr := fmt.Sprint("Edge Node Certificate get fail") - ctx.Log.Errorf(errStr) + ctx.Log.Error(errStr) return []byte{}, errors.New(errStr) } switch cipherContext.EncryptionScheme { diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/containerd/containerd.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/containerd/containerd.go index a7cca0a0e9..a2ab295773 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/containerd/containerd.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/containerd/containerd.go @@ -148,7 +148,7 @@ func (client *Client) CloseClient() error { } if err := client.ctrdClient.Close(); err != nil { err = fmt.Errorf("CloseClient: exception while closing containerd client. %v", err.Error()) - logrus.Errorf(err.Error()) + logrus.Error(err.Error()) return err } client.ctrdClient = nil diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/cipherinfotypes.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/cipherinfotypes.go index e47b148971..1be3405299 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/cipherinfotypes.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/cipherinfotypes.go @@ -4,6 +4,7 @@ package types import ( + "bytes" "encoding/hex" "github.com/google/go-cmp/cmp" @@ -134,16 +135,31 @@ func (status CipherBlockStatus) LogKey() string { return string(base.CipherBlockStatusLogType) + "-" + status.Key() } +// Equal compares two instances of CipherBlockStatus for equality. +func (status *CipherBlockStatus) Equal(status2 CipherBlockStatus) bool { + return status.CipherBlockID == status2.CipherBlockID && + status.CipherContextID == status2.CipherContextID && + bytes.Equal(status.InitialValue, status2.InitialValue) && + bytes.Equal(status.CipherData, status2.CipherData) && + bytes.Equal(status.ClearTextHash, status2.ClearTextHash) +} + // EncryptionBlock - This is a Mirror of // api/proto/config/acipherinfo.proto - EncryptionBlock // Always need to keep these two consistent. type EncryptionBlock struct { - DsAPIKey string - DsPassword string - WifiUserName string // If the authentication type is EAP - WifiPassword string + DsAPIKey string + DsPassword string + WifiUserName string // If the authentication type is EAP + WifiPassword string + // Credentials for the cellular default bearer: CellularNetUsername string CellularNetPassword string - ProtectedUserData string - ClusterToken string + // Credentials for the cellular attach bearer: + CellularNetAttachUsername string + CellularNetAttachPassword string + ProtectedUserData string + ClusterToken string + User zcommon.EncryptionBlockUser + EncryptedData string } diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/dpc.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/dpc.go index f282896158..7fe2db619d 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/dpc.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/dpc.go @@ -822,11 +822,14 @@ type CellularAccessPoint struct { SIMSlot uint8 // If true, then this configuration is currently activated. Activated bool - // Access Point Network + // Access Point Network for the default bearer. APN string - // Authentication protocol used by the network. + // The IP addressing type to use for the default bearer. + IPType WwanIPType + // Authentication protocol used for the default bearer. AuthProtocol WwanAuthProtocol - // EncryptedCredentials : encrypted username and password. + // Encrypted user credentials for the default bearer and/or the attach bearer + // (when required). EncryptedCredentials CipherBlockStatus // The set of cellular network operators that modem should preferably try to register // and connect into. @@ -837,23 +840,22 @@ type CellularAccessPoint struct { PreferredRATs []WwanRAT // If true, then modem will avoid connecting to networks with roaming. ForbidRoaming bool + // Access Point Network for the attach (aka initial) bearer. + AttachAPN string + // The IP addressing type to use for the attach bearer. + AttachIPType WwanIPType + // Authentication protocol used for the attach bearer. + AttachAuthProtocol WwanAuthProtocol } // Equal compares two instances of CellularAccessPoint for equality. func (ap CellularAccessPoint) Equal(ap2 CellularAccessPoint) bool { if ap.SIMSlot != ap2.SIMSlot || ap.Activated != ap2.Activated || - ap.APN != ap2.APN { - return false - } - enc1 := ap.EncryptedCredentials - enc2 := ap2.EncryptedCredentials - if ap.AuthProtocol != ap2.AuthProtocol || - enc1.CipherBlockID != enc2.CipherBlockID || - enc1.CipherContextID != enc2.CipherContextID || - !bytes.Equal(enc1.InitialValue, enc2.InitialValue) || - !bytes.Equal(enc1.CipherData, enc2.CipherData) || - !bytes.Equal(enc1.ClearTextHash, enc2.ClearTextHash) { + ap.APN != ap2.APN || + ap.IPType != ap2.IPType || + ap.AuthProtocol != ap2.AuthProtocol || + !ap.EncryptedCredentials.Equal(ap2.EncryptedCredentials) { return false } if !generics.EqualLists(ap.PreferredPLMNs, ap2.PreferredPLMNs) || @@ -861,6 +863,11 @@ func (ap CellularAccessPoint) Equal(ap2 CellularAccessPoint) bool { ap.ForbidRoaming != ap2.ForbidRoaming { return false } + if ap.AttachAPN != ap2.AttachAPN || + ap.AttachIPType != ap2.AttachIPType || + ap.AttachAuthProtocol != ap2.AttachAuthProtocol { + return false + } return true } diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/global.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/global.go index 66c6718dab..6fa30952e9 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/global.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/global.go @@ -308,6 +308,14 @@ const ( // FmlCustomResolution global setting key FmlCustomResolution GlobalSettingKey = "app.fml.resolution" + // Log filtering and dedupliction + // LogDedupWindowSize is a measure of how many log entries are saved to search for duplicates + LogDedupWindowSize GlobalSettingKey = "log.dedup.window.size" + // LogFilenamesToCount a comma-separated list of log filenames to count + LogFilenamesToCount GlobalSettingKey = "log.count.filenames" + // LogFilenamesToFilter a comma-separated list of log filenames to filter + LogFilenamesToFilter GlobalSettingKey = "log.filter.filenames" + // DisableDHCPAllOnesNetMask option is deprecated and has no effect. // Zedrouter no longer uses the all-ones netmask as it adds unnecessary complexity, // causes confusion for some applications, and is no longer required for any EVE @@ -1030,6 +1038,11 @@ func NewConfigItemSpecMap() ConfigItemSpecMap { configItemSpecMap.AddStringItem(FmlCustomResolution, FmlResolutionUnset, blankValidator) configItemSpecMap.AddStringItem(TUIMonitorLogLevel, "info", blankValidator) + // Log deduplication and filtering settings + configItemSpecMap.AddIntItem(LogDedupWindowSize, 0, 0, 0xFFFFFFFF) + configItemSpecMap.AddStringItem(LogFilenamesToCount, "", blankValidator) + configItemSpecMap.AddStringItem(LogFilenamesToFilter, "", blankValidator) + // Add Agent Settings configItemSpecMap.AddAgentSettingStringItem(LogLevel, "info", validateLogLevel) configItemSpecMap.AddAgentSettingStringItem(RemoteLogLevel, "info", validateLogLevel) diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/patchenvelopestypes.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/patchenvelopestypes.go index 49d5cc3bad..30b9f3c106 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/patchenvelopestypes.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/patchenvelopestypes.go @@ -3,6 +3,11 @@ package types +import ( + "encoding/json" + "reflect" +) + // PatchEnvelopeInfoList will be shared with zedrouter after parsing // in zedagent type PatchEnvelopeInfoList struct { @@ -38,6 +43,7 @@ type PatchEnvelopeInfo struct { State PatchEnvelopeState BinaryBlobs []BinaryBlobCompleted VolumeRefs []BinaryBlobVolumeRef + CipherBlobs []BinaryCipherBlob } // Size returns sum of all sizes of BinaryBlobs of given PatchEnvelope @@ -99,8 +105,67 @@ type BinaryBlobCompleted struct { FileMetadata string `json:"fileMetaData"` // ArtifactMetadata is generic info i.e. user info, desc etc. ArtifactMetadata string `json:"artifactMetaData"` - URL string `json:"url"` //nolint:var-naming - Size int64 `json:"size"` + // Encrypted ArtifactMetadata for blob + EncArtifactMeta CipherBlockStatus `json:"encArtifactMeta"` + URL string `json:"url"` //nolint:var-naming + Size int64 `json:"size"` +} + +// MarshalJSON is used to customize the JSON output for BinaryBlobCompleted +// The blob structures are also used in the return of json formatted +// patchenvelope description request. This is to suppress the +// CipherBlockStatus cipher structure items detail when displaying. +// Implement the json.Marshaler interface for BinaryBlobCompleted +func (b BinaryBlobCompleted) MarshalJSON() ([]byte, error) { + return marshalWithCustomLogic(b) +} + +// MarshalJSON is used to customize the JSON output for BinaryBlobVolumeRef +// Implement the json.Marshaler interface for BinaryBlobVolumeRef +func (b BinaryBlobVolumeRef) MarshalJSON() ([]byte, error) { + return marshalWithCustomLogic(b) +} + +// MarshalJSON is used to customize the JSON output for BinaryCipherBlob +// Implement the json.Marshaler interface for BinaryBlobVolumeRef +func (b BinaryCipherBlob) MarshalJSON() ([]byte, error) { + return marshalWithCustomLogic(b) +} + +// Generic marshal function with custom logic +func marshalWithCustomLogic(v interface{}) ([]byte, error) { + val := reflect.ValueOf(v) + typ := reflect.TypeOf(v) + + // Create a map to hold the JSON representation + m := make(map[string]interface{}) + + for i := 0; i < val.NumField(); i++ { + field := val.Field(i) + fieldType := typ.Field(i) + fieldName := fieldType.Tag.Get("json") + + if fieldName == "" { + fieldName = fieldType.Name + } + + if fieldName == "encArtifactMeta" { + if isEmpty(field.Interface()) { + m[fieldName] = struct{}{} + } else { + m[fieldName] = field.Interface() + } + } else { + m[fieldName] = field.Interface() + } + } + + return json.Marshal(m) +} + +// isEmpty checks if a struct is empty using reflection +func isEmpty(v interface{}) bool { + return reflect.DeepEqual(v, reflect.Zero(reflect.TypeOf(v)).Interface()) } // CompletedBinaryBlobIdxByName returns index of element in blobs list @@ -114,6 +179,17 @@ func CompletedBinaryBlobIdxByName(blobs []BinaryBlobCompleted, name string) int return -1 } +// CompletedCipherBlobIdxByName returns index of element in blobs list +// which FileName matches name +func CompletedCipherBlobIdxByName(blobs []BinaryCipherBlob, name string) int { + for i := range blobs { + if blobs[i].Inline != nil && blobs[i].Inline.FileName == name { + return i + } + } + return -1 +} + // BinaryBlobVolumeRef is representation of // external binary blobs, which has not yet been // downloaded @@ -124,7 +200,9 @@ type BinaryBlobVolumeRef struct { FileMetadata string `json:"fileMetaData"` // ArtifactMetadata is generic info i.e. user info, desc etc. ArtifactMetadata string `json:"artifactMetaData"` - ImageID string `json:"imageId"` + // Encrypted ArtifactMetadata for blob + EncArtifactMeta CipherBlockStatus `json:"encArtifactMeta"` + ImageID string `json:"imageId"` } // PatchEnvelopeUsage stores information on how patchEnvelopes are @@ -164,3 +242,34 @@ func PatchEnvelopeUsageFromInfo(peInfo PatchEnvelopeInfo) []PatchEnvelopeUsage { return result } + +// BlobEncrytedType - type of encrypted Binary blob +type BlobEncrytedType int8 + +const ( + // BlobEncrytedTypeNone - no encryption + BlobEncrytedTypeNone BlobEncrytedType = iota + // BlobEncrytedTypeInline - inline encryption + BlobEncrytedTypeInline + // BlobEncrytedTypeVolume - volume encryption + BlobEncrytedTypeVolume +) + +// BinaryCipherBlob is encrypted binary blob for Binary Artifact +type BinaryCipherBlob struct { + // EncType is type of encryption + EncType BlobEncrytedType `json:"encType"` + // ArtifactMetadata is generic info i.e. user info, desc etc. + ArtifactMetaData string `json:"artifactMetaData"` + // Encrypted ArtifactMetadata for blob + EncArtifactMeta CipherBlockStatus `json:"encArtifactMeta"` + // EncURL is URL to download encrypted binary blob in CipherBlockStatus format + // which contains either ONEOF inline or volume encrypted data + EncURL string `json:"encURL"` + // EncFileName is file name of the encrypted binary blob + EncFileName string `json:"encFileName"` + // Inline - used for post decrypt inline binary blob + Inline *BinaryBlobCompleted `json:"inline"` + // Volume - used for post decrypt volume binary blob + Volume *BinaryBlobVolumeRef `json:"volume"` +} diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/wwan.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/wwan.go index 4223311865..1ee776246e 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/wwan.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/wwan.go @@ -149,6 +149,20 @@ const ( WwanRAT5GNR WwanRAT = "5gnr" ) +// WwanIPType : the IP addressing type to use for a given attach or default bearer. +type WwanIPType string + +const ( + // WwanIPTypeUnspecified : IP type is not specified. + WwanIPTypeUnspecified WwanIPType = "" + // WwanIPTypeIPv4 : IPv4 only. + WwanIPTypeIPv4 WwanIPType = "ipv4" + // WwanIPTypeIPv4AndIPv6 : IPv4 and IPv6. + WwanIPTypeIPv4AndIPv6 WwanIPType = "ipv4v6" + // WwanIPTypeIPv6 : IPv6 only. + WwanIPTypeIPv6 WwanIPType = "ipv6" +) + // WwanProbe : cellular connectivity verification probe. type WwanProbe struct { // If true, then probing is disabled. @@ -339,6 +353,11 @@ type WwanNetworkStatus struct { IPSettings WwanIPSettings // True if location tracking is successfully running. LocationTracking bool + // Contains all bearers currently associated with the cellular connection, + // including the attach (initial) bearer. + Bearers []WwanBearer + // Cellular connection profiles stored on the modem. + Profiles []WwanProfile } // WwanCellModule contains cellular module specs. @@ -456,6 +475,60 @@ func (wips WwanIPSettings) Equal(wips2 WwanIPSettings) bool { wips.MTU == wips2.MTU } +// WwanBearer represents a logical connection established between a User Equipment (UE) +// and a cellular network. +type WwanBearer struct { + // Access Point Network of the bearer. + APN string + // Purpose of the bearer. + Type BearerType + // The IP addressing type to use for the bearer. + IPType WwanIPType + // Indicates whether or not the bearer is connected. + Connected bool + // Provides additional information specifying the reason why the modem is not connected + // (either due to a failed connection attempt, or due to a network initiated disconnection). + ConnectionError string + // Unix timestamp in seconds made when the current connection was established. + // Zero value if the bearer is not connected. + ConnectedAt uint64 +} + +// BearerType : purpose of a given cellular bearer. +type BearerType int32 + +// The values here should be same as the ones defined in info.proto of EVE API. +const ( + // BearerTypeUnspecified : bearer type is not specified/known. + BearerTypeUnspecified BearerType = iota + // BearerTypeAttach : bearer used for the initial attach procedure. + BearerTypeAttach + // BearerTypeDefault : default connection bearer providing packet data access + // to the network. + BearerTypeDefault + // BearerTypeDedicated : secondary context (2G/3G) or dedicated bearer (4G), + // defined by the user of the API. These bearers use the same IP address used + // by a primary context or default bearer and provide a dedicated flow for specific + // traffic with different QoS settings. + BearerTypeDedicated +) + +// WwanProfile is a modem-stored configuration that defines how the device +// connects to a network. It is used mostly during the initial attach procedure. +type WwanProfile struct { + // The name of the profile. + Name string + // Access Point Name used by the profile. + APN string + // Which bearer type this profile is for. + BearerType BearerType + // The IP addressing type used by the profile. + IPType WwanIPType + // When true, the modem will not connect to networks that require roaming + // when using this profile. + ForbidRoaming bool +} + // Equal compares two instances of WwanNetworkStatus for equality. func (wns WwanNetworkStatus) Equal(wns2 WwanNetworkStatus) bool { if wns.LogicalLabel != wns2.LogicalLabel || @@ -484,6 +557,10 @@ func (wns WwanNetworkStatus) Equal(wns2 WwanNetworkStatus) bool { wns.LocationTracking != wns2.LocationTracking { return false } + if !generics.EqualSets(wns.Bearers, wns2.Bearers) || + !generics.EqualSets(wns.Profiles, wns2.Profiles) { + return false + } return true } diff --git a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/zedmanagertypes.go b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/zedmanagertypes.go index 5d62a69a10..d5dba9769a 100644 --- a/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/zedmanagertypes.go +++ b/pkg/wwan/mmagent/vendor/github.com/lf-edge/eve/pkg/pillar/types/zedmanagertypes.go @@ -27,10 +27,12 @@ type UUIDandVersion struct { type SnapshotType int32 const ( - // SnapshotTypeUnspecified is the default value, and should not be used in practice + // SnapshotTypeUnspecified is the default value, and means no snapshot should be taken SnapshotTypeUnspecified SnapshotType = 0 // SnapshotTypeAppUpdate is used when the snapshot is created as a result of an app update SnapshotTypeAppUpdate SnapshotType = 1 + // SnapshotTypeImmediate is used when the snapshot is created immediately + SnapshotTypeImmediate SnapshotType = 2 ) func (s SnapshotType) String() string { @@ -39,6 +41,8 @@ func (s SnapshotType) String() string { return "SnapshotTypeUnspecified" case SnapshotTypeAppUpdate: return "SnapshotTypeAppUpdate" + case SnapshotTypeImmediate: + return "SnapshotTypeImmediate" default: return fmt.Sprintf("Unknown SnapshotType %d", s) } @@ -49,6 +53,8 @@ func (s SnapshotType) ConvertToInfoSnapshotType() info.SnapshotType { switch s { case SnapshotTypeAppUpdate: return info.SnapshotType_SNAPSHOT_TYPE_APP_UPDATE + case SnapshotTypeImmediate: + return info.SnapshotType_SNAPSHOT_TYPE_IMMEDIATE default: return info.SnapshotType_SNAPSHOT_TYPE_UNSPECIFIED } @@ -234,6 +240,18 @@ func (config AppInstanceConfig) Key() string { return config.UUIDandVersion.UUID.String() } +// SnapshotWhen describes when a snapshot should be taken, see info below +type SnapshotWhen uint8 + +const ( + // NoSnapshotTake indicated no snapshot should be taken, f.e. because it already exists. + NoSnapshotTake SnapshotWhen = iota + // SnapshotImmediate indicates whether a snapshot should be taken immediately. + SnapshotImmediate + // SnapshotOnUpgrade indicates whether a snapshot should be taken during the app instance update. + SnapshotOnUpgrade +) + // SnapshottingStatus contains the snapshot information for the app instance. type SnapshottingStatus struct { // MaxSnapshots indicates the maximum number of snapshots to be kept for the app instance. @@ -246,8 +264,8 @@ type SnapshottingStatus struct { SnapshotsToBeDeleted []SnapshotDesc // PreparedVolumesSnapshotConfigs contains the list of snapshots to be triggered for the app instance. PreparedVolumesSnapshotConfigs []VolumesSnapshotConfig - // SnapshotOnUpgrade indicates whether a snapshot should be taken during the app instance update. - SnapshotOnUpgrade bool + // SnapshotTakenType indicates if and when a snapshot should be taken + SnapshotTakenType SnapshotWhen // HasRollbackRequest indicates whether there are any rollback requests for the app instance. // Set to true when a rollback is requested by controller, set to false when the rollback is triggered. HasRollbackRequest bool diff --git a/pkg/wwan/mmagent/vendor/modules.txt b/pkg/wwan/mmagent/vendor/modules.txt index da176c5520..a5794ce0c6 100644 --- a/pkg/wwan/mmagent/vendor/modules.txt +++ b/pkg/wwan/mmagent/vendor/modules.txt @@ -310,7 +310,7 @@ github.com/leodido/go-urn # github.com/lf-edge/edge-containers v0.0.0-20240207093504-5dfda0619b80 ## explicit; go 1.15 github.com/lf-edge/edge-containers/pkg/resolver -# github.com/lf-edge/eve-api/go v0.0.0-20250310225738-c77ab6f8c73a +# github.com/lf-edge/eve-api/go v0.0.0-20250502212418-fc1e3bad8f0f ## explicit; go 1.20 github.com/lf-edge/eve-api/go/auth github.com/lf-edge/eve-api/go/certs @@ -322,8 +322,8 @@ github.com/lf-edge/eve-api/go/profile # github.com/lf-edge/eve/pkg/kube/cnirpc v0.0.0-20240315102754-0f6d1f182e0d ## explicit; go 1.20 github.com/lf-edge/eve/pkg/kube/cnirpc -# github.com/lf-edge/eve/pkg/pillar v0.0.0-20250314140011-251590c3c9b2 => ../../pillar -## explicit; go 1.23 +# github.com/lf-edge/eve/pkg/pillar v0.0.0-20250521102811-3fd4163ef046 => ../../pillar +## explicit; go 1.23.0 github.com/lf-edge/eve/pkg/pillar/agentbase github.com/lf-edge/eve/pkg/pillar/agentlog github.com/lf-edge/eve/pkg/pillar/base From bdfbd4c165ab61b2b4199707cf5d674c955af62c Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Fri, 4 Apr 2025 10:33:49 +0200 Subject: [PATCH 4/9] Parse LTE Attach config and propagate errors to controller Apart from the obvious code parsing of the newly introduced LTE attach configuration, some improvements were done around wireless config to make sure that errors are propagated to the controller. Signed-off-by: Milan Lenco (cherry picked from commit 227db11b1825b1494b1c7353fb4f2d47b112ee4a) --- pkg/pillar/cmd/zedagent/handlecipherconfig.go | 15 +- pkg/pillar/cmd/zedagent/parseconfig.go | 144 +++++++++++++----- .../cmd/zedagent/parsepatchenvelopes.go | 26 +++- pkg/pillar/cmd/zedagent/reportinfo.go | 65 ++++++++ 4 files changed, 201 insertions(+), 49 deletions(-) diff --git a/pkg/pillar/cmd/zedagent/handlecipherconfig.go b/pkg/pillar/cmd/zedagent/handlecipherconfig.go index d7f593155c..7d2ac907cb 100644 --- a/pkg/pillar/cmd/zedagent/handlecipherconfig.go +++ b/pkg/pillar/cmd/zedagent/handlecipherconfig.go @@ -100,12 +100,13 @@ func parseCipherContext(ctx *getconfigContext, // parseCipherBlock : will collate all the relevant information // ciphercontext will be used to get the certs and encryption schemes // should be run after parseCipherContext -func parseCipherBlock(ctx *getconfigContext, key string, cfgCipherBlock *zcommon.CipherBlock) types.CipherBlockStatus { +func parseCipherBlock(ctx *getconfigContext, key string, + cfgCipherBlock *zcommon.CipherBlock) (types.CipherBlockStatus, error) { log.Functionf("parseCipherBlock(%s) started", key) if cfgCipherBlock == nil { log.Functionf("parseCipherBlock(%s) nil cipher block", key) - return types.CipherBlockStatus{CipherBlockID: key} + return types.CipherBlockStatus{CipherBlockID: key}, nil } cipherBlock := types.CipherBlockStatus{ CipherBlockID: key, @@ -118,10 +119,10 @@ func parseCipherBlock(ctx *getconfigContext, key string, cfgCipherBlock *zcommon // should contain valid cipher data if len(cipherBlock.CipherData) == 0 || len(cipherBlock.CipherContextID) == 0 { - errStr := fmt.Sprintf("%s, block contains incomplete data", key) - log.Error(errStr) - cipherBlock.SetErrorNow(errStr) - return cipherBlock + err := fmt.Errorf("%s, block contains incomplete data", key) + log.Error(err) + cipherBlock.SetErrorNow(err.Error()) + return cipherBlock, err } log.Functionf("%s, marking cipher as true", key) cipherBlock.IsCipher = true @@ -142,7 +143,7 @@ func parseCipherBlock(ctx *getconfigContext, key string, cfgCipherBlock *zcommon } log.Functionf("parseCipherBlock(%s) done", key) - return cipherBlock + return cipherBlock, nil } func publishCipherContext(ctx *getconfigContext, diff --git a/pkg/pillar/cmd/zedagent/parseconfig.go b/pkg/pillar/cmd/zedagent/parseconfig.go index 9d0201a6b2..7422546725 100644 --- a/pkg/pillar/cmd/zedagent/parseconfig.go +++ b/pkg/pillar/cmd/zedagent/parseconfig.go @@ -773,7 +773,16 @@ func parseAppInstanceConfig(getconfigCtx *getconfigContext, appInstance.CloudInitUserData = &userData } appInstance.RemoteConsole = cfgApp.GetRemoteConsole() - appInstance.CipherBlockStatus = parseCipherBlock(getconfigCtx, appInstance.Key(), cfgApp.GetCipherData()) + + var err error + appInstance.CipherBlockStatus, err = parseCipherBlock( + getconfigCtx, appInstance.Key(), cfgApp.GetCipherData()) + if err != nil { + log.Errorf("Failed to parse application %s cipher data: %v", + cfgApp.Displayname, err) + appInstance.SetErrorNow(err.Error()) + } + appInstance.ProfileList = cfgApp.ProfileList // Add config submitted via local profile server. @@ -1915,7 +1924,13 @@ func publishDatastoreConfig(ctx *getconfigContext, datastore.DsCertPEM = ds.GetDsCertPEM() - datastore.CipherBlockStatus = parseCipherBlock(ctx, datastore.Key(), ds.GetCipherData()) + var err error + datastore.CipherBlockStatus, err = parseCipherBlock( + ctx, datastore.Key(), ds.GetCipherData()) + if err != nil { + log.Error(err) + datastore.SetErrorNow(err.Error()) + } ctx.pubDatastoreConfig.Publish(datastore.Key(), *datastore) } } @@ -2069,7 +2084,12 @@ func parseOneNetworkXObjectConfig(ctx *getconfigContext, netEnt *zconfig.Network } // wireless property configuration - config.WirelessCfg = parseNetworkWirelessConfig(ctx, config.Key(), netEnt) + config.WirelessCfg, err = parseNetworkWirelessConfig(ctx, config.Key(), netEnt) + if err != nil { + log.Errorf("parseOneNetworkXObjectConfig (%s): %v", config.Key(), err) + config.SetErrorNow(err.Error()) + return config + } ipspec := netEnt.GetIp() if ipspec == nil && config.Type != types.NetworkTypeNOOP { @@ -2135,14 +2155,15 @@ func parseOneNetworkXObjectConfig(ctx *getconfigContext, netEnt *zconfig.Network return config } -func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconfig.NetworkConfig) types.WirelessConfig { - var wconfig types.WirelessConfig +func parseNetworkWirelessConfig(ctx *getconfigContext, + key string, netEnt *zconfig.NetworkConfig) (wconfig types.WirelessConfig, err error) { netWireless := netEnt.GetWireless() if netWireless == nil { - return wconfig + return wconfig, nil } - log.Functionf("parseNetworkWirelessConfig: Wireless of network present in %s, config %v", netEnt.Id, netWireless) + log.Functionf("parseNetworkWirelessConfig: Wireless of network present in %s, config %v", + netEnt.Id, netWireless) wType := netWireless.GetType() switch wType { @@ -2150,19 +2171,16 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconf wconfig.WType = types.WirelessTypeCellular cellNetConfigs := netWireless.GetCellularCfg() if len(cellNetConfigs) == 0 { - log.Errorf("parseNetworkWirelessConfig: missing cellular config in: %v", - netWireless) - return wconfig + err = errors.New("missing cellular config") + return wconfig, err } // CellularCfg should really have been defined in the EVE API as a single entry // rather than as a list (for multiple SIM cards and APNs there is AccessPoints list // underneath). However, marking this field as deprecated and creating a new non-list // field seems unnecessary - let's instead expect single entry. if len(cellNetConfigs) > 1 { - log.Errorf( - "parseNetworkWirelessConfig: unexpected multiple cellular configs in: %v", - netWireless) - return wconfig + err = errors.New("unexpected multiple cellular configs") + return wconfig, err } cellNetConfig := cellNetConfigs[0] for _, accessPoint := range cellNetConfig.AccessPoints { @@ -2173,19 +2191,9 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconf // should be activated. ap.Activated = cellNetConfig.ActivatedSimSlot == 0 || cellNetConfig.ActivatedSimSlot == accessPoint.SimSlot - switch accessPoint.AuthProtocol { - case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_PAP: - ap.AuthProtocol = types.WwanAuthProtocolPAP - case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_CHAP: - ap.AuthProtocol = types.WwanAuthProtocolCHAP - case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP: - ap.AuthProtocol = types.WwanAuthProtocolPAPAndCHAP - default: - log.Errorf("parseNetworkWirelessConfig: unrecognized AuthProtocol: %+v", - accessPoint) - } - if ap.AuthProtocol != types.WwanAuthProtocolNone { - ap.EncryptedCredentials = parseCipherBlock(ctx, key, accessPoint.GetCipherData()) + ap.AuthProtocol, err = parseCellularAuthProtocol(accessPoint.AuthProtocol) + if err != nil { + return wconfig, err } for _, plmn := range accessPoint.PreferredPlmns { ap.PreferredPLMNs = append(ap.PreferredPLMNs, plmn) @@ -2201,11 +2209,32 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconf case zevecommon.RadioAccessTechnology_RADIO_ACCESS_TECHNOLOGY_5GNR: ap.PreferredRATs = append(ap.PreferredRATs, types.WwanRAT5GNR) default: - log.Errorf("parseNetworkWirelessConfig: unrecognized RAT: %+v", - accessPoint) + return wconfig, fmt.Errorf("unrecognized RAT: %+v", accessPoint) } } ap.ForbidRoaming = accessPoint.ForbidRoaming + ap.IPType, err = parseCellularIPType(accessPoint.IpType) + if err != nil { + return wconfig, err + } + ap.AttachAPN = accessPoint.AttachApn + ap.AttachIPType, err = parseCellularIPType(accessPoint.AttachIpType) + if err != nil { + return wconfig, err + } + ap.AttachAuthProtocol, err = parseCellularAuthProtocol( + accessPoint.AttachAuthProtocol) + if err != nil { + return wconfig, err + } + if ap.AuthProtocol != types.WwanAuthProtocolNone || + ap.AttachAuthProtocol != types.WwanAuthProtocolNone { + ap.EncryptedCredentials, err = parseCipherBlock( + ctx, key, accessPoint.GetCipherData()) + if err != nil { + return wconfig, err + } + } wconfig.CellularV2.AccessPoints = append(wconfig.CellularV2.AccessPoints, ap) } // For backward compatibility. @@ -2219,7 +2248,7 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconf probeCfg := cellNetConfig.Probe customProbe, err := parseConnectivityProbe(probeCfg.GetCustomProbe()) if err != nil { - log.Errorf("parseNetworkWirelessConfig: %v", err) + return wconfig, err } if customProbe.Method == types.ConnectivityProbeMethodNone || err != nil { // For backward compatibility. @@ -2252,21 +2281,59 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, key string, netEnt *zconf case zconfig.WiFiKeyScheme_WPAEAP: wifi.KeyScheme = types.KeySchemeWpaEap default: - log.Errorf("parseNetworkWirelessConfig: unrecognized WiFi Key scheme: %+v", - wificfg) + return wconfig, fmt.Errorf("unrecognized WiFi Key scheme: %+v", + wificfg.GetKeyScheme()) } wifi.Identity = wificfg.GetIdentity() wifi.Password = wificfg.GetPassword() wifi.Priority = wificfg.GetPriority() wifiKey := fmt.Sprintf("%s-%s", key, wifi.SSID) - wifi.CipherBlockStatus = parseCipherBlock(ctx, wifiKey, wificfg.GetCipherData()) + wifi.CipherBlockStatus, err = parseCipherBlock( + ctx, wifiKey, wificfg.GetCipherData()) + if err != nil { + return wconfig, err + } wconfig.Wifi = append(wconfig.Wifi, wifi) } log.Functionf("parseNetworkWirelessConfig: Wireless of type Wifi, %v", wconfig.Wifi) default: - log.Errorf("parseNetworkWirelessConfig: unsupported wireless configure type %d", wType) + return wconfig, fmt.Errorf("unsupported wireless type: %d", wType) + } + return wconfig, nil +} + +func parseCellularAuthProtocol( + authProtocol zconfig.CellularAuthProtocol) (types.WwanAuthProtocol, error) { + switch authProtocol { + case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_NONE: + return types.WwanAuthProtocolNone, nil + case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_PAP: + return types.WwanAuthProtocolPAP, nil + case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_CHAP: + return types.WwanAuthProtocolCHAP, nil + case zconfig.CellularAuthProtocol_CELLULAR_AUTH_PROTOCOL_PAP_AND_CHAP: + return types.WwanAuthProtocolPAPAndCHAP, nil + default: + return types.WwanAuthProtocolNone, fmt.Errorf( + "unrecognized cellular AuthProtocol: %+v", authProtocol) + } +} + +func parseCellularIPType( + ipType zevecommon.CellularIPType) (types.WwanIPType, error) { + switch ipType { + case zevecommon.CellularIPType_CELLULAR_IP_TYPE_UNSPECIFIED: + return types.WwanIPTypeUnspecified, nil + case zevecommon.CellularIPType_CELLULAR_IP_TYPE_IPV4: + return types.WwanIPTypeIPv4, nil + case zevecommon.CellularIPType_CELLULAR_IP_TYPE_IPV4_AND_IPV6: + return types.WwanIPTypeIPv4AndIPv6, nil + case zevecommon.CellularIPType_CELLULAR_IP_TYPE_IPV6: + return types.WwanIPTypeIPv6, nil + default: + return types.WwanIPTypeUnspecified, fmt.Errorf( + "unrecognized cellular IP type: %+v", ipType) } - return wconfig } func parseIpspecNetworkXObject(ipspec *zconfig.Ipspec, config *types.NetworkXObjectConfig) error { @@ -3288,8 +3355,13 @@ func parseEdgeNodeClusterConfig(getconfigCtx *getconfigContext, BootstrapNode: isJoinNode, // XXX EncryptedClusterToken is only for gcp config } - enClusterConfig.CipherToken = parseCipherBlock(getconfigCtx, + enClusterConfig.CipherToken, err = parseCipherBlock(getconfigCtx, enClusterConfig.Key(), zcfgCluster.GetEncryptedClusterToken()) + if err != nil { + // TODO: Flag enClusterConfig with an error and propagate it to the controller. + log.Errorf("parseEdgeNodeClusterConfig: failed to parse encrypted cluster token: %v", err) + return + } log.Functionf("parseEdgeNodeClusterConfig: ENCluster API, Config %+v, %v", zcfgCluster, enClusterConfig) ctx.pubEdgeNodeClusterConfig.Publish("global", enClusterConfig) } diff --git a/pkg/pillar/cmd/zedagent/parsepatchenvelopes.go b/pkg/pillar/cmd/zedagent/parsepatchenvelopes.go index 5b66c67c0e..7ef8afe3c2 100644 --- a/pkg/pillar/cmd/zedagent/parsepatchenvelopes.go +++ b/pkg/pillar/cmd/zedagent/parsepatchenvelopes.go @@ -99,7 +99,10 @@ func addBinaryBlobToPatchEnvelope(ctx *getconfigContext, pe *types.PatchEnvelope return err } volumeRef.ArtifactMetadata = artifact.GetArtifactMetaData() - volumeRef.EncArtifactMeta = getEncArtifactMetadata(ctx, artifact) + volumeRef.EncArtifactMeta, err = getEncArtifactMetadata(ctx, artifact) + if err != nil { + return err + } pe.VolumeRefs = append(pe.VolumeRefs, *volumeRef) return nil case *zconfig.EveBinaryArtifact_Inline: @@ -112,7 +115,10 @@ func addBinaryBlobToPatchEnvelope(ctx *getconfigContext, pe *types.PatchEnvelope return err } binaryBlob.ArtifactMetadata = artifact.GetArtifactMetaData() - binaryBlob.EncArtifactMeta = getEncArtifactMetadata(ctx, artifact) + binaryBlob.EncArtifactMeta, err = getEncArtifactMetadata(ctx, artifact) + if err != nil { + return err + } pe.BinaryBlobs = append(pe.BinaryBlobs, *binaryBlob) return nil @@ -144,10 +150,11 @@ func addBinaryBlobToPatchEnvelope(ctx *getconfigContext, pe *types.PatchEnvelope return errors.New("Unknown EveBinaryArtifact format") } -func getEncArtifactMetadata(ctx *getconfigContext, artifact *zconfig.EveBinaryArtifact) types.CipherBlockStatus { +func getEncArtifactMetadata(ctx *getconfigContext, + artifact *zconfig.EveBinaryArtifact) (types.CipherBlockStatus, error) { data := artifact.GetMetadataCipherData() if data == nil { - return types.CipherBlockStatus{} + return types.CipherBlockStatus{}, nil } if len(data.CipherData) < 16 { log.Errorf("Failed to get metadata cipher data, cipherData is nil or less than 16 bytes") @@ -169,10 +176,14 @@ func getEncryptedCipherBlock(ctx *getconfigContext, persistCacheFilepath string) (*types.BinaryCipherBlob, error) { var cipherData *zcommon.CipherBlock var typeStr string + encArtifactMeta, err := getEncArtifactMetadata(ctx, artifact) + if err != nil { + return nil, err + } cipherBlob := types.BinaryCipherBlob{ EncType: enctype, ArtifactMetaData: artifact.GetArtifactMetaData(), - EncArtifactMeta: getEncArtifactMetadata(ctx, artifact), + EncArtifactMeta: encArtifactMeta, } switch enctype { case types.BlobEncrytedTypeInline: @@ -197,7 +208,10 @@ func getEncryptedCipherBlock(ctx *getconfigContext, // we save the cipher block data to the cache file, and read it back in msrv side to decrypt, // to avoid publishing the cipher block data which can be too big in size key := fmt.Sprintf("%s-%s", typeStr, hex.EncodeToString(cipherData.CipherData[:16])) - EncBinaryArtifact := parseCipherBlock(ctx, key, cipherData) + EncBinaryArtifact, err := parseCipherBlock(ctx, key, cipherData) + if err != nil { + return nil, err + } url, err := saveCipherBlockStatusToFile(EncBinaryArtifact, key, persistCacheFilepath) if err != nil { return nil, err diff --git a/pkg/pillar/cmd/zedagent/reportinfo.go b/pkg/pillar/cmd/zedagent/reportinfo.go index fee6b773d9..8ccfebe544 100644 --- a/pkg/pillar/cmd/zedagent/reportinfo.go +++ b/pkg/pillar/cmd/zedagent/reportinfo.go @@ -983,6 +983,69 @@ func encodeCellProviders(wwanStatus types.WwanNetworkStatus) (providers []*info. return providers } +func encodeCellIPType(ipType types.WwanIPType) evecommon.CellularIPType { + switch ipType { + case types.WwanIPTypeUnspecified: + return evecommon.CellularIPType_CELLULAR_IP_TYPE_UNSPECIFIED + case types.WwanIPTypeIPv4: + return evecommon.CellularIPType_CELLULAR_IP_TYPE_IPV4 + case types.WwanIPTypeIPv4AndIPv6: + return evecommon.CellularIPType_CELLULAR_IP_TYPE_IPV4_AND_IPV6 + case types.WwanIPTypeIPv6: + return evecommon.CellularIPType_CELLULAR_IP_TYPE_IPV6 + default: + log.Errorf("Invalid wwan IP type: %v", ipType) + } + return evecommon.CellularIPType_CELLULAR_IP_TYPE_UNSPECIFIED +} + +func encodeCellBearerType(bearerType types.BearerType) evecommon.BearerType { + switch bearerType { + case types.BearerTypeUnspecified: + return evecommon.BearerType_BEARER_TYPE_UNSPECIFIED + case types.BearerTypeAttach: + return evecommon.BearerType_BEARER_TYPE_ATTACH + case types.BearerTypeDefault: + return evecommon.BearerType_BEARER_TYPE_DEFAULT + case types.BearerTypeDedicated: + return evecommon.BearerType_BEARER_TYPE_DEDICATED + default: + log.Errorf("Invalid wwan bearer type: %v", bearerType) + } + return evecommon.BearerType_BEARER_TYPE_UNSPECIFIED +} + +func encodeCellBearers(wwanStatus types.WwanNetworkStatus) (bearers []*info.CellularBearer) { + for _, bearer := range wwanStatus.Bearers { + var connectedAt *timestamppb.Timestamp + if bearer.ConnectedAt != 0 { + connectedAt = timestamppb.New(time.Unix(int64(bearer.ConnectedAt), 0)) + } + bearers = append(bearers, &info.CellularBearer{ + Apn: bearer.APN, + BearerType: encodeCellBearerType(bearer.Type), + IpType: encodeCellIPType(bearer.IPType), + Connected: bearer.Connected, + ConnectionError: bearer.ConnectionError, + ConnectedAt: connectedAt, + }) + } + return bearers +} + +func encodeCellProfiles(wwanStatus types.WwanNetworkStatus) (profiles []*info.CellularProfile) { + for _, profile := range wwanStatus.Profiles { + profiles = append(profiles, &info.CellularProfile{ + ProfileName: profile.Name, + Apn: profile.APN, + BearerType: encodeCellBearerType(profile.BearerType), + IpType: encodeCellIPType(profile.IPType), + ForbidRoaming: profile.ForbidRoaming, + }) + } + return profiles +} + func encodeSystemAdapterInfo(ctx *zedagentContext) *info.SystemAdapterInfo { dpcl := *ctx.DevicePortConfigList sainfo := new(info.SystemAdapterInfo) @@ -1127,6 +1190,8 @@ func encodeNetworkPortStatus(ctx *zedagentContext, ConnectedAt: connectedAt, ConfigError: wwanStatus.ConfigError, ProbeError: wwanStatus.ProbeError, + Bearers: encodeCellBearers(wwanStatus), + Profiles: encodeCellProfiles(wwanStatus), }, } case types.WirelessTypeWifi: From 77535b5d613d629a447e373f559cf2149fa18bf0 Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Wed, 14 May 2025 15:38:04 +0200 Subject: [PATCH 5/9] Handle WirelessType NOOP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a port is not a wireless network adapter, the controller may either return nil for the WirelessConfig or provide a WirelessConfig with Type set to NOOP. These two cases are functionally equivalent. However, EVE returns an "unsupported wireless type" error when encountering the NOOP type. Previously, this wasn’t an issue because errors from parseNetworkWirelessConfig were simply logged and ignored. After recent refactoring of this function, those errors are no longer ignored and will cause EVE to reject the entire network configuration as invalid. Signed-off-by: Milan Lenco (cherry picked from commit f212a801a9cdd2ac4985230a2e641c1b59a2451f) --- pkg/pillar/cmd/zedagent/parseconfig.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/pillar/cmd/zedagent/parseconfig.go b/pkg/pillar/cmd/zedagent/parseconfig.go index 7422546725..2d861aabb1 100644 --- a/pkg/pillar/cmd/zedagent/parseconfig.go +++ b/pkg/pillar/cmd/zedagent/parseconfig.go @@ -2167,6 +2167,10 @@ func parseNetworkWirelessConfig(ctx *getconfigContext, wType := netWireless.GetType() switch wType { + case zconfig.WirelessType_TypeNOOP: + // This is not a wireless network adapter. + // Return an empty wireless configuration. + return wconfig, nil case zconfig.WirelessType_Cellular: wconfig.WType = types.WirelessTypeCellular cellNetConfigs := netWireless.GetCellularCfg() From b97c52d03cea7ef7723f0cbd3f608e60ca8d35f9 Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Fri, 4 Apr 2025 10:54:26 +0200 Subject: [PATCH 6/9] Implement user-configurable LTE Attach configuration Users can now configure LTE attach parameters and IP type directly, eliminating the need for speculative methods previously used to "guess" this configuration. This should resolve many issues related to modem registration failures we have been seeing. Signed-off-by: Milan Lenco (cherry picked from commit 63e930d8ff59d4f58d66a9a161c2a08465bd4e55) --- pkg/pillar/cmd/zedagent/reportinfo.go | 2 +- pkg/wwan/mmagent/agent.go | 77 +++++-- pkg/wwan/mmagent/mmdbus/client.go | 313 ++++++++++++++++---------- pkg/wwan/mmagent/mmdbus/mmapi.go | 67 +++++- 4 files changed, 307 insertions(+), 152 deletions(-) diff --git a/pkg/pillar/cmd/zedagent/reportinfo.go b/pkg/pillar/cmd/zedagent/reportinfo.go index 8ccfebe544..48ce0893ba 100644 --- a/pkg/pillar/cmd/zedagent/reportinfo.go +++ b/pkg/pillar/cmd/zedagent/reportinfo.go @@ -650,7 +650,7 @@ func PublishDeviceInfoToZedCloud(ctx *zedagentContext, dest destinationBitset) { // device returns a runtime error. Similarly, we only support enforced application network // interface order for the KVM hypervisor. If enabled for application deployed under Xen // or Kubevirt hypervisor, EVE returns error and the application will not be started. - ReportDeviceInfo.ApiCapability = info.APICapability_API_CAPABILITY_SINGLE_STACK_IP_NETWORK + ReportDeviceInfo.ApiCapability = info.APICapability_API_CAPABILITY_CELLULAR_ATTACH_CONFIG // Report if there is a local override of profile if ctx.getconfigCtx.sideController.currentProfile != diff --git a/pkg/wwan/mmagent/agent.go b/pkg/wwan/mmagent/agent.go index 798faea733..d1a9540394 100644 --- a/pkg/wwan/mmagent/agent.go +++ b/pkg/wwan/mmagent/agent.go @@ -128,9 +128,14 @@ type ModemInfo struct { appliedIPSettings types.WwanIPSettings // Last applied user-configured MTU. appliedUserMTU uint16 - // Decrypted username and password (from Config.AccessPoint.EncryptedCredentials). + // Decrypted username and password to use for the default bearer. + // (decrypted from Config.AccessPoint.EncryptedCredentials). decryptedUsername string decryptedPassword string + // Decrypted username and password to use for the attach bearer. + // (also decrypted from Config.AccessPoint.EncryptedCredentials). + decryptedAttachUsername string + decryptedAttachPassword string // Latest errors encountered while managing this modem. probeError error connectError error @@ -602,12 +607,7 @@ func (a *MMAgent) applyWwanConfig(config types.WwanConfig) { rescanProviders = append(rescanProviders, modem.Path) } if !modem.config.AccessPoint.Equal(modem.prevConfig.AccessPoint) { - modem.decryptedUsername, modem.decryptedPassword, modem.decryptError = - a.decryptAPCredentials(&modem.config.AccessPoint) - if modem.decryptError != nil { - a.log.Errorf("Failed to decrypt username/password for modem %s (%s): %v", - modem.config.LogicalLabel, modem.Path, modem.decryptError) - } + a.decryptCredentials(modem) forceReconnect = true } a.reconcileModem(modem, forceReconnect) @@ -760,12 +760,7 @@ func (a *MMAgent) findConfigForNewModem(modem *ModemInfo) { modem.config = config a.log.Noticef("Associated modem at path %s with logical label %s", modem.Path, modem.config.LogicalLabel) - modem.decryptedUsername, modem.decryptedPassword, modem.decryptError = - a.decryptAPCredentials(&config.AccessPoint) - if modem.decryptError != nil { - a.log.Errorf("Failed to decrypt username/password for modem %s (%s): %v", - modem.config.LogicalLabel, modem.Path, modem.decryptError) - } + a.decryptCredentials(modem) // Remove entry from missingModems. a.missingModems[i] = a.missingModems[len(a.missingModems)-1] a.missingModems = a.missingModems[:len(a.missingModems)-1] @@ -827,6 +822,11 @@ func (a *MMAgent) reconcileModem( connErrChanged = true a.logReconcileOp(modem, "close connection", opReason, connErr) } + if connErr == nil { + // Not a necessary step hence we do not touch connErr if it fails. + err := a.mmClient.DeleteBearers(modem.Path) + a.logReconcileOp(modem, "delete bearers", opReason, err) + } if connErr == nil && modem.Status.Module.OpMode != types.WwanOpModeRadioOff { // Note that we disable radio function of all unmanaged modems. connErr = a.mmClient.DisableRadio(modem.Path) @@ -857,6 +857,14 @@ func (a *MMAgent) reconcileModem( a.logReconcileOp(modem, "remove (obsolete) IP settings", opReason, connErr) } + if forceReconnect { + // For forced-reconnection we start with a clear bearer config. + // This is not a necessary step, but may help to prevent some connection + // errors caused by lingering bearer configs that we have seen. + // If this fails, we continue anyway (do not store error in connErr). + err := a.mmClient.DeleteBearers(modem.Path) + a.logReconcileOp(modem, "delete bearers", opReason, err) + } } if connErr == nil && // Do not try to connect if we failed to decrypt credentials. @@ -1192,7 +1200,10 @@ func (a *MMAgent) connectModem(modem *ModemInfo) error { CellularAccessPoint: modem.config.AccessPoint, DecryptedUsername: modem.decryptedUsername, //pragma: allowlist nextline secret - DecryptedPassword: modem.decryptedPassword, + DecryptedPassword: modem.decryptedPassword, + DecryptedAttachUsername: modem.decryptedAttachUsername, + //pragma: allowlist nextline secret + DecryptedAttachPassword: modem.decryptedAttachPassword, }) if err != nil { return err @@ -1345,20 +1356,33 @@ func (a *MMAgent) getResolvConfFilename(modem *ModemInfo) string { return path.Join(WwanResolvConfDir, modem.Status.PhysAddrs.Interface+".dhcp") } -func (a *MMAgent) decryptAPCredentials(ap *types.CellularAccessPoint) ( - username, password string, err error) { - if !ap.EncryptedCredentials.IsCipher { - return "", "", nil +func (a *MMAgent) decryptCredentials(modem *ModemInfo) { + defer func() { + if modem.decryptError != nil { + a.log.Errorf( + "Failed to decrypt user credentials for modem %s (%s): %v", + modem.config.LogicalLabel, modem.Path, modem.decryptError) + } + }() + modem.decryptError = nil + modem.decryptedUsername = "" + modem.decryptedPassword = "" + modem.decryptedAttachUsername = "" + modem.decryptedAttachPassword = "" + encryptedCreds := modem.config.AccessPoint.EncryptedCredentials + if !encryptedCreds.IsCipher { + return } // Regardless of how decryption will go, metrics will be updated. a.metricsUpdated = true decryptAvailable := a.subControllerCert != nil && a.subEdgeNodeCert != nil if !decryptAvailable { a.cipherMetrics.RecordFailure(a.log, types.NotReady) - return "", "", fmt.Errorf( + modem.decryptError = fmt.Errorf( "missing certificates for decryption of cellular network credentials") + return } - status, decBlock, err := cipher.GetCipherCredentials( + cipherStatus, decryptedCreds, err := cipher.GetCipherCredentials( &cipher.DecryptCipherContext{ Log: a.log, AgentName: agentName, @@ -1366,9 +1390,9 @@ func (a *MMAgent) decryptAPCredentials(ap *types.CellularAccessPoint) ( PubSubControllerCert: a.subControllerCert, PubSubEdgeNodeCert: a.subEdgeNodeCert, }, - ap.EncryptedCredentials) + encryptedCreds) if a.pubCipherBlockStatus != nil { - err2 := a.pubCipherBlockStatus.Publish(status.Key(), status) + err2 := a.pubCipherBlockStatus.Publish(cipherStatus.Key(), cipherStatus) if err2 != nil { // This does not affect the decryption procedure itself, just log error. a.log.Errorf("Failed to publish CipherBlockStatus: %v", err2) @@ -1376,10 +1400,13 @@ func (a *MMAgent) decryptAPCredentials(ap *types.CellularAccessPoint) ( } if err != nil { a.cipherMetrics.RecordFailure(a.log, types.DecryptFailed) - return "", "", fmt.Errorf( - "failed to decrypt cellular network credentials: %w", err) + modem.decryptError = err + return } - return decBlock.CellularNetUsername, decBlock.CellularNetPassword, nil + modem.decryptedUsername = decryptedCreds.CellularNetUsername + modem.decryptedPassword = decryptedCreds.CellularNetPassword + modem.decryptedAttachUsername = decryptedCreds.CellularNetAttachUsername + modem.decryptedAttachPassword = decryptedCreds.CellularNetAttachPassword } func (a *MMAgent) publishWwanStatus() { diff --git a/pkg/wwan/mmagent/mmdbus/client.go b/pkg/wwan/mmagent/mmdbus/client.go index 2b35c18662..95ac7a8dc9 100644 --- a/pkg/wwan/mmagent/mmdbus/client.go +++ b/pkg/wwan/mmagent/mmdbus/client.go @@ -31,13 +31,13 @@ const ( ) const ( - notifChanBuffer = 128 - dbusSigChanBuffer = 256 - dbusCallTimeout = 10 * time.Second - scanProvidersTimeout = 3 * time.Minute - modemDisableTimeout = 10 * time.Second - changePrimarySIMTimeout = 30 * time.Second - changeInitEPSBearerTimeout = 20 * time.Second + notifChanBuffer = 128 + dbusSigChanBuffer = 256 + dbusCallTimeout = 10 * time.Second + scanProvidersTimeout = 3 * time.Minute + modemDisableTimeout = 10 * time.Second + changePrimarySIMTimeout = 30 * time.Second + setInitEPSBearerTimeout = 20 * time.Second ) const ( @@ -91,8 +91,10 @@ type Modem struct { // ConnectionArgs encapsulates all arguments for connection request. type ConnectionArgs struct { types.CellularAccessPoint - DecryptedUsername string - DecryptedPassword string + DecryptedUsername string + DecryptedPassword string + DecryptedAttachUsername string + DecryptedAttachPassword string } // Event is used to signal change in modem state data. @@ -158,7 +160,7 @@ func (c *Client) RunModemMonitoring(signalPollPeriod time.Duration) ( func (c *Client) setSignalPollPeriod(period time.Duration) { c.sigPollPeriodSecs = uint32(period.Seconds()) if c.sigPollPeriodSecs == 0 && period > 0 { - // Smallest support period. + // Smallest supported period. c.sigPollPeriodSecs = 1 } } @@ -386,6 +388,9 @@ func (c *Client) processDbusSignal(signal *dbus.Signal) { modemPaths, modem.Path) } } + case ProfileManagerInterface: + statusChanged = true + modemPaths = generics.AppendIfNotDuplicate(modemPaths, path) } // Reload changed state data and publish notification(s). for _, modemPath := range modemPaths { @@ -666,6 +671,8 @@ func (c *Client) getModemStatus(modemObj dbus.BusObject) ( status.CurrentProvider.Description = providerName } var bearers []dbus.ObjectPath + // Retrieve status for default and dedicated bearers. + // This does not include the attach bearer. _ = getDBusProperty(c, modemObj, ModemPropertyBearers, &bearers) for _, bearerPath := range bearers { if !bearerPath.IsValid() { @@ -674,25 +681,27 @@ func (c *Client) getModemStatus(modemObj dbus.BusObject) ( } bearerPaths = append(bearerPaths, string(bearerPath)) bearerObj := c.conn.Object(MMInterface, bearerPath) - var connected bool - _ = getDBusProperty(c, bearerObj, BearerPropertyConnected, &connected) - if !connected { - continue - } - var stats map[string]dbus.Variant - _ = getDBusProperty(c, bearerObj, BearerPropertyStats, &stats) - if value, ok := stats["start-date"].Value().(uint64); ok { - status.ConnectedAt = value - } else if value, ok := stats["duration"].Value().(uint32); ok { - status.ConnectedAt = uint64(time.Now().Unix()) - uint64(value) + bearer := c.getBearerStatus(bearerObj) + if bearer.Connected && bearer.Type == types.BearerTypeDefault { + status.ConnectedAt = bearer.ConnectedAt + ipSettings, err := c.getBearerIPSettings(bearerObj) + if err != nil { + c.log.Error(err) + } else { + status.IPSettings = ipSettings + } } - ipSettings, err := c.getBearerIPSettings(bearerObj) - if err != nil { - c.log.Error(err) - break + status.Bearers = append(status.Bearers, bearer) + } + // Retrieve attach bearer status. + var attachBearer dbus.ObjectPath + _ = getDBusProperty(c, modemObj, Modem3GPPPropertyInitialEpsBearer, &attachBearer) + if attachBearer.IsValid() { + attachBearerObj := c.conn.Object(MMInterface, attachBearer) + bearer := c.getBearerStatus(attachBearerObj) + if bearer.Type == types.BearerTypeAttach { + status.Bearers = append(status.Bearers, bearer) } - status.IPSettings = ipSettings - break } // Find out if location tracking is running for this modem. var locEnabled uint32 @@ -700,9 +709,105 @@ func (c *Client) getModemStatus(modemObj dbus.BusObject) ( var locSignals bool _ = getDBusProperty(c, modemObj, LocationPropertySignals, &locSignals) status.LocationTracking = locSignals && (locEnabled&LocationSourceGpsRaw) > 0 + // Retrieve modem profiles. + var profilesRaw interface{} + _ = c.callDBusMethod(modemObj, ProfileManagerMethodList, &profilesRaw) + if profiles, ok := profilesRaw.([]map[string]dbus.Variant); ok { + for _, profileAttrs := range profiles { + var profile types.WwanProfile + if value, ok := profileAttrs["profile-name"].Value().(string); ok { + profile.Name = value + } + if value, ok := profileAttrs["profile-id"].Value().(int32); ok { + if profile.Name == "" && value >= 0 { + profile.Name = fmt.Sprintf("profile-id:%d", value) + } + } + if value, ok := profileAttrs["apn"].Value().(string); ok { + profile.APN = value + } + if value, ok := profileAttrs["ip-type"].Value().(uint32); ok { + switch value { + case BearerIPFamilyIPv4: + profile.IPType = types.WwanIPTypeIPv4 + case BearerIPFamilyIPv4v6: + profile.IPType = types.WwanIPTypeIPv4AndIPv6 + case BearerIPFamilyIPv6: + profile.IPType = types.WwanIPTypeIPv6 + } + } + if value, ok := profileAttrs["apn-type"].Value().(uint32); ok { + if value&BearerAPNTypeAttach != 0 { + profile.BearerType = types.BearerTypeAttach + } else if value&BearerAPNTypeDefault != 0 { + profile.BearerType = types.BearerTypeDefault + } else if value&(^uint32(BearerAPNTypeAttach|BearerAPNTypeDefault)) != 0 { + profile.BearerType = types.BearerTypeDedicated + } + } + if value, ok := profileAttrs["roaming-allowance"].Value().(uint32); ok { + if value == 0 { + profile.ForbidRoaming = true + } + } + status.Profiles = append(status.Profiles, profile) + } + } return } +func (c *Client) getBearerStatus(bearerObj dbus.BusObject) (bearer types.WwanBearer) { + var bearerType uint32 + _ = getDBusProperty(c, bearerObj, BearerPropertyType, &bearerType) + switch bearerType { + case BearerTypeDefault: + bearer.Type = types.BearerTypeDefault + case BearerTypeAttach: + bearer.Type = types.BearerTypeAttach + case BearerTypeDedicated: + bearer.Type = types.BearerTypeDedicated + } + _ = getDBusProperty(c, bearerObj, BearerPropertyConnected, &bearer.Connected) + if bearer.Connected { + var stats map[string]dbus.Variant + _ = getDBusProperty(c, bearerObj, BearerPropertyStats, &stats) + if value, ok := stats["start-date"].Value().(uint64); ok { + bearer.ConnectedAt = value + } else if value, ok := stats["duration"].Value().(uint32); ok { + bearer.ConnectedAt = uint64(time.Now().Unix()) - uint64(value) + } + } + connectionError := struct { + DBusErrName string + ErrMessage string + }{} + _ = getDBusProperty(c, bearerObj, BearerPropertyConnectionError, &connectionError) + if connectionError.DBusErrName != "" { + if connectionError.ErrMessage != "" { + bearer.ConnectionError = connectionError.DBusErrName + ": " + + connectionError.ErrMessage + } else { + bearer.ConnectionError = connectionError.DBusErrName + } + } + var bearerProperties map[string]dbus.Variant + _ = getDBusProperty(c, bearerObj, BearerPropertyProperties, &bearerProperties) + if value, ok := bearerProperties["apn"].Value().(string); ok { + bearer.APN = value + } + if value, ok := bearerProperties["ip-type"].Value().(uint32); ok { + switch value { + case BearerIPFamilyIPv4: + bearer.IPType = types.WwanIPTypeIPv4 + case BearerIPFamilyIPv4v6: + bearer.IPType = types.WwanIPTypeIPv4AndIPv6 + case BearerIPFamilyIPv6: + bearer.IPType = types.WwanIPTypeIPv6 + } + } + return bearer +} + func (c *Client) getBearerIPSettings(bearerObj dbus.BusObject) ( ipSettings types.WwanIPSettings, err error) { var ipConfig map[string]dbus.Variant @@ -1193,8 +1298,8 @@ func (c *Client) Connect( err := c.preferPhysSimOverESim(modemObj) if err != nil { c.log.Error(err) - // Continue, below we will try to change settings for the initial - // EPS bearer, which could help with the UE registration. + // Continue, below we may change the LTE attach settings and fix the failing + // registration. } } if args.SIMSlot != 0 { @@ -1218,8 +1323,8 @@ func (c *Client) Connect( modemObj, ModemStateRegistered, changePrimarySIMTimeout) if err != nil { c.log.Error(err) - // Continue, below we will try to change settings for the initial - // EPS bearer. + // Continue even if not registered, below we may change the LTE attach + // settings and fix the failing registration. } } } @@ -1231,100 +1336,69 @@ func (c *Client) Connect( args.PreferredRATs, modemPath, err) return types.WwanIPSettings{}, err } - // Make sure that there are no previously created bearers still hanging - // around. Otherwise, we may get "interface-in-use-config-match" error - // from ModemManager. - err = c.deleteBearers(modemObj) - if err != nil { - // Just log as warning and continue with the connection attempt. - c.log.Warn(err) - err = nil + // Set the initial EPS bearer (aka LTE attach) config first if provided by the user. + if args.AttachAPN != "" { + attachProps := make(map[string]interface{}) + attachProps["apn"] = args.AttachAPN + attachProps["allowed-auth"] = wwanAuthProtocolToBearerAllowedAuth( + args.AttachAuthProtocol) + if args.DecryptedAttachUsername != "" { + attachProps["user"] = args.DecryptedAttachUsername + //pragma: allowlist nextline secret + attachProps["password"] = args.DecryptedAttachPassword + } + switch args.AttachIPType { + case types.WwanIPTypeIPv4: + attachProps["ip-type"] = uint32(BearerIPFamilyIPv4) + case types.WwanIPTypeIPv4AndIPv6: + attachProps["ip-type"] = uint32(BearerIPFamilyIPv4v6) + case types.WwanIPTypeIPv6: + attachProps["ip-type"] = uint32(BearerIPFamilyIPv6) + } + err = c.callDBusMethodWithTimeout(modemObj, Modem3GPPMethodSetInitialEpsBearer, + setInitEPSBearerTimeout, nil, attachProps) + if err != nil { + err = fmt.Errorf( + "failed to set the attach APN settings for modem %s: %w", + modemObj.Path(), err) + c.log.Error(err) + return types.WwanIPSettings{}, err + } + err = c.waitForModemState( + modemObj, ModemStateRegistered, setInitEPSBearerTimeout) + if err != nil { + c.log.Error(err) + // Continue even if not registered, maybe the timeout for registration + // is not enough. Connection request will add additional timeout and the bearer + // config will stay around even after this method gives up, allowing the modem + // to continue trying to register/connect in the background. + } } // Prepare connection settings. connProps := make(map[string]interface{}) connProps["apn"] = args.APN - var allowedAuth uint32 - switch args.AuthProtocol { - case types.WwanAuthProtocolPAP: - allowedAuth = BearerAllowedAuthPap - case types.WwanAuthProtocolCHAP: - allowedAuth = BearerAllowedAuthChap - case types.WwanAuthProtocolPAPAndCHAP: - allowedAuth = BearerAllowedAuthPap | BearerAllowedAuthChap - default: - allowedAuth = BearerAllowedAuthUnknown - } - connProps["allowed-auth"] = allowedAuth + connProps["allowed-auth"] = wwanAuthProtocolToBearerAllowedAuth(args.AuthProtocol) if args.DecryptedUsername != "" { connProps["user"] = args.DecryptedUsername //pragma: allowlist nextline secret connProps["password"] = args.DecryptedPassword } connProps["allow-roaming"] = !args.ForbidRoaming - // Try to connect - first with IPv4-only IP-type. - connProps["ip-type"] = uint32(BearerIPFamilyIPv4) - ipSettings, err := c.runSimpleConnect(modemObj, connProps) - if err == nil { - return ipSettings, nil - } - origErr := fmt.Errorf("failed to connect modem %s to APN %s: %v", - modemPath, args.APN, err) - // TODO: Allow the user to configure IP-type and PDP context for the initial EPS bearer. - // For now, we will be retrying connection attempts using all three IP types: - // ipv4, ipv6, ipv4v6. However, we will not be modifying the PDP context parameters - // for the initial EPS bearer until user is able to configure them. - // - // Some background for understanding: LTE connection consists of two IP bearers, - // the initial EPS bearer and the default EPS bearer. Device must first - // establish the initial bearer (which shows as transition from the "searching" to - // "registered" state) and then it connects to a default bearer (transition from - // "registered" to "connected"). Both bearers require PDP context settings (APN, - // ip-type, potentially username/password, etc.). - // Settings for the initial bearer are typically provided by the SIM card while - // settings for the default bearer are user-configured. - // - // It is not necessarily the case that the APNs for the initial and default bearers - // are the same. We used to make that assumption but this has led to cases where modem - // was failing registration because the APN for the initial bearer was wrong. It is - // better to let the SIM card provide the PDP context setting for the initial EPS bearer. - // Furthermore, once these settings are changed, there is no straightforward method to - // revert back to the SIM-provided configuration; for more details, see the discussion here: - // https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1490#note_2628804 - // - // Users may only need to override SIM-provided settings in rather rare cases: either when - // the SIM card has incorrect configuration (we have seen this only once) or when the initial - // EPS bearer requires username/password authentication (also uncommon). Despite the rarity - // of these cases, these settings should be user-configurable. - // Please note, that the same enhancement was recently implemented in NetworkManager - // (used by Ubuntu and other major Linux distributions): - // https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1915 - err = c.deleteBearers(modemObj) - if err != nil { - // Just log as warning and continue with the next connection attempt for different - // ip-type. - c.log.Warn(err) - err = nil - } - // Try with dual-stack ip-type instead of IPv4 only. - connProps["ip-type"] = uint32(BearerIPFamilyIPv4v6) - ipSettings, err = c.runSimpleConnect(modemObj, connProps) - if err == nil { - return ipSettings, nil + switch args.IPType { + case types.WwanIPTypeIPv4: + connProps["ip-type"] = uint32(BearerIPFamilyIPv4) + case types.WwanIPTypeIPv4AndIPv6: + connProps["ip-type"] = uint32(BearerIPFamilyIPv4v6) + case types.WwanIPTypeIPv6: + connProps["ip-type"] = uint32(BearerIPFamilyIPv6) } - err = c.deleteBearers(modemObj) + ipSettings, err := c.runSimpleConnect(modemObj, connProps) if err != nil { - // Just log as warning and continue with the next connection attempt for different - // ip-type. - c.log.Warn(err) - err = nil - } - // Make the final attempt with IPv6 only. - connProps["ip-type"] = uint32(BearerIPFamilyIPv6) - ipSettings, err = c.runSimpleConnect(modemObj, connProps) - if err == nil { - return ipSettings, nil + err = fmt.Errorf("failed to connect modem %s to APN %s: %v", + modemPath, args.APN, err) + return ipSettings, err } - return ipSettings, origErr + return ipSettings, nil } func (c *Client) runSimpleConnect(modemObj dbus.BusObject, @@ -1540,19 +1614,22 @@ func (c *Client) preferPhysSimOverESim(modemObj dbus.BusObject) error { // Disconnect terminates the modem connection. // If the modem is not connected, function does nothing and returns nil. +// The config of disconnected bearer(s) is not removed. func (c *Client) Disconnect(modemPath string) error { c.mutex.Lock() defer c.mutex.Unlock() modemObj := c.conn.Object(MMInterface, dbus.ObjectPath(modemPath)) - return c.deleteBearers(modemObj) + anyBearer := dbus.ObjectPath("/") + return c.callDBusMethod(modemObj, SimpleMethodDisconnect, nil, anyBearer) } -// Delete all bearers which are associated with the given modem, except for -// the initial EPS bearer, which stays connected. -// This is used to disconnect the modem and to clean any bearers hanging -// after a previously failed connection request. -func (c *Client) deleteBearers(modemObj dbus.BusObject) error { +// DeleteBearers deletes all bearers which are associated with the given modem, +// except for the initial EPS bearer, which stays connected. +// This is used to clean up any stale bearers when the user changes the APN +// configuration. +func (c *Client) DeleteBearers(modemPath string) error { var bearers []dbus.ObjectPath + modemObj := c.conn.Object(MMInterface, dbus.ObjectPath(modemPath)) // This list does not include the initial EPS bearer details. err := getDBusProperty(c, modemObj, ModemPropertyBearers, &bearers) if err != nil { diff --git a/pkg/wwan/mmagent/mmdbus/mmapi.go b/pkg/wwan/mmagent/mmdbus/mmapi.go index 6217131d9e..530d7c20b1 100644 --- a/pkg/wwan/mmagent/mmdbus/mmapi.go +++ b/pkg/wwan/mmagent/mmdbus/mmapi.go @@ -3,6 +3,8 @@ package mmdbus +import "github.com/lf-edge/eve/pkg/pillar/types" + // Standard D-Bus interfaces const ( DBusMethodManagedObjects = "org.freedesktop.DBus.ObjectManager.GetManagedObjects" @@ -182,7 +184,7 @@ const ( Modem3GPPPropertyRegistrationState = Modem3GPPInterface + ".RegistrationState" Modem3GPPPropertyPLMN = Modem3GPPInterface + ".OperatorCode" Modem3GPPPropertyProviderName = Modem3GPPInterface + ".OperatorName" - Modem3GPPPropertyInitialEpsBearer = Modem3GPPInterface + ".InitialEpsBearerSettings" + Modem3GPPPropertyInitialEpsBearer = Modem3GPPInterface + ".InitialEpsBearer" ) // Modem registration state @@ -205,13 +207,39 @@ const ( // ModemManager/Bearer D-Bus interface // https://www.freedesktop.org/software/ModemManager/api/latest/gdbus-org.freedesktop.ModemManager1.Bearer.html# const ( - BearerInterface = MMInterface + ".Bearer" - BearerPropertyConnectedName = "Connected" - BearerPropertyConnected = BearerInterface + "." + BearerPropertyConnectedName - BearerPropertyStatsName = "Stats" - BearerPropertyStats = BearerInterface + "." + BearerPropertyStatsName - BearerPropertyIPv4Config = BearerInterface + ".Ip4Config" - BearerPropertyIPv6Config = BearerInterface + ".Ip6Config" + BearerInterface = MMInterface + ".Bearer" + BearerPropertyConnectedName = "Connected" + BearerPropertyConnected = BearerInterface + "." + BearerPropertyConnectedName + BearerPropertyStatsName = "Stats" + BearerPropertyStats = BearerInterface + "." + BearerPropertyStatsName + BearerPropertyIPv4Config = BearerInterface + ".Ip4Config" + BearerPropertyIPv6Config = BearerInterface + ".Ip6Config" + BearerPropertyType = BearerInterface + ".BearerType" + BearerPropertyConnectionError = BearerInterface + ".ConnectionError" + BearerPropertyProperties = BearerInterface + ".Properties" +) + +// Bearer Type +// https://www.freedesktop.org/software/ModemManager/api/latest/ModemManager-Flags-and-Enumerations.html#MMBearerIpFamily +const ( + // BearerTypeDefault : primary context (2G/3G) or default bearer (4G), + // defined by the user of the API. + BearerTypeDefault = 1 + // BearerTypeAttach : the initial bearer established during LTE attach procedure, + // automatically connected as long as the device is registered in the LTE network. + BearerTypeAttach = 2 + // BearerTypeDedicated : secondary context (2G/3G) or dedicated bearer (4G), + // defined by the user of the API. These bearers use the same IP address used + // by a primary context or default bearer and provide a dedicated flow for + // specific traffic with different QoS settings. + BearerTypeDedicated = 3 +) + +// Bearer APN type +// https://www.freedesktop.org/software/ModemManager/doc/latest/ModemManager/ModemManager-Flags-and-Enumerations.html#MMBearerApnType +const ( + BearerAPNTypeAttach = 1 << 0 + BearerAPNTypeDefault = 1 << 1 ) // Bearer IP method @@ -239,6 +267,22 @@ const ( BearerAllowedAuthChap = 1 << 2 // CHAP. ) +// Just a conversion method between our enum and ModemManager enum. +func wwanAuthProtocolToBearerAllowedAuth(authProto types.WwanAuthProtocol) int { + switch authProto { + case types.WwanAuthProtocolNone: + return BearerAllowedAuthNone + case types.WwanAuthProtocolPAP: + return BearerAllowedAuthPap + case types.WwanAuthProtocolCHAP: + return BearerAllowedAuthChap + case types.WwanAuthProtocolPAPAndCHAP: + return BearerAllowedAuthPap | BearerAllowedAuthChap + default: + return BearerAllowedAuthUnknown + } +} + // ModemManager/Modem/Location D-Bus interface // https://www.freedesktop.org/software/ModemManager/api/latest/gdbus-org.freedesktop.ModemManager1.Modem.Location.html const ( @@ -270,3 +314,10 @@ const ( SimpleMethodConnect = SimpleInterface + ".Connect" SimpleMethodDisconnect = SimpleInterface + ".Disconnect" ) + +// ModemManager/Modem/Modem3gpp/ProfileManager D-Bus interface +// https://www.freedesktop.org/software/ModemManager/doc/latest/ModemManager/gdbus-org.freedesktop.ModemManager1.Modem.Modem3gpp.ProfileManager.html +const ( + ProfileManagerInterface = Modem3GPPInterface + ".ProfileManager" + ProfileManagerMethodList = ProfileManagerInterface + ".List" +) From 928cda05e8d81340cd75edd8dde7d024316c102d Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Fri, 16 May 2025 09:50:20 +0200 Subject: [PATCH 7/9] Avoid Repeatedly Clearing Bearers for Disabled Modems Disabled modems (i.e., those without an attached network configuration) have their radios turned off and all bearers disconnected and cleared. However, due to a bug introduced in recent changes, the bearer clearing is now triggered on every call to reconcileModem, which runs both periodically and in response to modem state changes. This repeated clearing is unnecessary. It should occur only once, alongside turning off the radio. Signed-off-by: Milan Lenco (cherry picked from commit 7841c107e5b89ad8e68306d7718efbfc56bd8273) --- pkg/wwan/mmagent/agent.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/wwan/mmagent/agent.go b/pkg/wwan/mmagent/agent.go index d1a9540394..bbf353dee8 100644 --- a/pkg/wwan/mmagent/agent.go +++ b/pkg/wwan/mmagent/agent.go @@ -822,12 +822,10 @@ func (a *MMAgent) reconcileModem( connErrChanged = true a.logReconcileOp(modem, "close connection", opReason, connErr) } - if connErr == nil { + if connErr == nil && modem.Status.Module.OpMode != types.WwanOpModeRadioOff { // Not a necessary step hence we do not touch connErr if it fails. err := a.mmClient.DeleteBearers(modem.Path) a.logReconcileOp(modem, "delete bearers", opReason, err) - } - if connErr == nil && modem.Status.Module.OpMode != types.WwanOpModeRadioOff { // Note that we disable radio function of all unmanaged modems. connErr = a.mmClient.DisableRadio(modem.Path) connErrChanged = true From 9cbb025ad1c423533cfad31bfc06e7b3fc82ab5d Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Mon, 28 Apr 2025 11:44:25 +0200 Subject: [PATCH 8/9] Add documentation for the LTE Attach Configuration Explain in which cases it may be useful for the user to configure LTE attach settings. Signed-off-by: Milan Lenco (cherry picked from commit c316cc6b6896e63de9113bf937d80505e4a6d196) --- .codespellrc | 2 +- docs/WIRELESS.md | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.codespellrc b/.codespellrc index 84994b4725..745802d5c4 100644 --- a/.codespellrc +++ b/.codespellrc @@ -4,4 +4,4 @@ [codespell] skip = ./.git/*,*/vendor/*,./conf/v2tlsbaseroot-certificates.pem,./pkg/gpt-tools/patches/*,./pkg/new-kernel/*,./pkg/kernel/*,./pkg/fw/* -ignore-words-list = uptodate,synopsys,crate +ignore-words-list = uptodate,synopsys,crate,UE diff --git a/docs/WIRELESS.md b/docs/WIRELESS.md index fa0b7e4a68..deafc35c51 100644 --- a/docs/WIRELESS.md +++ b/docs/WIRELESS.md @@ -93,6 +93,23 @@ toggling roaming on or off, designating preferred network operators, and establi of preference for Radio Access Technologies (RATs). This comprehensive API empowers users to tailor cellular connectivity settings to suit various network scenarios and SIM card configurations. +#### LTE Attach configuration + +LTE connection consists of two IP bearers, the initial (aka attach) EPS bearer and the default +EPS bearer. Device must first establish the initial bearer (LTE attach procedure, which +ModemManager shows as a transition from the `enabled`/`searching` to `registered` modem state) +and then it connects to a default bearer (transition from `registered` to `connected`). +Both bearers require PDP (Packet Data Protocol) context settings (`APN`, `ip-type`, potentially +`username`/`password`, etc.). Settings for the initial bearer are typically provided by the modem +profiles or the network, while settings for the default bearer are user-configured. +However, there are cases, especially with private cellular networks or when changing SIM card +and moving to another operator for which the modem was not pre-configured, where the modem +may not provide the correct APN settings for the attach procedure and it will fail to register +into the network. In these cases, the user can configure PDP settings within the `CellularAccessPoint` +for the attach bearer (see the `attach_*` protobuf fields). All of these fields are optional. +If they are not specified, EVE will not send any attach bearer configuration into the modem, +leaving it to the modem profiles or the network to determine the appropriate settings. + ### Cellular info and metrics The list of all cellular modems visible to the host (incl. the unused ones, without network config attached), From 559e4ca09aefc3ef259528915d86c1592eb9d146 Mon Sep 17 00:00:00 2001 From: Milan Lenco Date: Wed, 21 May 2025 16:03:43 +0200 Subject: [PATCH 9/9] Fix Bearer ConnectionError type Bearer's ConnectionError is represented in ModemManager DBus API as a list of two fields: DBus Error Name and Error message. The method for retreiveing this propery expects generic list []interface{}, which will have length 2 and contain 2 strings. See: https://www.freedesktop.org/software/ModemManager/doc/latest/ModemManager/gdbus-org.freedesktop.ModemManager1.Bearer.html#gdbus-property-org-freedesktop-ModemManager1-Bearer.ConnectionError This commit fixes the previous code which assumed that struct with the two strings is returned. Signed-off-by: Milan Lenco --- pkg/wwan/mmagent/mmdbus/client.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/pkg/wwan/mmagent/mmdbus/client.go b/pkg/wwan/mmagent/mmdbus/client.go index 95ac7a8dc9..3079e5c8ba 100644 --- a/pkg/wwan/mmagent/mmdbus/client.go +++ b/pkg/wwan/mmagent/mmdbus/client.go @@ -777,17 +777,18 @@ func (c *Client) getBearerStatus(bearerObj dbus.BusObject) (bearer types.WwanBea bearer.ConnectedAt = uint64(time.Now().Unix()) - uint64(value) } } - connectionError := struct { - DBusErrName string - ErrMessage string - }{} + + var connectionError []interface{} _ = getDBusProperty(c, bearerObj, BearerPropertyConnectionError, &connectionError) - if connectionError.DBusErrName != "" { - if connectionError.ErrMessage != "" { - bearer.ConnectionError = connectionError.DBusErrName + ": " + - connectionError.ErrMessage - } else { - bearer.ConnectionError = connectionError.DBusErrName + if len(connectionError) == 2 { + dbusErrName, ok1 := connectionError[0].(string) + errMessage, ok2 := connectionError[1].(string) + if ok1 && ok2 && dbusErrName != "" { + if errMessage != "" { + bearer.ConnectionError = dbusErrName + ": " + errMessage + } else { + bearer.ConnectionError = dbusErrName + } } } var bearerProperties map[string]dbus.Variant