commit ea4bde5f1831b651791caeaf373d7f6b0ad7708c from: Oliver Lowe date: Tue Jan 03 01:46:27 2023 UTC update to firmware api version 5 commit - c0fbba878a5f41c852d4e4b03127be7590fbbf35 commit + ea4bde5f1831b651791caeaf373d7f6b0ad7708c blob - 5788340e22b05d662638bb8a941dffbe8e5afb40 blob + 439b49b9f14e187ea50d7935017c02b225f96ae0 --- device/command.pb.go +++ device/command.pb.go @@ -23,34 +23,58 @@ const ( type Capability int32 const ( - Capability_READ Capability = 0 - Capability_WRITE Capability = 1 - Capability_DEBUG Capability = 2 - Capability_ADMIN Capability = 3 - Capability_SETUP Capability = 4 - Capability_SET_SKU Capability = 5 - Capability_REFRESH Capability = 6 + Capability_READ Capability = 0 + Capability_READ_INTERNAL Capability = 13 + Capability_READ_PRIVATE Capability = 7 + Capability_LOCAL Capability = 14 + Capability_WRITE Capability = 1 + Capability_WRITE_PERSISTENT Capability = 11 + Capability_DEBUG Capability = 2 + Capability_ADMIN Capability = 3 + Capability_SETUP Capability = 4 + Capability_SET_SKU Capability = 5 + Capability_REFRESH Capability = 6 + Capability_FUSE Capability = 8 + Capability_RESET Capability = 9 + Capability_TEST Capability = 10 + Capability_SSH Capability = 12 ) // Enum value maps for Capability. var ( Capability_name = map[int32]string{ - 0: "READ", - 1: "WRITE", - 2: "DEBUG", - 3: "ADMIN", - 4: "SETUP", - 5: "SET_SKU", - 6: "REFRESH", + 0: "READ", + 13: "READ_INTERNAL", + 7: "READ_PRIVATE", + 14: "LOCAL", + 1: "WRITE", + 11: "WRITE_PERSISTENT", + 2: "DEBUG", + 3: "ADMIN", + 4: "SETUP", + 5: "SET_SKU", + 6: "REFRESH", + 8: "FUSE", + 9: "RESET", + 10: "TEST", + 12: "SSH", } Capability_value = map[string]int32{ - "READ": 0, - "WRITE": 1, - "DEBUG": 2, - "ADMIN": 3, - "SETUP": 4, - "SET_SKU": 5, - "REFRESH": 6, + "READ": 0, + "READ_INTERNAL": 13, + "READ_PRIVATE": 7, + "LOCAL": 14, + "WRITE": 1, + "WRITE_PERSISTENT": 11, + "DEBUG": 2, + "ADMIN": 3, + "SETUP": 4, + "SET_SKU": 5, + "REFRESH": 6, + "FUSE": 8, + "RESET": 9, + "TEST": 10, + "SSH": 12, } ) @@ -148,15 +172,22 @@ var file_spacex_api_device_command_proto_rawDesc = []b 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2a, 0x5c, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, - 0x55, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x03, 0x12, - 0x09, 0x0a, 0x05, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, - 0x54, 0x5f, 0x53, 0x4b, 0x55, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x46, 0x52, 0x45, - 0x53, 0x48, 0x10, 0x06, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x2a, 0xca, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41, 0x44, 0x10, 0x00, 0x12, + 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, + 0x10, 0x0d, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x41, 0x44, 0x5f, 0x50, 0x52, 0x49, 0x56, 0x41, + 0x54, 0x45, 0x10, 0x07, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x0e, 0x12, + 0x09, 0x0a, 0x05, 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x57, 0x52, + 0x49, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x52, 0x53, 0x49, 0x53, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x0b, + 0x12, 0x09, 0x0a, 0x05, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x41, + 0x44, 0x4d, 0x49, 0x4e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, + 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x54, 0x5f, 0x53, 0x4b, 0x55, 0x10, 0x05, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x45, 0x46, 0x52, 0x45, 0x53, 0x48, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x46, + 0x55, 0x53, 0x45, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x09, + 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, + 0x48, 0x10, 0x0c, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( blob - d22feeb981c1a4e49c2b326964d964127318d198 blob + 22c28a309374da79f29cb801c643e872de7ca5df --- device/common.pb.go +++ device/common.pb.go @@ -20,6 +20,70 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type BootReason int32 + +const ( + BootReason_BOOT_REASON_UNKNOWN BootReason = 0 + BootReason_FORGOTTEN BootReason = 1 + BootReason_POWER_CYCLE BootReason = 2 + BootReason_COMMAND BootReason = 3 + BootReason_SOFTWARE_UPDATE BootReason = 4 + BootReason_CONFIG_UPDATE BootReason = 5 + BootReason_UPTIME_FDIR BootReason = 6 + BootReason_REPEATER_FDIR BootReason = 7 +) + +// Enum value maps for BootReason. +var ( + BootReason_name = map[int32]string{ + 0: "BOOT_REASON_UNKNOWN", + 1: "FORGOTTEN", + 2: "POWER_CYCLE", + 3: "COMMAND", + 4: "SOFTWARE_UPDATE", + 5: "CONFIG_UPDATE", + 6: "UPTIME_FDIR", + 7: "REPEATER_FDIR", + } + BootReason_value = map[string]int32{ + "BOOT_REASON_UNKNOWN": 0, + "FORGOTTEN": 1, + "POWER_CYCLE": 2, + "COMMAND": 3, + "SOFTWARE_UPDATE": 4, + "CONFIG_UPDATE": 5, + "UPTIME_FDIR": 6, + "REPEATER_FDIR": 7, + } +) + +func (x BootReason) Enum() *BootReason { + p := new(BootReason) + *p = x + return p +} + +func (x BootReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BootReason) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_common_proto_enumTypes[0].Descriptor() +} + +func (BootReason) Type() protoreflect.EnumType { + return &file_spacex_api_device_common_proto_enumTypes[0] +} + +func (x BootReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BootReason.Descriptor instead. +func (BootReason) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{0} +} + type EthernetNetworkInterface_Duplex int32 const ( @@ -53,11 +117,11 @@ func (x EthernetNetworkInterface_Duplex) String() stri } func (EthernetNetworkInterface_Duplex) Descriptor() protoreflect.EnumDescriptor { - return file_spacex_api_device_common_proto_enumTypes[0].Descriptor() + return file_spacex_api_device_common_proto_enumTypes[1].Descriptor() } func (EthernetNetworkInterface_Duplex) Type() protoreflect.EnumType { - return &file_spacex_api_device_common_proto_enumTypes[0] + return &file_spacex_api_device_common_proto_enumTypes[1] } func (x EthernetNetworkInterface_Duplex) Number() protoreflect.EnumNumber { @@ -66,7 +130,7 @@ func (x EthernetNetworkInterface_Duplex) Number() prot // Deprecated: Use EthernetNetworkInterface_Duplex.Descriptor instead. func (EthernetNetworkInterface_Duplex) EnumDescriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{11, 0} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{12, 0} } type DeviceInfo struct { @@ -74,10 +138,19 @@ type DeviceInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - HardwareVersion string `protobuf:"bytes,2,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"` - SoftwareVersion string `protobuf:"bytes,3,opt,name=software_version,json=softwareVersion,proto3" json:"software_version,omitempty"` - CountryCode string `protobuf:"bytes,4,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + HardwareVersion string `protobuf:"bytes,2,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"` + SoftwareVersion string `protobuf:"bytes,3,opt,name=software_version,json=softwareVersion,proto3" json:"software_version,omitempty"` + ManufacturedVersion string `protobuf:"bytes,11,opt,name=manufactured_version,json=manufacturedVersion,proto3" json:"manufactured_version,omitempty"` + GenerationNumber int64 `protobuf:"varint,12,opt,name=generation_number,json=generationNumber,proto3" json:"generation_number,omitempty"` + CountryCode string `protobuf:"bytes,4,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + UtcOffsetS int32 `protobuf:"varint,5,opt,name=utc_offset_s,json=utcOffsetS,proto3" json:"utc_offset_s,omitempty"` + SoftwarePartitionsEqual bool `protobuf:"varint,6,opt,name=software_partitions_equal,json=softwarePartitionsEqual,proto3" json:"software_partitions_equal,omitempty"` + IsDev bool `protobuf:"varint,7,opt,name=is_dev,json=isDev,proto3" json:"is_dev,omitempty"` + Bootcount int32 `protobuf:"varint,8,opt,name=bootcount,proto3" json:"bootcount,omitempty"` + AntiRollbackVersion int32 `protobuf:"varint,9,opt,name=anti_rollback_version,json=antiRollbackVersion,proto3" json:"anti_rollback_version,omitempty"` + IsHitl bool `protobuf:"varint,10,opt,name=is_hitl,json=isHitl,proto3" json:"is_hitl,omitempty"` + Boot *BootInfo `protobuf:"bytes,1001,opt,name=boot,proto3" json:"boot,omitempty"` } func (x *DeviceInfo) Reset() { @@ -133,6 +206,20 @@ func (x *DeviceInfo) GetSoftwareVersion() string { return "" } +func (x *DeviceInfo) GetManufacturedVersion() string { + if x != nil { + return x.ManufacturedVersion + } + return "" +} + +func (x *DeviceInfo) GetGenerationNumber() int64 { + if x != nil { + return x.GenerationNumber + } + return 0 +} + func (x *DeviceInfo) GetCountryCode() string { if x != nil { return x.CountryCode @@ -140,6 +227,55 @@ func (x *DeviceInfo) GetCountryCode() string { return "" } +func (x *DeviceInfo) GetUtcOffsetS() int32 { + if x != nil { + return x.UtcOffsetS + } + return 0 +} + +func (x *DeviceInfo) GetSoftwarePartitionsEqual() bool { + if x != nil { + return x.SoftwarePartitionsEqual + } + return false +} + +func (x *DeviceInfo) GetIsDev() bool { + if x != nil { + return x.IsDev + } + return false +} + +func (x *DeviceInfo) GetBootcount() int32 { + if x != nil { + return x.Bootcount + } + return 0 +} + +func (x *DeviceInfo) GetAntiRollbackVersion() int32 { + if x != nil { + return x.AntiRollbackVersion + } + return 0 +} + +func (x *DeviceInfo) GetIsHitl() bool { + if x != nil { + return x.IsHitl + } + return false +} + +func (x *DeviceInfo) GetBoot() *BootInfo { + if x != nil { + return x.Boot + } + return nil +} + type DeviceState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -331,7 +467,78 @@ func (x *GetNextIdResponse) GetId() uint64 { func (x *GetNextIdResponse) GetEpochId() uint64 { if x != nil { return x.EpochId + } + return 0 +} + +type BootInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CountByReason map[int32]int32 `protobuf:"bytes,1,rep,name=count_by_reason,json=countByReason,proto3" json:"count_by_reason,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + CountByReasonDelta map[int32]int32 `protobuf:"bytes,4,rep,name=count_by_reason_delta,json=countByReasonDelta,proto3" json:"count_by_reason_delta,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + LastReason BootReason `protobuf:"varint,2,opt,name=last_reason,json=lastReason,proto3,enum=SpaceX.API.Device.BootReason" json:"last_reason,omitempty"` + LastCount int32 `protobuf:"varint,3,opt,name=last_count,json=lastCount,proto3" json:"last_count,omitempty"` +} + +func (x *BootInfo) Reset() { + *x = BootInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BootInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BootInfo) ProtoMessage() {} + +func (x *BootInfo) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[5] + 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 BootInfo.ProtoReflect.Descriptor instead. +func (*BootInfo) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{5} +} + +func (x *BootInfo) GetCountByReason() map[int32]int32 { + if x != nil { + return x.CountByReason } + return nil +} + +func (x *BootInfo) GetCountByReasonDelta() map[int32]int32 { + if x != nil { + return x.CountByReasonDelta + } + return nil +} + +func (x *BootInfo) GetLastReason() BootReason { + if x != nil { + return x.LastReason + } + return BootReason_BOOT_REASON_UNKNOWN +} + +func (x *BootInfo) GetLastCount() int32 { + if x != nil { + return x.LastCount + } return 0 } @@ -348,7 +555,7 @@ type PingTarget struct { func (x *PingTarget) Reset() { *x = PingTarget{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[5] + mi := &file_spacex_api_device_common_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -361,7 +568,7 @@ func (x *PingTarget) String() string { func (*PingTarget) ProtoMessage() {} func (x *PingTarget) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[5] + mi := &file_spacex_api_device_common_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -374,7 +581,7 @@ func (x *PingTarget) ProtoReflect() protoreflect.Messa // Deprecated: Use PingTarget.ProtoReflect.Descriptor instead. func (*PingTarget) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{5} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{6} } func (x *PingTarget) GetService() string { @@ -411,7 +618,7 @@ type PingResult struct { func (x *PingResult) Reset() { *x = PingResult{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[6] + mi := &file_spacex_api_device_common_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -424,7 +631,7 @@ func (x *PingResult) String() string { func (*PingResult) ProtoMessage() {} func (x *PingResult) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[6] + mi := &file_spacex_api_device_common_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -437,7 +644,7 @@ func (x *PingResult) ProtoReflect() protoreflect.Messa // Deprecated: Use PingResult.ProtoReflect.Descriptor instead. func (*PingResult) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{6} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{7} } func (x *PingResult) GetTarget() *PingTarget { @@ -474,7 +681,7 @@ type BondingChallenge struct { func (x *BondingChallenge) Reset() { *x = BondingChallenge{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[7] + mi := &file_spacex_api_device_common_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -487,7 +694,7 @@ func (x *BondingChallenge) String() string { func (*BondingChallenge) ProtoMessage() {} func (x *BondingChallenge) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[7] + mi := &file_spacex_api_device_common_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,7 +707,7 @@ func (x *BondingChallenge) ProtoReflect() protoreflect // Deprecated: Use BondingChallenge.ProtoReflect.Descriptor instead. func (*BondingChallenge) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{7} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{8} } func (x *BondingChallenge) GetDishId() string { @@ -535,7 +742,7 @@ type AuthenticateRequest struct { func (x *AuthenticateRequest) Reset() { *x = AuthenticateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[8] + mi := &file_spacex_api_device_common_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -548,7 +755,7 @@ func (x *AuthenticateRequest) String() string { func (*AuthenticateRequest) ProtoMessage() {} func (x *AuthenticateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[8] + mi := &file_spacex_api_device_common_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -561,7 +768,7 @@ func (x *AuthenticateRequest) ProtoReflect() protorefl // Deprecated: Use AuthenticateRequest.ProtoReflect.Descriptor instead. func (*AuthenticateRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{8} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{9} } func (x *AuthenticateRequest) GetChallenge() *SignedData { @@ -583,7 +790,7 @@ type ChallengeResponse struct { func (x *ChallengeResponse) Reset() { *x = ChallengeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[9] + mi := &file_spacex_api_device_common_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -596,7 +803,7 @@ func (x *ChallengeResponse) String() string { func (*ChallengeResponse) ProtoMessage() {} func (x *ChallengeResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[9] + mi := &file_spacex_api_device_common_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -609,7 +816,7 @@ func (x *ChallengeResponse) ProtoReflect() protoreflec // Deprecated: Use ChallengeResponse.ProtoReflect.Descriptor instead. func (*ChallengeResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{9} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{10} } func (x *ChallengeResponse) GetSignature() []byte { @@ -632,18 +839,20 @@ type NetworkInterface struct { unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Up bool `protobuf:"varint,4,opt,name=up,proto3" json:"up,omitempty"` RxStats *NetworkInterface_RxStats `protobuf:"bytes,2,opt,name=rx_stats,json=rxStats,proto3" json:"rx_stats,omitempty"` TxStats *NetworkInterface_TxStats `protobuf:"bytes,3,opt,name=tx_stats,json=txStats,proto3" json:"tx_stats,omitempty"` // Types that are assignable to Interface: // // *NetworkInterface_Ethernet + // *NetworkInterface_Wifi Interface isNetworkInterface_Interface `protobuf_oneof:"interface"` } func (x *NetworkInterface) Reset() { *x = NetworkInterface{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[10] + mi := &file_spacex_api_device_common_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -656,7 +865,7 @@ func (x *NetworkInterface) String() string { func (*NetworkInterface) ProtoMessage() {} func (x *NetworkInterface) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[10] + mi := &file_spacex_api_device_common_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -669,7 +878,7 @@ func (x *NetworkInterface) ProtoReflect() protoreflect // Deprecated: Use NetworkInterface.ProtoReflect.Descriptor instead. func (*NetworkInterface) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{10} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{11} } func (x *NetworkInterface) GetName() string { @@ -679,6 +888,13 @@ func (x *NetworkInterface) GetName() string { return "" } +func (x *NetworkInterface) GetUp() bool { + if x != nil { + return x.Up + } + return false +} + func (x *NetworkInterface) GetRxStats() *NetworkInterface_RxStats { if x != nil { return x.RxStats @@ -707,6 +923,13 @@ func (x *NetworkInterface) GetEthernet() *EthernetNetw return nil } +func (x *NetworkInterface) GetWifi() *WifiNetworkInterface { + if x, ok := x.GetInterface().(*NetworkInterface_Wifi); ok { + return x.Wifi + } + return nil +} + type isNetworkInterface_Interface interface { isNetworkInterface_Interface() } @@ -715,8 +938,14 @@ type NetworkInterface_Ethernet struct { Ethernet *EthernetNetworkInterface `protobuf:"bytes,1000,opt,name=ethernet,proto3,oneof"` } +type NetworkInterface_Wifi struct { + Wifi *WifiNetworkInterface `protobuf:"bytes,1001,opt,name=wifi,proto3,oneof"` +} + func (*NetworkInterface_Ethernet) isNetworkInterface_Interface() {} +func (*NetworkInterface_Wifi) isNetworkInterface_Interface() {} + type EthernetNetworkInterface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -731,7 +960,7 @@ type EthernetNetworkInterface struct { func (x *EthernetNetworkInterface) Reset() { *x = EthernetNetworkInterface{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[11] + mi := &file_spacex_api_device_common_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -744,7 +973,7 @@ func (x *EthernetNetworkInterface) String() string { func (*EthernetNetworkInterface) ProtoMessage() {} func (x *EthernetNetworkInterface) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[11] + mi := &file_spacex_api_device_common_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -757,7 +986,7 @@ func (x *EthernetNetworkInterface) ProtoReflect() prot // Deprecated: Use EthernetNetworkInterface.ProtoReflect.Descriptor instead. func (*EthernetNetworkInterface) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{11} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{12} } func (x *EthernetNetworkInterface) GetLinkDetected() bool { @@ -786,8 +1015,447 @@ func (x *EthernetNetworkInterface) GetDuplex() Etherne return x.Duplex } return EthernetNetworkInterface_UNKNOWN +} + +type WifiNetworkInterface struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ThermalStatus *WifiNetworkInterface_ThermalStatus `protobuf:"bytes,1,opt,name=thermal_status,json=thermalStatus,proto3" json:"thermal_status,omitempty"` + InvalidPacketCounts *WifiNetworkInterface_InvalidPacketCounts `protobuf:"bytes,2,opt,name=invalid_packet_counts,json=invalidPacketCounts,proto3" json:"invalid_packet_counts,omitempty"` + Channel uint32 `protobuf:"varint,3,opt,name=channel,proto3" json:"channel,omitempty"` + MissedBeacons uint32 `protobuf:"varint,8,opt,name=missed_beacons,json=missedBeacons,proto3" json:"missed_beacons,omitempty"` + LinkQuality float64 `protobuf:"fixed64,4,opt,name=link_quality,json=linkQuality,proto3" json:"link_quality,omitempty"` + SignalLevel float64 `protobuf:"fixed64,5,opt,name=signal_level,json=signalLevel,proto3" json:"signal_level,omitempty"` + NoiseLevel float64 `protobuf:"fixed64,6,opt,name=noise_level,json=noiseLevel,proto3" json:"noise_level,omitempty"` + AntennaeStatus *WifiNetworkInterface_AntennaeStatus `protobuf:"bytes,9,opt,name=antennae_status,json=antennaeStatus,proto3" json:"antennae_status,omitempty"` } +func (x *WifiNetworkInterface) Reset() { + *x = WifiNetworkInterface{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNetworkInterface) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNetworkInterface) ProtoMessage() {} + +func (x *WifiNetworkInterface) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[13] + 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 WifiNetworkInterface.ProtoReflect.Descriptor instead. +func (*WifiNetworkInterface) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{13} +} + +func (x *WifiNetworkInterface) GetThermalStatus() *WifiNetworkInterface_ThermalStatus { + if x != nil { + return x.ThermalStatus + } + return nil +} + +func (x *WifiNetworkInterface) GetInvalidPacketCounts() *WifiNetworkInterface_InvalidPacketCounts { + if x != nil { + return x.InvalidPacketCounts + } + return nil +} + +func (x *WifiNetworkInterface) GetChannel() uint32 { + if x != nil { + return x.Channel + } + return 0 +} + +func (x *WifiNetworkInterface) GetMissedBeacons() uint32 { + if x != nil { + return x.MissedBeacons + } + return 0 +} + +func (x *WifiNetworkInterface) GetLinkQuality() float64 { + if x != nil { + return x.LinkQuality + } + return 0 +} + +func (x *WifiNetworkInterface) GetSignalLevel() float64 { + if x != nil { + return x.SignalLevel + } + return 0 +} + +func (x *WifiNetworkInterface) GetNoiseLevel() float64 { + if x != nil { + return x.NoiseLevel + } + return 0 +} + +func (x *WifiNetworkInterface) GetAntennaeStatus() *WifiNetworkInterface_AntennaeStatus { + if x != nil { + return x.AntennaeStatus + } + return nil +} + +type LLAPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lat float64 `protobuf:"fixed64,1,opt,name=lat,proto3" json:"lat,omitempty"` + Lon float64 `protobuf:"fixed64,2,opt,name=lon,proto3" json:"lon,omitempty"` + Alt float64 `protobuf:"fixed64,3,opt,name=alt,proto3" json:"alt,omitempty"` +} + +func (x *LLAPosition) Reset() { + *x = LLAPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LLAPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LLAPosition) ProtoMessage() {} + +func (x *LLAPosition) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[14] + 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 LLAPosition.ProtoReflect.Descriptor instead. +func (*LLAPosition) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{14} +} + +func (x *LLAPosition) GetLat() float64 { + if x != nil { + return x.Lat + } + return 0 +} + +func (x *LLAPosition) GetLon() float64 { + if x != nil { + return x.Lon + } + return 0 +} + +func (x *LLAPosition) GetAlt() float64 { + if x != nil { + return x.Alt + } + return 0 +} + +type ECEFPosition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + X float64 `protobuf:"fixed64,1,opt,name=x,proto3" json:"x,omitempty"` + Y float64 `protobuf:"fixed64,2,opt,name=y,proto3" json:"y,omitempty"` + Z float64 `protobuf:"fixed64,3,opt,name=z,proto3" json:"z,omitempty"` +} + +func (x *ECEFPosition) Reset() { + *x = ECEFPosition{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ECEFPosition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ECEFPosition) ProtoMessage() {} + +func (x *ECEFPosition) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[15] + 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 ECEFPosition.ProtoReflect.Descriptor instead. +func (*ECEFPosition) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{15} +} + +func (x *ECEFPosition) GetX() float64 { + if x != nil { + return x.X + } + return 0 +} + +func (x *ECEFPosition) GetY() float64 { + if x != nil { + return x.Y + } + return 0 +} + +func (x *ECEFPosition) GetZ() float64 { + if x != nil { + return x.Z + } + return 0 +} + +type InitiateRemoteSshRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *InitiateRemoteSshRequest) Reset() { + *x = InitiateRemoteSshRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitiateRemoteSshRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitiateRemoteSshRequest) ProtoMessage() {} + +func (x *InitiateRemoteSshRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[16] + 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 InitiateRemoteSshRequest.ProtoReflect.Descriptor instead. +func (*InitiateRemoteSshRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{16} +} + +type InitiateRemoteSshResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + Stsafe []byte `protobuf:"bytes,3,opt,name=stsafe,proto3" json:"stsafe,omitempty"` +} + +func (x *InitiateRemoteSshResponse) Reset() { + *x = InitiateRemoteSshResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *InitiateRemoteSshResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InitiateRemoteSshResponse) ProtoMessage() {} + +func (x *InitiateRemoteSshResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[17] + 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 InitiateRemoteSshResponse.ProtoReflect.Descriptor instead. +func (*InitiateRemoteSshResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{17} +} + +func (x *InitiateRemoteSshResponse) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +func (x *InitiateRemoteSshResponse) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *InitiateRemoteSshResponse) GetStsafe() []byte { + if x != nil { + return x.Stsafe + } + return nil +} + +type SoftwareUpdateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StreamId uint64 `protobuf:"varint,1,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Open bool `protobuf:"varint,3,opt,name=open,proto3" json:"open,omitempty"` + Close bool `protobuf:"varint,4,opt,name=close,proto3" json:"close,omitempty"` +} + +func (x *SoftwareUpdateRequest) Reset() { + *x = SoftwareUpdateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SoftwareUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SoftwareUpdateRequest) ProtoMessage() {} + +func (x *SoftwareUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[18] + 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 SoftwareUpdateRequest.ProtoReflect.Descriptor instead. +func (*SoftwareUpdateRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{18} +} + +func (x *SoftwareUpdateRequest) GetStreamId() uint64 { + if x != nil { + return x.StreamId + } + return 0 +} + +func (x *SoftwareUpdateRequest) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *SoftwareUpdateRequest) GetOpen() bool { + if x != nil { + return x.Open + } + return false +} + +func (x *SoftwareUpdateRequest) GetClose() bool { + if x != nil { + return x.Close + } + return false +} + +type SoftwareUpdateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SoftwareUpdateResponse) Reset() { + *x = SoftwareUpdateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SoftwareUpdateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SoftwareUpdateResponse) ProtoMessage() {} + +func (x *SoftwareUpdateResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[19] + 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 SoftwareUpdateResponse.ProtoReflect.Descriptor instead. +func (*SoftwareUpdateResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{19} +} + type NetworkInterface_RxStats struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -801,7 +1469,7 @@ type NetworkInterface_RxStats struct { func (x *NetworkInterface_RxStats) Reset() { *x = NetworkInterface_RxStats{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[12] + mi := &file_spacex_api_device_common_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -814,7 +1482,7 @@ func (x *NetworkInterface_RxStats) String() string { func (*NetworkInterface_RxStats) ProtoMessage() {} func (x *NetworkInterface_RxStats) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[12] + mi := &file_spacex_api_device_common_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -827,7 +1495,7 @@ func (x *NetworkInterface_RxStats) ProtoReflect() prot // Deprecated: Use NetworkInterface_RxStats.ProtoReflect.Descriptor instead. func (*NetworkInterface_RxStats) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{10, 0} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{11, 0} } func (x *NetworkInterface_RxStats) GetBytes() uint64 { @@ -863,7 +1531,7 @@ type NetworkInterface_TxStats struct { func (x *NetworkInterface_TxStats) Reset() { *x = NetworkInterface_TxStats{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_common_proto_msgTypes[13] + mi := &file_spacex_api_device_common_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -876,7 +1544,7 @@ func (x *NetworkInterface_TxStats) String() string { func (*NetworkInterface_TxStats) ProtoMessage() {} func (x *NetworkInterface_TxStats) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_common_proto_msgTypes[13] + mi := &file_spacex_api_device_common_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -889,7 +1557,7 @@ func (x *NetworkInterface_TxStats) ProtoReflect() prot // Deprecated: Use NetworkInterface_TxStats.ProtoReflect.Descriptor instead. func (*NetworkInterface_TxStats) Descriptor() ([]byte, []int) { - return file_spacex_api_device_common_proto_rawDescGZIP(), []int{10, 1} + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{11, 1} } func (x *NetworkInterface_TxStats) GetBytes() uint64 { @@ -906,110 +1574,484 @@ func (x *NetworkInterface_TxStats) GetPackets() uint64 return 0 } +type WifiNetworkInterface_ThermalStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Level uint32 `protobuf:"varint,1,opt,name=level,proto3" json:"level,omitempty"` + // Deprecated: Do not use. + Temp uint32 `protobuf:"varint,2,opt,name=temp,proto3" json:"temp,omitempty"` + Temp2 float64 `protobuf:"fixed64,3,opt,name=temp2,proto3" json:"temp2,omitempty"` + PowerReduction uint32 `protobuf:"varint,4,opt,name=power_reduction,json=powerReduction,proto3" json:"power_reduction,omitempty"` + DutyCycle uint32 `protobuf:"varint,5,opt,name=duty_cycle,json=dutyCycle,proto3" json:"duty_cycle,omitempty"` +} + +func (x *WifiNetworkInterface_ThermalStatus) Reset() { + *x = WifiNetworkInterface_ThermalStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNetworkInterface_ThermalStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNetworkInterface_ThermalStatus) ProtoMessage() {} + +func (x *WifiNetworkInterface_ThermalStatus) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_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 WifiNetworkInterface_ThermalStatus.ProtoReflect.Descriptor instead. +func (*WifiNetworkInterface_ThermalStatus) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{13, 0} +} + +func (x *WifiNetworkInterface_ThermalStatus) GetLevel() uint32 { + if x != nil { + return x.Level + } + return 0 +} + +// Deprecated: Do not use. +func (x *WifiNetworkInterface_ThermalStatus) GetTemp() uint32 { + if x != nil { + return x.Temp + } + return 0 +} + +func (x *WifiNetworkInterface_ThermalStatus) GetTemp2() float64 { + if x != nil { + return x.Temp2 + } + return 0 +} + +func (x *WifiNetworkInterface_ThermalStatus) GetPowerReduction() uint32 { + if x != nil { + return x.PowerReduction + } + return 0 +} + +func (x *WifiNetworkInterface_ThermalStatus) GetDutyCycle() uint32 { + if x != nil { + return x.DutyCycle + } + return 0 +} + +type WifiNetworkInterface_InvalidPacketCounts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RxInvalidNwid uint32 `protobuf:"varint,1,opt,name=rx_invalid_nwid,json=rxInvalidNwid,proto3" json:"rx_invalid_nwid,omitempty"` + RxInvalidCrypt uint32 `protobuf:"varint,2,opt,name=rx_invalid_crypt,json=rxInvalidCrypt,proto3" json:"rx_invalid_crypt,omitempty"` + RxInvalidFrag uint32 `protobuf:"varint,3,opt,name=rx_invalid_frag,json=rxInvalidFrag,proto3" json:"rx_invalid_frag,omitempty"` + TxExcessiveRetries uint32 `protobuf:"varint,4,opt,name=tx_excessive_retries,json=txExcessiveRetries,proto3" json:"tx_excessive_retries,omitempty"` + InvalidMisc uint32 `protobuf:"varint,5,opt,name=invalid_misc,json=invalidMisc,proto3" json:"invalid_misc,omitempty"` +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) Reset() { + *x = WifiNetworkInterface_InvalidPacketCounts{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNetworkInterface_InvalidPacketCounts) ProtoMessage() {} + +func (x *WifiNetworkInterface_InvalidPacketCounts) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[25] + 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 WifiNetworkInterface_InvalidPacketCounts.ProtoReflect.Descriptor instead. +func (*WifiNetworkInterface_InvalidPacketCounts) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{13, 1} +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidNwid() uint32 { + if x != nil { + return x.RxInvalidNwid + } + return 0 +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidCrypt() uint32 { + if x != nil { + return x.RxInvalidCrypt + } + return 0 +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) GetRxInvalidFrag() uint32 { + if x != nil { + return x.RxInvalidFrag + } + return 0 +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) GetTxExcessiveRetries() uint32 { + if x != nil { + return x.TxExcessiveRetries + } + return 0 +} + +func (x *WifiNetworkInterface_InvalidPacketCounts) GetInvalidMisc() uint32 { + if x != nil { + return x.InvalidMisc + } + return 0 +} + +type WifiNetworkInterface_AntennaeStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Rssi1 float32 `protobuf:"fixed32,1,opt,name=rssi1,proto3" json:"rssi1,omitempty"` + Rssi2 float32 `protobuf:"fixed32,2,opt,name=rssi2,proto3" json:"rssi2,omitempty"` + Rssi3 float32 `protobuf:"fixed32,3,opt,name=rssi3,proto3" json:"rssi3,omitempty"` +} + +func (x *WifiNetworkInterface_AntennaeStatus) Reset() { + *x = WifiNetworkInterface_AntennaeStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_common_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNetworkInterface_AntennaeStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNetworkInterface_AntennaeStatus) ProtoMessage() {} + +func (x *WifiNetworkInterface_AntennaeStatus) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_common_proto_msgTypes[26] + 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 WifiNetworkInterface_AntennaeStatus.ProtoReflect.Descriptor instead. +func (*WifiNetworkInterface_AntennaeStatus) Descriptor() ([]byte, []int) { + return file_spacex_api_device_common_proto_rawDescGZIP(), []int{13, 2} +} + +func (x *WifiNetworkInterface_AntennaeStatus) GetRssi1() float32 { + if x != nil { + return x.Rssi1 + } + return 0 +} + +func (x *WifiNetworkInterface_AntennaeStatus) GetRssi2() float32 { + if x != nil { + return x.Rssi2 + } + return 0 +} + +func (x *WifiNetworkInterface_AntennaeStatus) GetRssi3() float32 { + if x != nil { + return x.Rssi3 + } + return 0 +} + var File_spacex_api_device_common_proto protoreflect.FileDescriptor var file_spacex_api_device_common_proto_rawDesc = []byte{ 0x0a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, + 0x69, 0x63, 0x65, 0x22, 0x87, 0x04, 0x0a, 0x0a, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, - 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x0a, 0x14, 0x6d, 0x61, 0x6e, 0x75, + 0x66, 0x61, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x66, 0x61, 0x63, 0x74, + 0x75, 0x72, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x28, 0x0a, 0x0b, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x75, 0x70, - 0x74, 0x69, 0x6d, 0x65, 0x53, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3e, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x69, 0x6e, - 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7d, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, - 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0x5a, 0x0a, 0x10, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, - 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x73, - 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x66, 0x69, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, - 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x22, 0x52, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x75, + 0x74, 0x63, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x75, 0x74, 0x63, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x12, 0x3a, 0x0a, + 0x19, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x17, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x15, 0x0a, 0x06, 0x69, 0x73, 0x5f, + 0x64, 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x44, 0x65, 0x76, + 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, + 0x0a, 0x15, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x61, + 0x6e, 0x74, 0x69, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x68, 0x69, 0x74, 0x6c, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, 0x69, 0x74, 0x6c, 0x12, 0x30, 0x0a, 0x04, 0x62, + 0x6f, 0x6f, 0x74, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, + 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x74, 0x22, 0x28, 0x0a, + 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x22, 0x3e, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4e, 0x65, + 0x78, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3e, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x64, 0x22, 0xb2, 0x03, 0x0a, 0x08, + 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x0f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x66, 0x0a, 0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x79, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x6c, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x12, 0x3e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x6c, 0x61, + 0x73, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x61, + 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x40, 0x0a, 0x12, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x45, 0x0a, 0x17, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x79, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0x5c, 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x7d, + 0x0a, 0x0a, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x35, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x5e, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, - 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22, 0xa8, 0x03, 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x46, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, - 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x54, - 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x74, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, - 0x4a, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0xe8, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, - 0x00, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x1a, 0x5c, 0x0a, 0x07, 0x52, - 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x39, 0x0a, 0x07, 0x54, 0x78, 0x53, - 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, - 0x65, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x74, 0x65, 0x63, - 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x70, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x4d, 0x62, - 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, - 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, - 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x44, - 0x75, 0x70, 0x6c, 0x65, 0x78, 0x52, 0x06, 0x64, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x22, 0x29, 0x0a, - 0x06, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, - 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x41, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0x5a, 0x0a, + 0x10, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x73, 0x68, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x77, 0x69, + 0x66, 0x69, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x77, 0x69, 0x66, + 0x69, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x22, 0x52, 0x0a, 0x13, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x5e, 0x0a, + 0x11, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x5f, + 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x65, 0x72, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x22, 0xf8, 0x03, + 0x0a, 0x10, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x02, 0x75, 0x70, 0x12, 0x46, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x52, 0x78, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x46, + 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x54, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x74, + 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x77, 0x69, + 0x66, 0x69, 0x1a, 0x5c, 0x0a, 0x07, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x21, 0x0a, + 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0b, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x1a, 0x39, 0x0a, 0x07, 0x54, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6c, 0x69, + 0x6e, 0x6b, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x75, 0x74, + 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x65, 0x67, 0x6f, 0x74, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x12, 0x4a, 0x0a, 0x06, 0x64, 0x75, 0x70, 0x6c, + 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x52, 0x06, 0x64, 0x75, + 0x70, 0x6c, 0x65, 0x78, 0x22, 0x29, 0x0a, 0x06, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x12, 0x0b, + 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, + 0x41, 0x4c, 0x46, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x22, + 0xcd, 0x07, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x74, 0x68, 0x65, 0x72, + 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x65, 0x61, 0x63, + 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x73, 0x73, 0x65, + 0x64, 0x42, 0x65, 0x61, 0x63, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x71, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x6c, 0x69, 0x6e, 0x6b, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, + 0x0a, 0x0b, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0a, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x5f, 0x0a, 0x0f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x2e, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x0e, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x1a, 0x9b, 0x01, 0x0a, 0x0d, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x04, 0x74, 0x65, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x74, 0x65, 0x6d, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x65, 0x6d, 0x70, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x74, 0x65, 0x6d, 0x70, 0x32, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, + 0x72, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x52, 0x65, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x1a, 0xe4, + 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6e, 0x77, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0d, 0x72, 0x78, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4e, 0x77, 0x69, 0x64, 0x12, 0x28, + 0x0a, 0x10, 0x72, 0x78, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x78, 0x49, 0x6e, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x43, 0x72, 0x79, 0x70, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x78, 0x5f, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0d, 0x72, 0x78, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x46, 0x72, 0x61, 0x67, + 0x12, 0x30, 0x0a, 0x14, 0x74, 0x78, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, + 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, + 0x74, 0x78, 0x45, 0x78, 0x63, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x69, + 0x73, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x4d, 0x69, 0x73, 0x63, 0x1a, 0x52, 0x0a, 0x0e, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x73, 0x69, 0x31, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x72, 0x73, 0x73, 0x69, 0x31, 0x12, 0x14, 0x0a, + 0x05, 0x72, 0x73, 0x73, 0x69, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x72, 0x73, + 0x73, 0x69, 0x32, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x73, 0x73, 0x69, 0x33, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x05, 0x72, 0x73, 0x73, 0x69, 0x33, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x22, + 0x43, 0x0a, 0x0b, 0x4c, 0x4c, 0x41, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, + 0x0a, 0x03, 0x6c, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, 0x61, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x6c, + 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x03, 0x61, 0x6c, 0x74, 0x22, 0x38, 0x0a, 0x0c, 0x45, 0x43, 0x45, 0x46, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, + 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x7a, 0x22, 0x1a, + 0x0a, 0x18, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x53, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x19, 0x49, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x22, 0x72, 0x0a, + 0x15, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6f, 0x70, 0x65, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x9e, 0x01, 0x0a, 0x0a, + 0x42, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x4f, + 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, + 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x4f, 0x52, 0x47, 0x4f, 0x54, 0x54, 0x45, 0x4e, + 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x59, 0x43, 0x4c, + 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x4f, 0x4d, 0x4d, 0x41, 0x4e, 0x44, 0x10, 0x03, + 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x5f, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x50, 0x54, 0x49, + 0x4d, 0x45, 0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x50, + 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x44, 0x49, 0x52, 0x10, 0x07, 0x42, 0x17, 0x5a, 0x15, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1024,37 +2066,59 @@ func file_spacex_api_device_common_proto_rawDescGZIP() return file_spacex_api_device_common_proto_rawDescData } -var file_spacex_api_device_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spacex_api_device_common_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_spacex_api_device_common_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_spacex_api_device_common_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_spacex_api_device_common_proto_goTypes = []interface{}{ - (EthernetNetworkInterface_Duplex)(0), // 0: SpaceX.API.Device.EthernetNetworkInterface.Duplex - (*DeviceInfo)(nil), // 1: SpaceX.API.Device.DeviceInfo - (*DeviceState)(nil), // 2: SpaceX.API.Device.DeviceState - (*SignedData)(nil), // 3: SpaceX.API.Device.SignedData - (*GetNextIdRequest)(nil), // 4: SpaceX.API.Device.GetNextIdRequest - (*GetNextIdResponse)(nil), // 5: SpaceX.API.Device.GetNextIdResponse - (*PingTarget)(nil), // 6: SpaceX.API.Device.PingTarget - (*PingResult)(nil), // 7: SpaceX.API.Device.PingResult - (*BondingChallenge)(nil), // 8: SpaceX.API.Device.BondingChallenge - (*AuthenticateRequest)(nil), // 9: SpaceX.API.Device.AuthenticateRequest - (*ChallengeResponse)(nil), // 10: SpaceX.API.Device.ChallengeResponse - (*NetworkInterface)(nil), // 11: SpaceX.API.Device.NetworkInterface - (*EthernetNetworkInterface)(nil), // 12: SpaceX.API.Device.EthernetNetworkInterface - (*NetworkInterface_RxStats)(nil), // 13: SpaceX.API.Device.NetworkInterface.RxStats - (*NetworkInterface_TxStats)(nil), // 14: SpaceX.API.Device.NetworkInterface.TxStats + (BootReason)(0), // 0: SpaceX.API.Device.BootReason + (EthernetNetworkInterface_Duplex)(0), // 1: SpaceX.API.Device.EthernetNetworkInterface.Duplex + (*DeviceInfo)(nil), // 2: SpaceX.API.Device.DeviceInfo + (*DeviceState)(nil), // 3: SpaceX.API.Device.DeviceState + (*SignedData)(nil), // 4: SpaceX.API.Device.SignedData + (*GetNextIdRequest)(nil), // 5: SpaceX.API.Device.GetNextIdRequest + (*GetNextIdResponse)(nil), // 6: SpaceX.API.Device.GetNextIdResponse + (*BootInfo)(nil), // 7: SpaceX.API.Device.BootInfo + (*PingTarget)(nil), // 8: SpaceX.API.Device.PingTarget + (*PingResult)(nil), // 9: SpaceX.API.Device.PingResult + (*BondingChallenge)(nil), // 10: SpaceX.API.Device.BondingChallenge + (*AuthenticateRequest)(nil), // 11: SpaceX.API.Device.AuthenticateRequest + (*ChallengeResponse)(nil), // 12: SpaceX.API.Device.ChallengeResponse + (*NetworkInterface)(nil), // 13: SpaceX.API.Device.NetworkInterface + (*EthernetNetworkInterface)(nil), // 14: SpaceX.API.Device.EthernetNetworkInterface + (*WifiNetworkInterface)(nil), // 15: SpaceX.API.Device.WifiNetworkInterface + (*LLAPosition)(nil), // 16: SpaceX.API.Device.LLAPosition + (*ECEFPosition)(nil), // 17: SpaceX.API.Device.ECEFPosition + (*InitiateRemoteSshRequest)(nil), // 18: SpaceX.API.Device.InitiateRemoteSshRequest + (*InitiateRemoteSshResponse)(nil), // 19: SpaceX.API.Device.InitiateRemoteSshResponse + (*SoftwareUpdateRequest)(nil), // 20: SpaceX.API.Device.SoftwareUpdateRequest + (*SoftwareUpdateResponse)(nil), // 21: SpaceX.API.Device.SoftwareUpdateResponse + nil, // 22: SpaceX.API.Device.BootInfo.CountByReasonEntry + nil, // 23: SpaceX.API.Device.BootInfo.CountByReasonDeltaEntry + (*NetworkInterface_RxStats)(nil), // 24: SpaceX.API.Device.NetworkInterface.RxStats + (*NetworkInterface_TxStats)(nil), // 25: SpaceX.API.Device.NetworkInterface.TxStats + (*WifiNetworkInterface_ThermalStatus)(nil), // 26: SpaceX.API.Device.WifiNetworkInterface.ThermalStatus + (*WifiNetworkInterface_InvalidPacketCounts)(nil), // 27: SpaceX.API.Device.WifiNetworkInterface.InvalidPacketCounts + (*WifiNetworkInterface_AntennaeStatus)(nil), // 28: SpaceX.API.Device.WifiNetworkInterface.AntennaeStatus } var file_spacex_api_device_common_proto_depIdxs = []int32{ - 6, // 0: SpaceX.API.Device.PingResult.target:type_name -> SpaceX.API.Device.PingTarget - 3, // 1: SpaceX.API.Device.AuthenticateRequest.challenge:type_name -> SpaceX.API.Device.SignedData - 13, // 2: SpaceX.API.Device.NetworkInterface.rx_stats:type_name -> SpaceX.API.Device.NetworkInterface.RxStats - 14, // 3: SpaceX.API.Device.NetworkInterface.tx_stats:type_name -> SpaceX.API.Device.NetworkInterface.TxStats - 12, // 4: SpaceX.API.Device.NetworkInterface.ethernet:type_name -> SpaceX.API.Device.EthernetNetworkInterface - 0, // 5: SpaceX.API.Device.EthernetNetworkInterface.duplex:type_name -> SpaceX.API.Device.EthernetNetworkInterface.Duplex - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 7, // 0: SpaceX.API.Device.DeviceInfo.boot:type_name -> SpaceX.API.Device.BootInfo + 22, // 1: SpaceX.API.Device.BootInfo.count_by_reason:type_name -> SpaceX.API.Device.BootInfo.CountByReasonEntry + 23, // 2: SpaceX.API.Device.BootInfo.count_by_reason_delta:type_name -> SpaceX.API.Device.BootInfo.CountByReasonDeltaEntry + 0, // 3: SpaceX.API.Device.BootInfo.last_reason:type_name -> SpaceX.API.Device.BootReason + 8, // 4: SpaceX.API.Device.PingResult.target:type_name -> SpaceX.API.Device.PingTarget + 4, // 5: SpaceX.API.Device.AuthenticateRequest.challenge:type_name -> SpaceX.API.Device.SignedData + 24, // 6: SpaceX.API.Device.NetworkInterface.rx_stats:type_name -> SpaceX.API.Device.NetworkInterface.RxStats + 25, // 7: SpaceX.API.Device.NetworkInterface.tx_stats:type_name -> SpaceX.API.Device.NetworkInterface.TxStats + 14, // 8: SpaceX.API.Device.NetworkInterface.ethernet:type_name -> SpaceX.API.Device.EthernetNetworkInterface + 15, // 9: SpaceX.API.Device.NetworkInterface.wifi:type_name -> SpaceX.API.Device.WifiNetworkInterface + 1, // 10: SpaceX.API.Device.EthernetNetworkInterface.duplex:type_name -> SpaceX.API.Device.EthernetNetworkInterface.Duplex + 26, // 11: SpaceX.API.Device.WifiNetworkInterface.thermal_status:type_name -> SpaceX.API.Device.WifiNetworkInterface.ThermalStatus + 27, // 12: SpaceX.API.Device.WifiNetworkInterface.invalid_packet_counts:type_name -> SpaceX.API.Device.WifiNetworkInterface.InvalidPacketCounts + 28, // 13: SpaceX.API.Device.WifiNetworkInterface.antennae_status:type_name -> SpaceX.API.Device.WifiNetworkInterface.AntennaeStatus + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_spacex_api_device_common_proto_init() } @@ -1124,7 +2188,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingTarget); i { + switch v := v.(*BootInfo); i { case 0: return &v.state case 1: @@ -1136,7 +2200,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingResult); i { + switch v := v.(*PingTarget); i { case 0: return &v.state case 1: @@ -1148,7 +2212,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BondingChallenge); i { + switch v := v.(*PingResult); i { case 0: return &v.state case 1: @@ -1160,7 +2224,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthenticateRequest); i { + switch v := v.(*BondingChallenge); i { case 0: return &v.state case 1: @@ -1172,7 +2236,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChallengeResponse); i { + switch v := v.(*AuthenticateRequest); i { case 0: return &v.state case 1: @@ -1184,7 +2248,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetworkInterface); i { + switch v := v.(*ChallengeResponse); i { case 0: return &v.state case 1: @@ -1196,7 +2260,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EthernetNetworkInterface); i { + switch v := v.(*NetworkInterface); i { case 0: return &v.state case 1: @@ -1208,7 +2272,7 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetworkInterface_RxStats); i { + switch v := v.(*EthernetNetworkInterface); i { case 0: return &v.state case 1: @@ -1220,6 +2284,102 @@ func file_spacex_api_device_common_proto_init() { } } file_spacex_api_device_common_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNetworkInterface); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LLAPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ECEFPosition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitiateRemoteSshRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InitiateRemoteSshResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SoftwareUpdateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SoftwareUpdateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NetworkInterface_RxStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NetworkInterface_TxStats); i { case 0: return &v.state @@ -1231,17 +2391,54 @@ func file_spacex_api_device_common_proto_init() { return nil } } + file_spacex_api_device_common_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNetworkInterface_ThermalStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNetworkInterface_InvalidPacketCounts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_common_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNetworkInterface_AntennaeStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - file_spacex_api_device_common_proto_msgTypes[10].OneofWrappers = []interface{}{ + file_spacex_api_device_common_proto_msgTypes[11].OneofWrappers = []interface{}{ (*NetworkInterface_Ethernet)(nil), + (*NetworkInterface_Wifi)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_common_proto_rawDesc, - NumEnums: 1, - NumMessages: 14, + NumEnums: 2, + NumMessages: 27, NumExtensions: 0, NumServices: 0, }, blob - 44c322e88b68755c9bc1ddbbb58d8e29a3ec4d6f blob + b0a7b32d96a67681d898c69fa0a8a7f534910c46 --- device/device.pb.go +++ device/device.pb.go @@ -19,8 +19,176 @@ const ( _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PositionSource int32 + +const ( + PositionSource_AUTO PositionSource = 0 + PositionSource_NONE PositionSource = 1 + PositionSource_UT_INFO PositionSource = 2 + PositionSource_EXTERNAL PositionSource = 3 + PositionSource_GPS PositionSource = 4 + PositionSource_STARLINK PositionSource = 5 +) + +// Enum value maps for PositionSource. +var ( + PositionSource_name = map[int32]string{ + 0: "AUTO", + 1: "NONE", + 2: "UT_INFO", + 3: "EXTERNAL", + 4: "GPS", + 5: "STARLINK", + } + PositionSource_value = map[string]int32{ + "AUTO": 0, + "NONE": 1, + "UT_INFO": 2, + "EXTERNAL": 3, + "GPS": 4, + "STARLINK": 5, + } +) + +func (x PositionSource) Enum() *PositionSource { + p := new(PositionSource) + *p = x + return p +} + +func (x PositionSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PositionSource) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_device_proto_enumTypes[0].Descriptor() +} + +func (PositionSource) Type() protoreflect.EnumType { + return &file_spacex_api_device_device_proto_enumTypes[0] +} + +func (x PositionSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PositionSource.Descriptor instead. +func (PositionSource) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{0} +} + +type SpeedtestError int32 + +const ( + SpeedtestError_SPEEDTEST_ERROR_NONE SpeedtestError = 0 + SpeedtestError_SPEEDTEST_ERROR_UNKNOWN SpeedtestError = 1 + SpeedtestError_SPEEDTEST_ERROR_TOKEN SpeedtestError = 2 + SpeedtestError_SPEEDTEST_ERROR_API SpeedtestError = 3 + SpeedtestError_SPEEDTEST_ERROR_NO_RESULT SpeedtestError = 4 + SpeedtestError_SPEEDTEST_ERROR_OFFLINE SpeedtestError = 5 +) + +// Enum value maps for SpeedtestError. +var ( + SpeedtestError_name = map[int32]string{ + 0: "SPEEDTEST_ERROR_NONE", + 1: "SPEEDTEST_ERROR_UNKNOWN", + 2: "SPEEDTEST_ERROR_TOKEN", + 3: "SPEEDTEST_ERROR_API", + 4: "SPEEDTEST_ERROR_NO_RESULT", + 5: "SPEEDTEST_ERROR_OFFLINE", + } + SpeedtestError_value = map[string]int32{ + "SPEEDTEST_ERROR_NONE": 0, + "SPEEDTEST_ERROR_UNKNOWN": 1, + "SPEEDTEST_ERROR_TOKEN": 2, + "SPEEDTEST_ERROR_API": 3, + "SPEEDTEST_ERROR_NO_RESULT": 4, + "SPEEDTEST_ERROR_OFFLINE": 5, + } +) + +func (x SpeedtestError) Enum() *SpeedtestError { + p := new(SpeedtestError) + *p = x + return p +} + +func (x SpeedtestError) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpeedtestError) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_device_proto_enumTypes[1].Descriptor() +} + +func (SpeedtestError) Type() protoreflect.EnumType { + return &file_spacex_api_device_device_proto_enumTypes[1] +} + +func (x SpeedtestError) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SpeedtestError.Descriptor instead. +func (SpeedtestError) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{1} +} + +type ClientPlatform_Platform int32 + +const ( + ClientPlatform_UNKNOWN ClientPlatform_Platform = 0 + ClientPlatform_IOS ClientPlatform_Platform = 1 + ClientPlatform_ANDROID ClientPlatform_Platform = 2 + ClientPlatform_WEB ClientPlatform_Platform = 3 +) + +// Enum value maps for ClientPlatform_Platform. +var ( + ClientPlatform_Platform_name = map[int32]string{ + 0: "UNKNOWN", + 1: "IOS", + 2: "ANDROID", + 3: "WEB", + } + ClientPlatform_Platform_value = map[string]int32{ + "UNKNOWN": 0, + "IOS": 1, + "ANDROID": 2, + "WEB": 3, + } ) +func (x ClientPlatform_Platform) Enum() *ClientPlatform_Platform { + p := new(ClientPlatform_Platform) + *p = x + return p +} + +func (x ClientPlatform_Platform) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ClientPlatform_Platform) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_device_proto_enumTypes[2].Descriptor() +} + +func (ClientPlatform_Platform) Type() protoreflect.EnumType { + return &file_spacex_api_device_device_proto_enumTypes[2] +} + +func (x ClientPlatform_Platform) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ClientPlatform_Platform.Descriptor instead. +func (ClientPlatform_Platform) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{22, 0} +} + type ToDevice struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -182,6 +350,7 @@ type Request struct { // *Request_SignedRequest // *Request_GetNextId // *Request_Authenticate + // *Request_EnableDebugTelem // *Request_FactoryReset // *Request_GetDeviceInfo // *Request_GetHistory @@ -195,13 +364,39 @@ type Request struct { // *Request_SetTrustedKeys // *Request_SpeedTest // *Request_Update + // *Request_GetLocation + // *Request_GetHeapDump + // *Request_RestartControl + // *Request_Fuse + // *Request_GetPersistentStats + // *Request_GetConnections + // *Request_StartSpeedtest + // *Request_GetSpeedtestStatus + // *Request_ReportClientSpeedtest + // *Request_InitiateRemoteSsh + // *Request_SelfTest + // *Request_SetTestMode + // *Request_SoftwareUpdate // *Request_DishStow + // *Request_StartDishSelfTest + // *Request_DishGetContext + // *Request_DishGetObstructionMap + // *Request_DishSetEmc + // *Request_DishGetEmc + // *Request_DishSetConfig + // *Request_DishGetConfig // *Request_TransceiverIfLoopbackTest // *Request_TransceiverGetStatus + // *Request_TransceiverGetTelemetry // *Request_WifiGetClients + // *Request_WifiGetDiagnostics // *Request_WifiGetPingMetrics // *Request_WifiSetConfig + // *Request_WifiGetConfig // *Request_WifiSetup + // *Request_WifiSetMeshDeviceTrust + // *Request_WifiSetMeshConfig + // *Request_WifiGetClientHistory Request isRequest_Request `protobuf_oneof:"request"` } @@ -286,6 +481,13 @@ func (x *Request) GetAuthenticate() *AuthenticateReque return nil } +func (x *Request) GetEnableDebugTelem() *EnableDebugTelemRequest { + if x, ok := x.GetRequest().(*Request_EnableDebugTelem); ok { + return x.EnableDebugTelem + } + return nil +} + func (x *Request) GetFactoryReset() *FactoryResetRequest { if x, ok := x.GetRequest().(*Request_FactoryReset); ok { return x.FactoryReset @@ -377,6 +579,97 @@ func (x *Request) GetUpdate() *UpdateRequest { return nil } +func (x *Request) GetGetLocation() *GetLocationRequest { + if x, ok := x.GetRequest().(*Request_GetLocation); ok { + return x.GetLocation + } + return nil +} + +func (x *Request) GetGetHeapDump() *GetHeapDumpRequest { + if x, ok := x.GetRequest().(*Request_GetHeapDump); ok { + return x.GetHeapDump + } + return nil +} + +func (x *Request) GetRestartControl() *RestartControlRequest { + if x, ok := x.GetRequest().(*Request_RestartControl); ok { + return x.RestartControl + } + return nil +} + +func (x *Request) GetFuse() *FuseRequest { + if x, ok := x.GetRequest().(*Request_Fuse); ok { + return x.Fuse + } + return nil +} + +func (x *Request) GetGetPersistentStats() *GetPersistentStatsRequest { + if x, ok := x.GetRequest().(*Request_GetPersistentStats); ok { + return x.GetPersistentStats + } + return nil +} + +func (x *Request) GetGetConnections() *GetConnectionsRequest { + if x, ok := x.GetRequest().(*Request_GetConnections); ok { + return x.GetConnections + } + return nil +} + +func (x *Request) GetStartSpeedtest() *StartSpeedtestRequest { + if x, ok := x.GetRequest().(*Request_StartSpeedtest); ok { + return x.StartSpeedtest + } + return nil +} + +func (x *Request) GetGetSpeedtestStatus() *GetSpeedtestStatusRequest { + if x, ok := x.GetRequest().(*Request_GetSpeedtestStatus); ok { + return x.GetSpeedtestStatus + } + return nil +} + +func (x *Request) GetReportClientSpeedtest() *ReportClientSpeedtestRequest { + if x, ok := x.GetRequest().(*Request_ReportClientSpeedtest); ok { + return x.ReportClientSpeedtest + } + return nil +} + +func (x *Request) GetInitiateRemoteSsh() *InitiateRemoteSshRequest { + if x, ok := x.GetRequest().(*Request_InitiateRemoteSsh); ok { + return x.InitiateRemoteSsh + } + return nil +} + +func (x *Request) GetSelfTest() *SelfTestRequest { + if x, ok := x.GetRequest().(*Request_SelfTest); ok { + return x.SelfTest + } + return nil +} + +func (x *Request) GetSetTestMode() *SetTestModeRequest { + if x, ok := x.GetRequest().(*Request_SetTestMode); ok { + return x.SetTestMode + } + return nil +} + +func (x *Request) GetSoftwareUpdate() *SoftwareUpdateRequest { + if x, ok := x.GetRequest().(*Request_SoftwareUpdate); ok { + return x.SoftwareUpdate + } + return nil +} + func (x *Request) GetDishStow() *DishStowRequest { if x, ok := x.GetRequest().(*Request_DishStow); ok { return x.DishStow @@ -384,6 +677,55 @@ func (x *Request) GetDishStow() *DishStowRequest { return nil } +func (x *Request) GetStartDishSelfTest() *StartDishSelfTestRequest { + if x, ok := x.GetRequest().(*Request_StartDishSelfTest); ok { + return x.StartDishSelfTest + } + return nil +} + +func (x *Request) GetDishGetContext() *DishGetContextRequest { + if x, ok := x.GetRequest().(*Request_DishGetContext); ok { + return x.DishGetContext + } + return nil +} + +func (x *Request) GetDishGetObstructionMap() *DishGetObstructionMapRequest { + if x, ok := x.GetRequest().(*Request_DishGetObstructionMap); ok { + return x.DishGetObstructionMap + } + return nil +} + +func (x *Request) GetDishSetEmc() *DishSetEmcRequest { + if x, ok := x.GetRequest().(*Request_DishSetEmc); ok { + return x.DishSetEmc + } + return nil +} + +func (x *Request) GetDishGetEmc() *DishGetEmcRequest { + if x, ok := x.GetRequest().(*Request_DishGetEmc); ok { + return x.DishGetEmc + } + return nil +} + +func (x *Request) GetDishSetConfig() *DishSetConfigRequest { + if x, ok := x.GetRequest().(*Request_DishSetConfig); ok { + return x.DishSetConfig + } + return nil +} + +func (x *Request) GetDishGetConfig() *DishGetConfigRequest { + if x, ok := x.GetRequest().(*Request_DishGetConfig); ok { + return x.DishGetConfig + } + return nil +} + func (x *Request) GetTransceiverIfLoopbackTest() *TransceiverIFLoopbackTestRequest { if x, ok := x.GetRequest().(*Request_TransceiverIfLoopbackTest); ok { return x.TransceiverIfLoopbackTest @@ -398,6 +740,13 @@ func (x *Request) GetTransceiverGetStatus() *Transceiv return nil } +func (x *Request) GetTransceiverGetTelemetry() *TransceiverGetTelemetryRequest { + if x, ok := x.GetRequest().(*Request_TransceiverGetTelemetry); ok { + return x.TransceiverGetTelemetry + } + return nil +} + func (x *Request) GetWifiGetClients() *WifiGetClientsRequest { if x, ok := x.GetRequest().(*Request_WifiGetClients); ok { return x.WifiGetClients @@ -405,6 +754,13 @@ func (x *Request) GetWifiGetClients() *WifiGetClientsR return nil } +func (x *Request) GetWifiGetDiagnostics() *WifiGetDiagnosticsRequest { + if x, ok := x.GetRequest().(*Request_WifiGetDiagnostics); ok { + return x.WifiGetDiagnostics + } + return nil +} + func (x *Request) GetWifiGetPingMetrics() *WifiGetPingMetricsRequest { if x, ok := x.GetRequest().(*Request_WifiGetPingMetrics); ok { return x.WifiGetPingMetrics @@ -419,6 +775,13 @@ func (x *Request) GetWifiSetConfig() *WifiSetConfigReq return nil } +func (x *Request) GetWifiGetConfig() *WifiGetConfigRequest { + if x, ok := x.GetRequest().(*Request_WifiGetConfig); ok { + return x.WifiGetConfig + } + return nil +} + func (x *Request) GetWifiSetup() *WifiSetupRequest { if x, ok := x.GetRequest().(*Request_WifiSetup); ok { return x.WifiSetup @@ -426,6 +789,27 @@ func (x *Request) GetWifiSetup() *WifiSetupRequest { return nil } +func (x *Request) GetWifiSetMeshDeviceTrust() *WifiSetMeshDeviceTrustRequest { + if x, ok := x.GetRequest().(*Request_WifiSetMeshDeviceTrust); ok { + return x.WifiSetMeshDeviceTrust + } + return nil +} + +func (x *Request) GetWifiSetMeshConfig() *WifiSetMeshConfigRequest { + if x, ok := x.GetRequest().(*Request_WifiSetMeshConfig); ok { + return x.WifiSetMeshConfig + } + return nil +} + +func (x *Request) GetWifiGetClientHistory() *WifiGetClientHistoryRequest { + if x, ok := x.GetRequest().(*Request_WifiGetClientHistory); ok { + return x.WifiGetClientHistory + } + return nil +} + type isRequest_Request interface { isRequest_Request() } @@ -440,6 +824,10 @@ type Request_GetNextId struct { type Request_Authenticate struct { Authenticate *AuthenticateRequest `protobuf:"bytes,1005,opt,name=authenticate,proto3,oneof"` +} + +type Request_EnableDebugTelem struct { + EnableDebugTelem *EnableDebugTelemRequest `protobuf:"bytes,1034,opt,name=enable_debug_telem,json=enableDebugTelem,proto3,oneof"` } type Request_FactoryReset struct { @@ -494,10 +882,90 @@ type Request_Update struct { Update *UpdateRequest `protobuf:"bytes,1014,opt,name=update,proto3,oneof"` } +type Request_GetLocation struct { + GetLocation *GetLocationRequest `protobuf:"bytes,1017,opt,name=get_location,json=getLocation,proto3,oneof"` +} + +type Request_GetHeapDump struct { + GetHeapDump *GetHeapDumpRequest `protobuf:"bytes,1019,opt,name=get_heap_dump,json=getHeapDump,proto3,oneof"` +} + +type Request_RestartControl struct { + RestartControl *RestartControlRequest `protobuf:"bytes,1020,opt,name=restart_control,json=restartControl,proto3,oneof"` +} + +type Request_Fuse struct { + Fuse *FuseRequest `protobuf:"bytes,1021,opt,name=fuse,proto3,oneof"` +} + +type Request_GetPersistentStats struct { + GetPersistentStats *GetPersistentStatsRequest `protobuf:"bytes,1022,opt,name=get_persistent_stats,json=getPersistentStats,proto3,oneof"` +} + +type Request_GetConnections struct { + GetConnections *GetConnectionsRequest `protobuf:"bytes,1023,opt,name=get_connections,json=getConnections,proto3,oneof"` +} + +type Request_StartSpeedtest struct { + StartSpeedtest *StartSpeedtestRequest `protobuf:"bytes,1027,opt,name=start_speedtest,json=startSpeedtest,proto3,oneof"` +} + +type Request_GetSpeedtestStatus struct { + GetSpeedtestStatus *GetSpeedtestStatusRequest `protobuf:"bytes,1028,opt,name=get_speedtest_status,json=getSpeedtestStatus,proto3,oneof"` +} + +type Request_ReportClientSpeedtest struct { + ReportClientSpeedtest *ReportClientSpeedtestRequest `protobuf:"bytes,1029,opt,name=report_client_speedtest,json=reportClientSpeedtest,proto3,oneof"` +} + +type Request_InitiateRemoteSsh struct { + InitiateRemoteSsh *InitiateRemoteSshRequest `protobuf:"bytes,1030,opt,name=initiate_remote_ssh,json=initiateRemoteSsh,proto3,oneof"` +} + +type Request_SelfTest struct { + SelfTest *SelfTestRequest `protobuf:"bytes,1031,opt,name=self_test,json=selfTest,proto3,oneof"` +} + +type Request_SetTestMode struct { + SetTestMode *SetTestModeRequest `protobuf:"bytes,1032,opt,name=set_test_mode,json=setTestMode,proto3,oneof"` +} + +type Request_SoftwareUpdate struct { + SoftwareUpdate *SoftwareUpdateRequest `protobuf:"bytes,1033,opt,name=software_update,json=softwareUpdate,proto3,oneof"` +} + type Request_DishStow struct { DishStow *DishStowRequest `protobuf:"bytes,2002,opt,name=dish_stow,json=dishStow,proto3,oneof"` } +type Request_StartDishSelfTest struct { + StartDishSelfTest *StartDishSelfTestRequest `protobuf:"bytes,2012,opt,name=start_dish_self_test,json=startDishSelfTest,proto3,oneof"` +} + +type Request_DishGetContext struct { + DishGetContext *DishGetContextRequest `protobuf:"bytes,2003,opt,name=dish_get_context,json=dishGetContext,proto3,oneof"` +} + +type Request_DishGetObstructionMap struct { + DishGetObstructionMap *DishGetObstructionMapRequest `protobuf:"bytes,2008,opt,name=dish_get_obstruction_map,json=dishGetObstructionMap,proto3,oneof"` +} + +type Request_DishSetEmc struct { + DishSetEmc *DishSetEmcRequest `protobuf:"bytes,2007,opt,name=dish_set_emc,json=dishSetEmc,proto3,oneof"` +} + +type Request_DishGetEmc struct { + DishGetEmc *DishGetEmcRequest `protobuf:"bytes,2009,opt,name=dish_get_emc,json=dishGetEmc,proto3,oneof"` +} + +type Request_DishSetConfig struct { + DishSetConfig *DishSetConfigRequest `protobuf:"bytes,2010,opt,name=dish_set_config,json=dishSetConfig,proto3,oneof"` +} + +type Request_DishGetConfig struct { + DishGetConfig *DishGetConfigRequest `protobuf:"bytes,2011,opt,name=dish_get_config,json=dishGetConfig,proto3,oneof"` +} + type Request_TransceiverIfLoopbackTest struct { TransceiverIfLoopbackTest *TransceiverIFLoopbackTestRequest `protobuf:"bytes,4001,opt,name=transceiver_if_loopback_test,json=transceiverIfLoopbackTest,proto3,oneof"` } @@ -506,10 +974,18 @@ type Request_TransceiverGetStatus struct { TransceiverGetStatus *TransceiverGetStatusRequest `protobuf:"bytes,4003,opt,name=transceiver_get_status,json=transceiverGetStatus,proto3,oneof"` } +type Request_TransceiverGetTelemetry struct { + TransceiverGetTelemetry *TransceiverGetTelemetryRequest `protobuf:"bytes,4004,opt,name=transceiver_get_telemetry,json=transceiverGetTelemetry,proto3,oneof"` +} + type Request_WifiGetClients struct { WifiGetClients *WifiGetClientsRequest `protobuf:"bytes,3002,opt,name=wifi_get_clients,json=wifiGetClients,proto3,oneof"` } +type Request_WifiGetDiagnostics struct { + WifiGetDiagnostics *WifiGetDiagnosticsRequest `protobuf:"bytes,3008,opt,name=wifi_get_diagnostics,json=wifiGetDiagnostics,proto3,oneof"` +} + type Request_WifiGetPingMetrics struct { WifiGetPingMetrics *WifiGetPingMetricsRequest `protobuf:"bytes,3007,opt,name=wifi_get_ping_metrics,json=wifiGetPingMetrics,proto3,oneof"` } @@ -518,16 +994,34 @@ type Request_WifiSetConfig struct { WifiSetConfig *WifiSetConfigRequest `protobuf:"bytes,3001,opt,name=wifi_set_config,json=wifiSetConfig,proto3,oneof"` } +type Request_WifiGetConfig struct { + WifiGetConfig *WifiGetConfigRequest `protobuf:"bytes,3009,opt,name=wifi_get_config,json=wifiGetConfig,proto3,oneof"` +} + type Request_WifiSetup struct { WifiSetup *WifiSetupRequest `protobuf:"bytes,3003,opt,name=wifi_setup,json=wifiSetup,proto3,oneof"` } +type Request_WifiSetMeshDeviceTrust struct { + WifiSetMeshDeviceTrust *WifiSetMeshDeviceTrustRequest `protobuf:"bytes,3012,opt,name=wifi_set_mesh_device_trust,json=wifiSetMeshDeviceTrust,proto3,oneof"` +} + +type Request_WifiSetMeshConfig struct { + WifiSetMeshConfig *WifiSetMeshConfigRequest `protobuf:"bytes,3013,opt,name=wifi_set_mesh_config,json=wifiSetMeshConfig,proto3,oneof"` +} + +type Request_WifiGetClientHistory struct { + WifiGetClientHistory *WifiGetClientHistoryRequest `protobuf:"bytes,3015,opt,name=wifi_get_client_history,json=wifiGetClientHistory,proto3,oneof"` +} + func (*Request_SignedRequest) isRequest_Request() {} func (*Request_GetNextId) isRequest_Request() {} func (*Request_Authenticate) isRequest_Request() {} +func (*Request_EnableDebugTelem) isRequest_Request() {} + func (*Request_FactoryReset) isRequest_Request() {} func (*Request_GetDeviceInfo) isRequest_Request() {} @@ -554,30 +1048,84 @@ func (*Request_SpeedTest) isRequest_Request() {} func (*Request_Update) isRequest_Request() {} +func (*Request_GetLocation) isRequest_Request() {} + +func (*Request_GetHeapDump) isRequest_Request() {} + +func (*Request_RestartControl) isRequest_Request() {} + +func (*Request_Fuse) isRequest_Request() {} + +func (*Request_GetPersistentStats) isRequest_Request() {} + +func (*Request_GetConnections) isRequest_Request() {} + +func (*Request_StartSpeedtest) isRequest_Request() {} + +func (*Request_GetSpeedtestStatus) isRequest_Request() {} + +func (*Request_ReportClientSpeedtest) isRequest_Request() {} + +func (*Request_InitiateRemoteSsh) isRequest_Request() {} + +func (*Request_SelfTest) isRequest_Request() {} + +func (*Request_SetTestMode) isRequest_Request() {} + +func (*Request_SoftwareUpdate) isRequest_Request() {} + func (*Request_DishStow) isRequest_Request() {} +func (*Request_StartDishSelfTest) isRequest_Request() {} + +func (*Request_DishGetContext) isRequest_Request() {} + +func (*Request_DishGetObstructionMap) isRequest_Request() {} + +func (*Request_DishSetEmc) isRequest_Request() {} + +func (*Request_DishGetEmc) isRequest_Request() {} + +func (*Request_DishSetConfig) isRequest_Request() {} + +func (*Request_DishGetConfig) isRequest_Request() {} + func (*Request_TransceiverIfLoopbackTest) isRequest_Request() {} func (*Request_TransceiverGetStatus) isRequest_Request() {} +func (*Request_TransceiverGetTelemetry) isRequest_Request() {} + func (*Request_WifiGetClients) isRequest_Request() {} +func (*Request_WifiGetDiagnostics) isRequest_Request() {} + func (*Request_WifiGetPingMetrics) isRequest_Request() {} func (*Request_WifiSetConfig) isRequest_Request() {} +func (*Request_WifiGetConfig) isRequest_Request() {} + func (*Request_WifiSetup) isRequest_Request() {} +func (*Request_WifiSetMeshDeviceTrust) isRequest_Request() {} + +func (*Request_WifiSetMeshConfig) isRequest_Request() {} + +func (*Request_WifiGetClientHistory) isRequest_Request() {} + type Response struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + Id uint64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + Status *status.Status `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + ApiVersion uint64 `protobuf:"varint,3,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` // Types that are assignable to Response: // // *Response_GetNextId + // *Response_EnableDebugTelem // *Response_FactoryReset // *Response_GetDeviceInfo // *Response_GetLog @@ -589,19 +1137,45 @@ type Response struct { // *Response_SetSku // *Response_SetTrustedKeys // *Response_Update + // *Response_GetLocation + // *Response_GetHeapDump + // *Response_RestartControl + // *Response_Fuse + // *Response_GetConnections + // *Response_StartSpeedtest + // *Response_GetSpeedtestStatus + // *Response_ReportClientSpeedtest + // *Response_InitiateRemoteSsh + // *Response_SelfTest + // *Response_SetTestMode + // *Response_SoftwareUpdate // *Response_DishAuthenticate + // *Response_DishGetContext // *Response_DishGetHistory // *Response_DishGetStatus + // *Response_DishGetObstructionMap // *Response_DishStow + // *Response_StartDishSelfTest + // *Response_DishSetEmc + // *Response_DishGetEmc + // *Response_DishSetConfig + // *Response_DishGetConfig // *Response_TransceiverIfLoopbackTest // *Response_TransceiverGetStatus + // *Response_TransceiverGetTelemetry // *Response_WifiAuthenticate // *Response_WifiGetClients + // *Response_WifiGetDiagnostics // *Response_WifiGetHistory // *Response_WifiGetPingMetrics // *Response_WifiGetStatus // *Response_WifiSetConfig + // *Response_WifiGetConfig // *Response_WifiSetup + // *Response_WifiGetPersistentStats + // *Response_WifiSetMeshDeviceTrust + // *Response_WifiSetMeshConfig + // *Response_WifiGetClientHistory Response isResponse_Response `protobuf_oneof:"response"` } @@ -651,6 +1225,13 @@ func (x *Response) GetStatus() *status.Status { return nil } +func (x *Response) GetApiVersion() uint64 { + if x != nil { + return x.ApiVersion + } + return 0 +} + func (m *Response) GetResponse() isResponse_Response { if m != nil { return m.Response @@ -665,6 +1246,13 @@ func (x *Response) GetGetNextId() *GetNextIdResponse { return nil } +func (x *Response) GetEnableDebugTelem() *EnableDebugTelemResponse { + if x, ok := x.GetResponse().(*Response_EnableDebugTelem); ok { + return x.EnableDebugTelem + } + return nil +} + func (x *Response) GetFactoryReset() *FactoryResetResponse { if x, ok := x.GetResponse().(*Response_FactoryReset); ok { return x.FactoryReset @@ -738,10 +1326,94 @@ func (x *Response) GetSetTrustedKeys() *SetTrustedKeys func (x *Response) GetUpdate() *UpdateResponse { if x, ok := x.GetResponse().(*Response_Update); ok { return x.Update + } + return nil +} + +func (x *Response) GetGetLocation() *GetLocationResponse { + if x, ok := x.GetResponse().(*Response_GetLocation); ok { + return x.GetLocation + } + return nil +} + +func (x *Response) GetGetHeapDump() *GetHeapDumpResponse { + if x, ok := x.GetResponse().(*Response_GetHeapDump); ok { + return x.GetHeapDump + } + return nil +} + +func (x *Response) GetRestartControl() *RestartControlResponse { + if x, ok := x.GetResponse().(*Response_RestartControl); ok { + return x.RestartControl + } + return nil +} + +func (x *Response) GetFuse() *FuseResponse { + if x, ok := x.GetResponse().(*Response_Fuse); ok { + return x.Fuse + } + return nil +} + +func (x *Response) GetGetConnections() *GetConnectionsResponse { + if x, ok := x.GetResponse().(*Response_GetConnections); ok { + return x.GetConnections + } + return nil +} + +func (x *Response) GetStartSpeedtest() *StartSpeedtestResponse { + if x, ok := x.GetResponse().(*Response_StartSpeedtest); ok { + return x.StartSpeedtest + } + return nil +} + +func (x *Response) GetGetSpeedtestStatus() *GetSpeedtestStatusResponse { + if x, ok := x.GetResponse().(*Response_GetSpeedtestStatus); ok { + return x.GetSpeedtestStatus + } + return nil +} + +func (x *Response) GetReportClientSpeedtest() *ReportClientSpeedtestResponse { + if x, ok := x.GetResponse().(*Response_ReportClientSpeedtest); ok { + return x.ReportClientSpeedtest } return nil } +func (x *Response) GetInitiateRemoteSsh() *InitiateRemoteSshResponse { + if x, ok := x.GetResponse().(*Response_InitiateRemoteSsh); ok { + return x.InitiateRemoteSsh + } + return nil +} + +func (x *Response) GetSelfTest() *SelfTestResponse { + if x, ok := x.GetResponse().(*Response_SelfTest); ok { + return x.SelfTest + } + return nil +} + +func (x *Response) GetSetTestMode() *SetTestModeResponse { + if x, ok := x.GetResponse().(*Response_SetTestMode); ok { + return x.SetTestMode + } + return nil +} + +func (x *Response) GetSoftwareUpdate() *SoftwareUpdateResponse { + if x, ok := x.GetResponse().(*Response_SoftwareUpdate); ok { + return x.SoftwareUpdate + } + return nil +} + func (x *Response) GetDishAuthenticate() *DishAuthenticateResponse { if x, ok := x.GetResponse().(*Response_DishAuthenticate); ok { return x.DishAuthenticate @@ -749,6 +1421,13 @@ func (x *Response) GetDishAuthenticate() *DishAuthenti return nil } +func (x *Response) GetDishGetContext() *DishGetContextResponse { + if x, ok := x.GetResponse().(*Response_DishGetContext); ok { + return x.DishGetContext + } + return nil +} + func (x *Response) GetDishGetHistory() *DishGetHistoryResponse { if x, ok := x.GetResponse().(*Response_DishGetHistory); ok { return x.DishGetHistory @@ -763,6 +1442,13 @@ func (x *Response) GetDishGetStatus() *DishGetStatusRe return nil } +func (x *Response) GetDishGetObstructionMap() *DishGetObstructionMapResponse { + if x, ok := x.GetResponse().(*Response_DishGetObstructionMap); ok { + return x.DishGetObstructionMap + } + return nil +} + func (x *Response) GetDishStow() *DishStowResponse { if x, ok := x.GetResponse().(*Response_DishStow); ok { return x.DishStow @@ -770,6 +1456,41 @@ func (x *Response) GetDishStow() *DishStowResponse { return nil } +func (x *Response) GetStartDishSelfTest() *StartDishSelfTestResponse { + if x, ok := x.GetResponse().(*Response_StartDishSelfTest); ok { + return x.StartDishSelfTest + } + return nil +} + +func (x *Response) GetDishSetEmc() *DishSetEmcResponse { + if x, ok := x.GetResponse().(*Response_DishSetEmc); ok { + return x.DishSetEmc + } + return nil +} + +func (x *Response) GetDishGetEmc() *DishGetEmcResponse { + if x, ok := x.GetResponse().(*Response_DishGetEmc); ok { + return x.DishGetEmc + } + return nil +} + +func (x *Response) GetDishSetConfig() *DishSetConfigResponse { + if x, ok := x.GetResponse().(*Response_DishSetConfig); ok { + return x.DishSetConfig + } + return nil +} + +func (x *Response) GetDishGetConfig() *DishGetConfigResponse { + if x, ok := x.GetResponse().(*Response_DishGetConfig); ok { + return x.DishGetConfig + } + return nil +} + func (x *Response) GetTransceiverIfLoopbackTest() *TransceiverIFLoopbackTestResponse { if x, ok := x.GetResponse().(*Response_TransceiverIfLoopbackTest); ok { return x.TransceiverIfLoopbackTest @@ -784,6 +1505,13 @@ func (x *Response) GetTransceiverGetStatus() *Transcei return nil } +func (x *Response) GetTransceiverGetTelemetry() *TransceiverGetTelemetryResponse { + if x, ok := x.GetResponse().(*Response_TransceiverGetTelemetry); ok { + return x.TransceiverGetTelemetry + } + return nil +} + func (x *Response) GetWifiAuthenticate() *WifiAuthenticateResponse { if x, ok := x.GetResponse().(*Response_WifiAuthenticate); ok { return x.WifiAuthenticate @@ -798,6 +1526,13 @@ func (x *Response) GetWifiGetClients() *WifiGetClients return nil } +func (x *Response) GetWifiGetDiagnostics() *WifiGetDiagnosticsResponse { + if x, ok := x.GetResponse().(*Response_WifiGetDiagnostics); ok { + return x.WifiGetDiagnostics + } + return nil +} + func (x *Response) GetWifiGetHistory() *WifiGetHistoryResponse { if x, ok := x.GetResponse().(*Response_WifiGetHistory); ok { return x.WifiGetHistory @@ -826,6 +1561,13 @@ func (x *Response) GetWifiSetConfig() *WifiSetConfigRe return nil } +func (x *Response) GetWifiGetConfig() *WifiGetConfigResponse { + if x, ok := x.GetResponse().(*Response_WifiGetConfig); ok { + return x.WifiGetConfig + } + return nil +} + func (x *Response) GetWifiSetup() *WifiSetupResponse { if x, ok := x.GetResponse().(*Response_WifiSetup); ok { return x.WifiSetup @@ -833,6 +1575,34 @@ func (x *Response) GetWifiSetup() *WifiSetupResponse { return nil } +func (x *Response) GetWifiGetPersistentStats() *WifiGetPersistentStatsResponse { + if x, ok := x.GetResponse().(*Response_WifiGetPersistentStats); ok { + return x.WifiGetPersistentStats + } + return nil +} + +func (x *Response) GetWifiSetMeshDeviceTrust() *WifiSetMeshDeviceTrustResponse { + if x, ok := x.GetResponse().(*Response_WifiSetMeshDeviceTrust); ok { + return x.WifiSetMeshDeviceTrust + } + return nil +} + +func (x *Response) GetWifiSetMeshConfig() *WifiSetMeshConfigResponse { + if x, ok := x.GetResponse().(*Response_WifiSetMeshConfig); ok { + return x.WifiSetMeshConfig + } + return nil +} + +func (x *Response) GetWifiGetClientHistory() *WifiGetClientHistoryResponse { + if x, ok := x.GetResponse().(*Response_WifiGetClientHistory); ok { + return x.WifiGetClientHistory + } + return nil +} + type isResponse_Response interface { isResponse_Response() } @@ -841,6 +1611,10 @@ type Response_GetNextId struct { GetNextId *GetNextIdResponse `protobuf:"bytes,1006,opt,name=get_next_id,json=getNextId,proto3,oneof"` } +type Response_EnableDebugTelem struct { + EnableDebugTelem *EnableDebugTelemResponse `protobuf:"bytes,1034,opt,name=enable_debug_telem,json=enableDebugTelem,proto3,oneof"` +} + type Response_FactoryReset struct { FactoryReset *FactoryResetResponse `protobuf:"bytes,1011,opt,name=factory_reset,json=factoryReset,proto3,oneof"` } @@ -885,10 +1659,62 @@ type Response_Update struct { Update *UpdateResponse `protobuf:"bytes,1014,opt,name=update,proto3,oneof"` } +type Response_GetLocation struct { + GetLocation *GetLocationResponse `protobuf:"bytes,1017,opt,name=get_location,json=getLocation,proto3,oneof"` +} + +type Response_GetHeapDump struct { + GetHeapDump *GetHeapDumpResponse `protobuf:"bytes,1019,opt,name=get_heap_dump,json=getHeapDump,proto3,oneof"` +} + +type Response_RestartControl struct { + RestartControl *RestartControlResponse `protobuf:"bytes,1020,opt,name=restart_control,json=restartControl,proto3,oneof"` +} + +type Response_Fuse struct { + Fuse *FuseResponse `protobuf:"bytes,1021,opt,name=fuse,proto3,oneof"` +} + +type Response_GetConnections struct { + GetConnections *GetConnectionsResponse `protobuf:"bytes,1023,opt,name=get_connections,json=getConnections,proto3,oneof"` +} + +type Response_StartSpeedtest struct { + StartSpeedtest *StartSpeedtestResponse `protobuf:"bytes,1027,opt,name=start_speedtest,json=startSpeedtest,proto3,oneof"` +} + +type Response_GetSpeedtestStatus struct { + GetSpeedtestStatus *GetSpeedtestStatusResponse `protobuf:"bytes,1028,opt,name=get_speedtest_status,json=getSpeedtestStatus,proto3,oneof"` +} + +type Response_ReportClientSpeedtest struct { + ReportClientSpeedtest *ReportClientSpeedtestResponse `protobuf:"bytes,1029,opt,name=report_client_speedtest,json=reportClientSpeedtest,proto3,oneof"` +} + +type Response_InitiateRemoteSsh struct { + InitiateRemoteSsh *InitiateRemoteSshResponse `protobuf:"bytes,1030,opt,name=initiate_remote_ssh,json=initiateRemoteSsh,proto3,oneof"` +} + +type Response_SelfTest struct { + SelfTest *SelfTestResponse `protobuf:"bytes,1031,opt,name=self_test,json=selfTest,proto3,oneof"` +} + +type Response_SetTestMode struct { + SetTestMode *SetTestModeResponse `protobuf:"bytes,1032,opt,name=set_test_mode,json=setTestMode,proto3,oneof"` +} + +type Response_SoftwareUpdate struct { + SoftwareUpdate *SoftwareUpdateResponse `protobuf:"bytes,1033,opt,name=software_update,json=softwareUpdate,proto3,oneof"` +} + type Response_DishAuthenticate struct { DishAuthenticate *DishAuthenticateResponse `protobuf:"bytes,2005,opt,name=dish_authenticate,json=dishAuthenticate,proto3,oneof"` } +type Response_DishGetContext struct { + DishGetContext *DishGetContextResponse `protobuf:"bytes,2003,opt,name=dish_get_context,json=dishGetContext,proto3,oneof"` +} + type Response_DishGetHistory struct { DishGetHistory *DishGetHistoryResponse `protobuf:"bytes,2006,opt,name=dish_get_history,json=dishGetHistory,proto3,oneof"` } @@ -897,10 +1723,34 @@ type Response_DishGetStatus struct { DishGetStatus *DishGetStatusResponse `protobuf:"bytes,2004,opt,name=dish_get_status,json=dishGetStatus,proto3,oneof"` } +type Response_DishGetObstructionMap struct { + DishGetObstructionMap *DishGetObstructionMapResponse `protobuf:"bytes,2008,opt,name=dish_get_obstruction_map,json=dishGetObstructionMap,proto3,oneof"` +} + type Response_DishStow struct { DishStow *DishStowResponse `protobuf:"bytes,2002,opt,name=dish_stow,json=dishStow,proto3,oneof"` } +type Response_StartDishSelfTest struct { + StartDishSelfTest *StartDishSelfTestResponse `protobuf:"bytes,2012,opt,name=start_dish_self_test,json=startDishSelfTest,proto3,oneof"` +} + +type Response_DishSetEmc struct { + DishSetEmc *DishSetEmcResponse `protobuf:"bytes,2007,opt,name=dish_set_emc,json=dishSetEmc,proto3,oneof"` +} + +type Response_DishGetEmc struct { + DishGetEmc *DishGetEmcResponse `protobuf:"bytes,2009,opt,name=dish_get_emc,json=dishGetEmc,proto3,oneof"` +} + +type Response_DishSetConfig struct { + DishSetConfig *DishSetConfigResponse `protobuf:"bytes,2010,opt,name=dish_set_config,json=dishSetConfig,proto3,oneof"` +} + +type Response_DishGetConfig struct { + DishGetConfig *DishGetConfigResponse `protobuf:"bytes,2011,opt,name=dish_get_config,json=dishGetConfig,proto3,oneof"` +} + type Response_TransceiverIfLoopbackTest struct { TransceiverIfLoopbackTest *TransceiverIFLoopbackTestResponse `protobuf:"bytes,4001,opt,name=transceiver_if_loopback_test,json=transceiverIfLoopbackTest,proto3,oneof"` } @@ -909,6 +1759,10 @@ type Response_TransceiverGetStatus struct { TransceiverGetStatus *TransceiverGetStatusResponse `protobuf:"bytes,4003,opt,name=transceiver_get_status,json=transceiverGetStatus,proto3,oneof"` } +type Response_TransceiverGetTelemetry struct { + TransceiverGetTelemetry *TransceiverGetTelemetryResponse `protobuf:"bytes,4004,opt,name=transceiver_get_telemetry,json=transceiverGetTelemetry,proto3,oneof"` +} + type Response_WifiAuthenticate struct { WifiAuthenticate *WifiAuthenticateResponse `protobuf:"bytes,3005,opt,name=wifi_authenticate,json=wifiAuthenticate,proto3,oneof"` } @@ -917,6 +1771,10 @@ type Response_WifiGetClients struct { WifiGetClients *WifiGetClientsResponse `protobuf:"bytes,3002,opt,name=wifi_get_clients,json=wifiGetClients,proto3,oneof"` } +type Response_WifiGetDiagnostics struct { + WifiGetDiagnostics *WifiGetDiagnosticsResponse `protobuf:"bytes,3008,opt,name=wifi_get_diagnostics,json=wifiGetDiagnostics,proto3,oneof"` +} + type Response_WifiGetHistory struct { WifiGetHistory *WifiGetHistoryResponse `protobuf:"bytes,3006,opt,name=wifi_get_history,json=wifiGetHistory,proto3,oneof"` } @@ -933,12 +1791,34 @@ type Response_WifiSetConfig struct { WifiSetConfig *WifiSetConfigResponse `protobuf:"bytes,3001,opt,name=wifi_set_config,json=wifiSetConfig,proto3,oneof"` } +type Response_WifiGetConfig struct { + WifiGetConfig *WifiGetConfigResponse `protobuf:"bytes,3009,opt,name=wifi_get_config,json=wifiGetConfig,proto3,oneof"` +} + type Response_WifiSetup struct { WifiSetup *WifiSetupResponse `protobuf:"bytes,3003,opt,name=wifi_setup,json=wifiSetup,proto3,oneof"` } +type Response_WifiGetPersistentStats struct { + WifiGetPersistentStats *WifiGetPersistentStatsResponse `protobuf:"bytes,3022,opt,name=wifi_get_persistent_stats,json=wifiGetPersistentStats,proto3,oneof"` +} + +type Response_WifiSetMeshDeviceTrust struct { + WifiSetMeshDeviceTrust *WifiSetMeshDeviceTrustResponse `protobuf:"bytes,3012,opt,name=wifi_set_mesh_device_trust,json=wifiSetMeshDeviceTrust,proto3,oneof"` +} + +type Response_WifiSetMeshConfig struct { + WifiSetMeshConfig *WifiSetMeshConfigResponse `protobuf:"bytes,3013,opt,name=wifi_set_mesh_config,json=wifiSetMeshConfig,proto3,oneof"` +} + +type Response_WifiGetClientHistory struct { + WifiGetClientHistory *WifiGetClientHistoryResponse `protobuf:"bytes,3015,opt,name=wifi_get_client_history,json=wifiGetClientHistory,proto3,oneof"` +} + func (*Response_GetNextId) isResponse_Response() {} +func (*Response_EnableDebugTelem) isResponse_Response() {} + func (*Response_FactoryReset) isResponse_Response() {} func (*Response_GetDeviceInfo) isResponse_Response() {} @@ -960,23 +1840,65 @@ func (*Response_SetSku) isResponse_Response() {} func (*Response_SetTrustedKeys) isResponse_Response() {} func (*Response_Update) isResponse_Response() {} + +func (*Response_GetLocation) isResponse_Response() {} + +func (*Response_GetHeapDump) isResponse_Response() {} + +func (*Response_RestartControl) isResponse_Response() {} + +func (*Response_Fuse) isResponse_Response() {} + +func (*Response_GetConnections) isResponse_Response() {} + +func (*Response_StartSpeedtest) isResponse_Response() {} + +func (*Response_GetSpeedtestStatus) isResponse_Response() {} + +func (*Response_ReportClientSpeedtest) isResponse_Response() {} + +func (*Response_InitiateRemoteSsh) isResponse_Response() {} + +func (*Response_SelfTest) isResponse_Response() {} + +func (*Response_SetTestMode) isResponse_Response() {} + +func (*Response_SoftwareUpdate) isResponse_Response() {} func (*Response_DishAuthenticate) isResponse_Response() {} +func (*Response_DishGetContext) isResponse_Response() {} + func (*Response_DishGetHistory) isResponse_Response() {} func (*Response_DishGetStatus) isResponse_Response() {} +func (*Response_DishGetObstructionMap) isResponse_Response() {} + func (*Response_DishStow) isResponse_Response() {} +func (*Response_StartDishSelfTest) isResponse_Response() {} + +func (*Response_DishSetEmc) isResponse_Response() {} + +func (*Response_DishGetEmc) isResponse_Response() {} + +func (*Response_DishSetConfig) isResponse_Response() {} + +func (*Response_DishGetConfig) isResponse_Response() {} + func (*Response_TransceiverIfLoopbackTest) isResponse_Response() {} func (*Response_TransceiverGetStatus) isResponse_Response() {} +func (*Response_TransceiverGetTelemetry) isResponse_Response() {} + func (*Response_WifiAuthenticate) isResponse_Response() {} func (*Response_WifiGetClients) isResponse_Response() {} +func (*Response_WifiGetDiagnostics) isResponse_Response() {} + func (*Response_WifiGetHistory) isResponse_Response() {} func (*Response_WifiGetPingMetrics) isResponse_Response() {} @@ -985,8 +1907,18 @@ func (*Response_WifiGetStatus) isResponse_Response() { func (*Response_WifiSetConfig) isResponse_Response() {} +func (*Response_WifiGetConfig) isResponse_Response() {} + func (*Response_WifiSetup) isResponse_Response() {} +func (*Response_WifiGetPersistentStats) isResponse_Response() {} + +func (*Response_WifiSetMeshDeviceTrust) isResponse_Response() {} + +func (*Response_WifiSetMeshConfig) isResponse_Response() {} + +func (*Response_WifiGetClientHistory) isResponse_Response() {} + type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -996,6 +1928,7 @@ type Event struct { // // *Event_WifiNewClientConnected // *Event_WifiAccountBonding + // *Event_WifiNewPeer Event isEvent_Event `protobuf_oneof:"event"` } @@ -1052,6 +1985,13 @@ func (x *Event) GetWifiAccountBonding() *WifiAccountBo return nil } +func (x *Event) GetWifiNewPeer() *WifiNewPeerEvent { + if x, ok := x.GetEvent().(*Event_WifiNewPeer); ok { + return x.WifiNewPeer + } + return nil +} + type isEvent_Event interface { isEvent_Event() } @@ -1064,18 +2004,26 @@ type Event_WifiAccountBonding struct { WifiAccountBonding *WifiAccountBondingEvent `protobuf:"bytes,3002,opt,name=wifi_account_bonding,json=wifiAccountBonding,proto3,oneof"` } +type Event_WifiNewPeer struct { + WifiNewPeer *WifiNewPeerEvent `protobuf:"bytes,3003,opt,name=wifi_new_peer,json=wifiNewPeer,proto3,oneof"` +} + func (*Event_WifiNewClientConnected) isEvent_Event() {} func (*Event_WifiAccountBonding) isEvent_Event() {} -type FactoryResetRequest struct { +func (*Event_WifiNewPeer) isEvent_Event() {} + +type EnableDebugTelemRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + DurationM uint32 `protobuf:"varint,1,opt,name=duration_m,json=durationM,proto3" json:"duration_m,omitempty"` } -func (x *FactoryResetRequest) Reset() { - *x = FactoryResetRequest{} +func (x *EnableDebugTelemRequest) Reset() { + *x = EnableDebugTelemRequest{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_device_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1083,13 +2031,13 @@ func (x *FactoryResetRequest) Reset() { } } -func (x *FactoryResetRequest) String() string { +func (x *EnableDebugTelemRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FactoryResetRequest) ProtoMessage() {} +func (*EnableDebugTelemRequest) ProtoMessage() {} -func (x *FactoryResetRequest) ProtoReflect() protoreflect.Message { +func (x *EnableDebugTelemRequest) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_device_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1101,19 +2049,26 @@ func (x *FactoryResetRequest) ProtoReflect() protorefl return mi.MessageOf(x) } -// Deprecated: Use FactoryResetRequest.ProtoReflect.Descriptor instead. -func (*FactoryResetRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use EnableDebugTelemRequest.ProtoReflect.Descriptor instead. +func (*EnableDebugTelemRequest) Descriptor() ([]byte, []int) { return file_spacex_api_device_device_proto_rawDescGZIP(), []int{5} } -type FactoryResetResponse struct { +func (x *EnableDebugTelemRequest) GetDurationM() uint32 { + if x != nil { + return x.DurationM + } + return 0 +} + +type EnableDebugTelemResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *FactoryResetResponse) Reset() { - *x = FactoryResetResponse{} +func (x *EnableDebugTelemResponse) Reset() { + *x = EnableDebugTelemResponse{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_device_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1121,13 +2076,13 @@ func (x *FactoryResetResponse) Reset() { } } -func (x *FactoryResetResponse) String() string { +func (x *EnableDebugTelemResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FactoryResetResponse) ProtoMessage() {} +func (*EnableDebugTelemResponse) ProtoMessage() {} -func (x *FactoryResetResponse) ProtoReflect() protoreflect.Message { +func (x *EnableDebugTelemResponse) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_device_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1139,19 +2094,19 @@ func (x *FactoryResetResponse) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use FactoryResetResponse.ProtoReflect.Descriptor instead. -func (*FactoryResetResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use EnableDebugTelemResponse.ProtoReflect.Descriptor instead. +func (*EnableDebugTelemResponse) Descriptor() ([]byte, []int) { return file_spacex_api_device_device_proto_rawDescGZIP(), []int{6} } -type GetHistoryRequest struct { +type FactoryResetRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *GetHistoryRequest) Reset() { - *x = GetHistoryRequest{} +func (x *FactoryResetRequest) Reset() { + *x = FactoryResetRequest{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_device_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1159,13 +2114,13 @@ func (x *GetHistoryRequest) Reset() { } } -func (x *GetHistoryRequest) String() string { +func (x *FactoryResetRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetHistoryRequest) ProtoMessage() {} +func (*FactoryResetRequest) ProtoMessage() {} -func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message { +func (x *FactoryResetRequest) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_device_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1177,19 +2132,19 @@ func (x *GetHistoryRequest) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use GetHistoryRequest.ProtoReflect.Descriptor instead. -func (*GetHistoryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use FactoryResetRequest.ProtoReflect.Descriptor instead. +func (*FactoryResetRequest) Descriptor() ([]byte, []int) { return file_spacex_api_device_device_proto_rawDescGZIP(), []int{7} } -type GetLogRequest struct { +type FactoryResetResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *GetLogRequest) Reset() { - *x = GetLogRequest{} +func (x *FactoryResetResponse) Reset() { + *x = FactoryResetResponse{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_device_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1197,13 +2152,13 @@ func (x *GetLogRequest) Reset() { } } -func (x *GetLogRequest) String() string { +func (x *FactoryResetResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLogRequest) ProtoMessage() {} +func (*FactoryResetResponse) ProtoMessage() {} -func (x *GetLogRequest) ProtoReflect() protoreflect.Message { +func (x *FactoryResetResponse) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_device_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1215,16 +2170,168 @@ func (x *GetLogRequest) ProtoReflect() protoreflect.Me return mi.MessageOf(x) } -// Deprecated: Use GetLogRequest.ProtoReflect.Descriptor instead. -func (*GetLogRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use FactoryResetResponse.ProtoReflect.Descriptor instead. +func (*FactoryResetResponse) Descriptor() ([]byte, []int) { return file_spacex_api_device_device_proto_rawDescGZIP(), []int{8} } -type GetLogResponse struct { +type FuseRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields +} + +func (x *FuseRequest) Reset() { + *x = FuseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FuseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FuseRequest) ProtoMessage() {} + +func (x *FuseRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[9] + 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 FuseRequest.ProtoReflect.Descriptor instead. +func (*FuseRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{9} +} + +type FuseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FuseResponse) Reset() { + *x = FuseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FuseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FuseResponse) ProtoMessage() {} + +func (x *FuseResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FuseResponse.ProtoReflect.Descriptor instead. +func (*FuseResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{10} +} + +type GetHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetHistoryRequest) Reset() { + *x = GetHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHistoryRequest) ProtoMessage() {} + +func (x *GetHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHistoryRequest.ProtoReflect.Descriptor instead. +func (*GetHistoryRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{11} +} + +type GetLogRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetLogRequest) Reset() { + *x = GetLogRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLogRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLogRequest) ProtoMessage() {} +func (x *GetLogRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLogRequest.ProtoReflect.Descriptor instead. +func (*GetLogRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{12} +} + +type GetLogResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Syslog string `protobuf:"bytes,1,opt,name=syslog,proto3" json:"syslog,omitempty"` OfflineLog string `protobuf:"bytes,2,opt,name=offline_log,json=offlineLog,proto3" json:"offline_log,omitempty"` } @@ -1232,7 +2339,7 @@ type GetLogResponse struct { func (x *GetLogResponse) Reset() { *x = GetLogResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[9] + mi := &file_spacex_api_device_device_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1245,7 +2352,7 @@ func (x *GetLogResponse) String() string { func (*GetLogResponse) ProtoMessage() {} func (x *GetLogResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[9] + mi := &file_spacex_api_device_device_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1258,7 +2365,7 @@ func (x *GetLogResponse) ProtoReflect() protoreflect.M // Deprecated: Use GetLogResponse.ProtoReflect.Descriptor instead. func (*GetLogResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{9} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{13} } func (x *GetLogResponse) GetSyslog() string { @@ -1284,7 +2391,7 @@ type GetPingRequest struct { func (x *GetPingRequest) Reset() { *x = GetPingRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[10] + mi := &file_spacex_api_device_device_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1297,7 +2404,7 @@ func (x *GetPingRequest) String() string { func (*GetPingRequest) ProtoMessage() {} func (x *GetPingRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[10] + mi := &file_spacex_api_device_device_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1310,7 +2417,7 @@ func (x *GetPingRequest) ProtoReflect() protoreflect.M // Deprecated: Use GetPingRequest.ProtoReflect.Descriptor instead. func (*GetPingRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{10} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{14} } type GetPingResponse struct { @@ -1324,7 +2431,7 @@ type GetPingResponse struct { func (x *GetPingResponse) Reset() { *x = GetPingResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[11] + mi := &file_spacex_api_device_device_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1337,7 +2444,7 @@ func (x *GetPingResponse) String() string { func (*GetPingResponse) ProtoMessage() {} func (x *GetPingResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[11] + mi := &file_spacex_api_device_device_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1350,7 +2457,7 @@ func (x *GetPingResponse) ProtoReflect() protoreflect. // Deprecated: Use GetPingResponse.ProtoReflect.Descriptor instead. func (*GetPingResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{11} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{15} } func (x *GetPingResponse) GetResults() map[string]*PingResult { @@ -1371,7 +2478,7 @@ type PingHostRequest struct { func (x *PingHostRequest) Reset() { *x = PingHostRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[12] + mi := &file_spacex_api_device_device_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1384,7 +2491,7 @@ func (x *PingHostRequest) String() string { func (*PingHostRequest) ProtoMessage() {} func (x *PingHostRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[12] + mi := &file_spacex_api_device_device_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1397,7 +2504,7 @@ func (x *PingHostRequest) ProtoReflect() protoreflect. // Deprecated: Use PingHostRequest.ProtoReflect.Descriptor instead. func (*PingHostRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{12} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{16} } func (x *PingHostRequest) GetAddress() string { @@ -1418,7 +2525,7 @@ type PingHostResponse struct { func (x *PingHostResponse) Reset() { *x = PingHostResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[13] + mi := &file_spacex_api_device_device_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1431,7 +2538,7 @@ func (x *PingHostResponse) String() string { func (*PingHostResponse) ProtoMessage() {} func (x *PingHostResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[13] + mi := &file_spacex_api_device_device_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1444,7 +2551,7 @@ func (x *PingHostResponse) ProtoReflect() protoreflect // Deprecated: Use PingHostResponse.ProtoReflect.Descriptor instead. func (*PingHostResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{13} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{17} } func (x *PingHostResponse) GetResult() *PingResult { @@ -1463,7 +2570,7 @@ type GetStatusRequest struct { func (x *GetStatusRequest) Reset() { *x = GetStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[14] + mi := &file_spacex_api_device_device_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1476,7 +2583,7 @@ func (x *GetStatusRequest) String() string { func (*GetStatusRequest) ProtoMessage() {} func (x *GetStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[14] + mi := &file_spacex_api_device_device_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1489,7 +2596,7 @@ func (x *GetStatusRequest) ProtoReflect() protoreflect // Deprecated: Use GetStatusRequest.ProtoReflect.Descriptor instead. func (*GetStatusRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{14} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{18} } type RebootRequest struct { @@ -1501,7 +2608,7 @@ type RebootRequest struct { func (x *RebootRequest) Reset() { *x = RebootRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[15] + mi := &file_spacex_api_device_device_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1514,7 +2621,7 @@ func (x *RebootRequest) String() string { func (*RebootRequest) ProtoMessage() {} func (x *RebootRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[15] + mi := &file_spacex_api_device_device_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1527,7 +2634,7 @@ func (x *RebootRequest) ProtoReflect() protoreflect.Me // Deprecated: Use RebootRequest.ProtoReflect.Descriptor instead. func (*RebootRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{15} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{19} } type RebootResponse struct { @@ -1539,7 +2646,7 @@ type RebootResponse struct { func (x *RebootResponse) Reset() { *x = RebootResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[16] + mi := &file_spacex_api_device_device_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1552,7 +2659,7 @@ func (x *RebootResponse) String() string { func (*RebootResponse) ProtoMessage() {} func (x *RebootResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[16] + mi := &file_spacex_api_device_device_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1565,19 +2672,158 @@ func (x *RebootResponse) ProtoReflect() protoreflect.M // Deprecated: Use RebootResponse.ProtoReflect.Descriptor instead. func (*RebootResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{16} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{20} +} + +type SpeedTestStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StartTime uint64 `protobuf:"varint,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + UploadMbps float32 `protobuf:"fixed32,1,opt,name=upload_mbps,json=uploadMbps,proto3" json:"upload_mbps,omitempty"` + DownloadMbps float32 `protobuf:"fixed32,2,opt,name=download_mbps,json=downloadMbps,proto3" json:"download_mbps,omitempty"` + LatencyMs float32 `protobuf:"fixed32,3,opt,name=latency_ms,json=latencyMs,proto3" json:"latency_ms,omitempty"` +} + +func (x *SpeedTestStats) Reset() { + *x = SpeedTestStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedTestStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedTestStats) ProtoMessage() {} + +func (x *SpeedTestStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[21] + 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 SpeedTestStats.ProtoReflect.Descriptor instead. +func (*SpeedTestStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{21} +} + +func (x *SpeedTestStats) GetStartTime() uint64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *SpeedTestStats) GetUploadMbps() float32 { + if x != nil { + return x.UploadMbps + } + return 0 } +func (x *SpeedTestStats) GetDownloadMbps() float32 { + if x != nil { + return x.DownloadMbps + } + return 0 +} + +func (x *SpeedTestStats) GetLatencyMs() float32 { + if x != nil { + return x.LatencyMs + } + return 0 +} + +type ClientPlatform struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform ClientPlatform_Platform `protobuf:"varint,1,opt,name=platform,proto3,enum=SpaceX.API.Device.ClientPlatform_Platform" json:"platform,omitempty"` + MajorVersion float32 `protobuf:"fixed32,2,opt,name=major_version,json=majorVersion,proto3" json:"major_version,omitempty"` + MinorVersion float32 `protobuf:"fixed32,3,opt,name=minor_version,json=minorVersion,proto3" json:"minor_version,omitempty"` +} + +func (x *ClientPlatform) Reset() { + *x = ClientPlatform{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientPlatform) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientPlatform) ProtoMessage() {} + +func (x *ClientPlatform) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[22] + 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 ClientPlatform.ProtoReflect.Descriptor instead. +func (*ClientPlatform) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{22} +} + +func (x *ClientPlatform) GetPlatform() ClientPlatform_Platform { + if x != nil { + return x.Platform + } + return ClientPlatform_UNKNOWN +} + +func (x *ClientPlatform) GetMajorVersion() float32 { + if x != nil { + return x.MajorVersion + } + return 0 +} + +func (x *ClientPlatform) GetMinorVersion() float32 { + if x != nil { + return x.MinorVersion + } + return 0 +} + type SpeedTestRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"` + ClientSpeedtest *SpeedTestStats `protobuf:"bytes,1,opt,name=client_speedtest,json=clientSpeedtest,proto3" json:"client_speedtest,omitempty"` + ClientRssi float32 `protobuf:"fixed32,2,opt,name=client_rssi,json=clientRssi,proto3" json:"client_rssi,omitempty"` + ClientPlatform *ClientPlatform `protobuf:"bytes,3,opt,name=client_platform,json=clientPlatform,proto3" json:"client_platform,omitempty"` } func (x *SpeedTestRequest) Reset() { *x = SpeedTestRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[17] + mi := &file_spacex_api_device_device_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1590,7 +2836,7 @@ func (x *SpeedTestRequest) String() string { func (*SpeedTestRequest) ProtoMessage() {} func (x *SpeedTestRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[17] + mi := &file_spacex_api_device_device_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1603,23 +2849,69 @@ func (x *SpeedTestRequest) ProtoReflect() protoreflect // Deprecated: Use SpeedTestRequest.ProtoReflect.Descriptor instead. func (*SpeedTestRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{17} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{23} } +func (x *SpeedTestRequest) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SpeedTestRequest) GetClientSpeedtest() *SpeedTestStats { + if x != nil { + return x.ClientSpeedtest + } + return nil +} + +func (x *SpeedTestRequest) GetClientRssi() float32 { + if x != nil { + return x.ClientRssi + } + return 0 +} + +func (x *SpeedTestRequest) GetClientPlatform() *ClientPlatform { + if x != nil { + return x.ClientPlatform + } + return nil +} + type SpeedTestResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Deprecated: Do not use. DownloadBps float32 `protobuf:"fixed32,1,opt,name=download_bps,json=downloadBps,proto3" json:"download_bps,omitempty"` - UploadBps float32 `protobuf:"fixed32,2,opt,name=upload_bps,json=uploadBps,proto3" json:"upload_bps,omitempty"` - LatencyS float32 `protobuf:"fixed32,3,opt,name=latency_s,json=latencyS,proto3" json:"latency_s,omitempty"` + // Deprecated: Do not use. + UploadBps float32 `protobuf:"fixed32,2,opt,name=upload_bps,json=uploadBps,proto3" json:"upload_bps,omitempty"` + // Deprecated: Do not use. + LatencyS float32 `protobuf:"fixed32,3,opt,name=latency_s,json=latencyS,proto3" json:"latency_s,omitempty"` + // Deprecated: Do not use. + DownloadMbps float32 `protobuf:"fixed32,4,opt,name=download_mbps,json=downloadMbps,proto3" json:"download_mbps,omitempty"` + // Deprecated: Do not use. + UploadMbps float32 `protobuf:"fixed32,5,opt,name=upload_mbps,json=uploadMbps,proto3" json:"upload_mbps,omitempty"` + // Deprecated: Do not use. + LatencyMs float32 `protobuf:"fixed32,6,opt,name=latency_ms,json=latencyMs,proto3" json:"latency_ms,omitempty"` + RouterSpeedtest *SpeedTestStats `protobuf:"bytes,15,opt,name=router_speedtest,json=routerSpeedtest,proto3" json:"router_speedtest,omitempty"` + DownloadMbps_1TcpConn float32 `protobuf:"fixed32,7,opt,name=download_mbps_1_tcp_conn,json=downloadMbps1TcpConn,proto3" json:"download_mbps_1_tcp_conn,omitempty"` + UploadMbps_1TcpConn float32 `protobuf:"fixed32,8,opt,name=upload_mbps_1_tcp_conn,json=uploadMbps1TcpConn,proto3" json:"upload_mbps_1_tcp_conn,omitempty"` + DownloadMbps_4TcpConn float32 `protobuf:"fixed32,9,opt,name=download_mbps_4_tcp_conn,json=downloadMbps4TcpConn,proto3" json:"download_mbps_4_tcp_conn,omitempty"` + UploadMbps_4TcpConn float32 `protobuf:"fixed32,10,opt,name=upload_mbps_4_tcp_conn,json=uploadMbps4TcpConn,proto3" json:"upload_mbps_4_tcp_conn,omitempty"` + DownloadMbps_16TcpConn float32 `protobuf:"fixed32,11,opt,name=download_mbps_16_tcp_conn,json=downloadMbps16TcpConn,proto3" json:"download_mbps_16_tcp_conn,omitempty"` + UploadMbps_16TcpConn float32 `protobuf:"fixed32,12,opt,name=upload_mbps_16_tcp_conn,json=uploadMbps16TcpConn,proto3" json:"upload_mbps_16_tcp_conn,omitempty"` + DownloadMbps_64TcpConn float32 `protobuf:"fixed32,13,opt,name=download_mbps_64_tcp_conn,json=downloadMbps64TcpConn,proto3" json:"download_mbps_64_tcp_conn,omitempty"` + UploadMbps_64TcpConn float32 `protobuf:"fixed32,14,opt,name=upload_mbps_64_tcp_conn,json=uploadMbps64TcpConn,proto3" json:"upload_mbps_64_tcp_conn,omitempty"` } func (x *SpeedTestResponse) Reset() { *x = SpeedTestResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[18] + mi := &file_spacex_api_device_device_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1632,7 +2924,7 @@ func (x *SpeedTestResponse) String() string { func (*SpeedTestResponse) ProtoMessage() {} func (x *SpeedTestResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[18] + mi := &file_spacex_api_device_device_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1645,9 +2937,10 @@ func (x *SpeedTestResponse) ProtoReflect() protoreflec // Deprecated: Use SpeedTestResponse.ProtoReflect.Descriptor instead. func (*SpeedTestResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{18} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{24} } +// Deprecated: Do not use. func (x *SpeedTestResponse) GetDownloadBps() float32 { if x != nil { return x.DownloadBps @@ -1655,6 +2948,7 @@ func (x *SpeedTestResponse) GetDownloadBps() float32 { return 0 } +// Deprecated: Do not use. func (x *SpeedTestResponse) GetUploadBps() float32 { if x != nil { return x.UploadBps @@ -1662,6 +2956,7 @@ func (x *SpeedTestResponse) GetUploadBps() float32 { return 0 } +// Deprecated: Do not use. func (x *SpeedTestResponse) GetLatencyS() float32 { if x != nil { return x.LatencyS @@ -1669,6 +2964,178 @@ func (x *SpeedTestResponse) GetLatencyS() float32 { return 0 } +// Deprecated: Do not use. +func (x *SpeedTestResponse) GetDownloadMbps() float32 { + if x != nil { + return x.DownloadMbps + } + return 0 +} + +// Deprecated: Do not use. +func (x *SpeedTestResponse) GetUploadMbps() float32 { + if x != nil { + return x.UploadMbps + } + return 0 +} + +// Deprecated: Do not use. +func (x *SpeedTestResponse) GetLatencyMs() float32 { + if x != nil { + return x.LatencyMs + } + return 0 +} + +func (x *SpeedTestResponse) GetRouterSpeedtest() *SpeedTestStats { + if x != nil { + return x.RouterSpeedtest + } + return nil +} + +func (x *SpeedTestResponse) GetDownloadMbps_1TcpConn() float32 { + if x != nil { + return x.DownloadMbps_1TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetUploadMbps_1TcpConn() float32 { + if x != nil { + return x.UploadMbps_1TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetDownloadMbps_4TcpConn() float32 { + if x != nil { + return x.DownloadMbps_4TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetUploadMbps_4TcpConn() float32 { + if x != nil { + return x.UploadMbps_4TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetDownloadMbps_16TcpConn() float32 { + if x != nil { + return x.DownloadMbps_16TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetUploadMbps_16TcpConn() float32 { + if x != nil { + return x.UploadMbps_16TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetDownloadMbps_64TcpConn() float32 { + if x != nil { + return x.DownloadMbps_64TcpConn + } + return 0 +} + +func (x *SpeedTestResponse) GetUploadMbps_64TcpConn() float32 { + if x != nil { + return x.UploadMbps_64TcpConn + } + return 0 +} + +type GetConnectionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetConnectionsRequest) Reset() { + *x = GetConnectionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConnectionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConnectionsRequest) ProtoMessage() {} + +func (x *GetConnectionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[25] + 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 GetConnectionsRequest.ProtoReflect.Descriptor instead. +func (*GetConnectionsRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{25} +} + +type GetConnectionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Services map[string]*GetConnectionsResponse_ServiceConnection `protobuf:"bytes,1,rep,name=services,proto3" json:"services,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *GetConnectionsResponse) Reset() { + *x = GetConnectionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConnectionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConnectionsResponse) ProtoMessage() {} + +func (x *GetConnectionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[26] + 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 GetConnectionsResponse.ProtoReflect.Descriptor instead. +func (*GetConnectionsResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{26} +} + +func (x *GetConnectionsResponse) GetServices() map[string]*GetConnectionsResponse_ServiceConnection { + if x != nil { + return x.Services + } + return nil +} + type GetDeviceInfoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1678,7 +3145,7 @@ type GetDeviceInfoRequest struct { func (x *GetDeviceInfoRequest) Reset() { *x = GetDeviceInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[19] + mi := &file_spacex_api_device_device_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1691,7 +3158,7 @@ func (x *GetDeviceInfoRequest) String() string { func (*GetDeviceInfoRequest) ProtoMessage() {} func (x *GetDeviceInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[19] + mi := &file_spacex_api_device_device_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1704,7 +3171,7 @@ func (x *GetDeviceInfoRequest) ProtoReflect() protoref // Deprecated: Use GetDeviceInfoRequest.ProtoReflect.Descriptor instead. func (*GetDeviceInfoRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{19} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{27} } type GetDeviceInfoResponse struct { @@ -1718,7 +3185,7 @@ type GetDeviceInfoResponse struct { func (x *GetDeviceInfoResponse) Reset() { *x = GetDeviceInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[20] + mi := &file_spacex_api_device_device_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1731,7 +3198,7 @@ func (x *GetDeviceInfoResponse) String() string { func (*GetDeviceInfoResponse) ProtoMessage() {} func (x *GetDeviceInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[20] + mi := &file_spacex_api_device_device_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1744,7 +3211,7 @@ func (x *GetDeviceInfoResponse) ProtoReflect() protore // Deprecated: Use GetDeviceInfoResponse.ProtoReflect.Descriptor instead. func (*GetDeviceInfoResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{20} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{28} } func (x *GetDeviceInfoResponse) GetDeviceInfo() *DeviceInfo { @@ -1765,7 +3232,7 @@ type SetTrustedKeysRequest struct { func (x *SetTrustedKeysRequest) Reset() { *x = SetTrustedKeysRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[21] + mi := &file_spacex_api_device_device_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1778,7 +3245,7 @@ func (x *SetTrustedKeysRequest) String() string { func (*SetTrustedKeysRequest) ProtoMessage() {} func (x *SetTrustedKeysRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[21] + mi := &file_spacex_api_device_device_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1791,7 +3258,7 @@ func (x *SetTrustedKeysRequest) ProtoReflect() protore // Deprecated: Use SetTrustedKeysRequest.ProtoReflect.Descriptor instead. func (*SetTrustedKeysRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{21} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{29} } func (x *SetTrustedKeysRequest) GetKeys() []*PublicKey { @@ -1810,7 +3277,7 @@ type SetTrustedKeysResponse struct { func (x *SetTrustedKeysResponse) Reset() { *x = SetTrustedKeysResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[22] + mi := &file_spacex_api_device_device_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1823,7 +3290,7 @@ func (x *SetTrustedKeysResponse) String() string { func (*SetTrustedKeysResponse) ProtoMessage() {} func (x *SetTrustedKeysResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[22] + mi := &file_spacex_api_device_device_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1836,7 +3303,7 @@ func (x *SetTrustedKeysResponse) ProtoReflect() protor // Deprecated: Use SetTrustedKeysResponse.ProtoReflect.Descriptor instead. func (*SetTrustedKeysResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{22} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{30} } type SetSkuRequest struct { @@ -1847,12 +3314,14 @@ type SetSkuRequest struct { Sku string `protobuf:"bytes,1,opt,name=sku,proto3" json:"sku,omitempty"` CountryCode string `protobuf:"bytes,2,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` ApplyCountryCode bool `protobuf:"varint,4,opt,name=apply_country_code,json=applyCountryCode,proto3" json:"apply_country_code,omitempty"` + PinCountryCode bool `protobuf:"varint,5,opt,name=pin_country_code,json=pinCountryCode,proto3" json:"pin_country_code,omitempty"` + CustomPowerTable bool `protobuf:"varint,6,opt,name=custom_power_table,json=customPowerTable,proto3" json:"custom_power_table,omitempty"` } func (x *SetSkuRequest) Reset() { *x = SetSkuRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[23] + mi := &file_spacex_api_device_device_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1865,7 +3334,7 @@ func (x *SetSkuRequest) String() string { func (*SetSkuRequest) ProtoMessage() {} func (x *SetSkuRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[23] + mi := &file_spacex_api_device_device_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1878,7 +3347,7 @@ func (x *SetSkuRequest) ProtoReflect() protoreflect.Me // Deprecated: Use SetSkuRequest.ProtoReflect.Descriptor instead. func (*SetSkuRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{23} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{31} } func (x *SetSkuRequest) GetSku() string { @@ -1902,6 +3371,20 @@ func (x *SetSkuRequest) GetApplyCountryCode() bool { return false } +func (x *SetSkuRequest) GetPinCountryCode() bool { + if x != nil { + return x.PinCountryCode + } + return false +} + +func (x *SetSkuRequest) GetCustomPowerTable() bool { + if x != nil { + return x.CustomPowerTable + } + return false +} + type SetSkuResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1911,7 +3394,7 @@ type SetSkuResponse struct { func (x *SetSkuResponse) Reset() { *x = SetSkuResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[24] + mi := &file_spacex_api_device_device_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1924,7 +3407,7 @@ func (x *SetSkuResponse) String() string { func (*SetSkuResponse) ProtoMessage() {} func (x *SetSkuResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[24] + mi := &file_spacex_api_device_device_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1937,7 +3420,7 @@ func (x *SetSkuResponse) ProtoReflect() protoreflect.M // Deprecated: Use SetSkuResponse.ProtoReflect.Descriptor instead. func (*SetSkuResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{24} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{32} } type UpdateRequest struct { @@ -1949,7 +3432,7 @@ type UpdateRequest struct { func (x *UpdateRequest) Reset() { *x = UpdateRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[25] + mi := &file_spacex_api_device_device_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1962,7 +3445,7 @@ func (x *UpdateRequest) String() string { func (*UpdateRequest) ProtoMessage() {} func (x *UpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[25] + mi := &file_spacex_api_device_device_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1975,7 +3458,7 @@ func (x *UpdateRequest) ProtoReflect() protoreflect.Me // Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead. func (*UpdateRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{25} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{33} } type UpdateResponse struct { @@ -1987,7 +3470,7 @@ type UpdateResponse struct { func (x *UpdateResponse) Reset() { *x = UpdateResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[26] + mi := &file_spacex_api_device_device_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2000,7 +3483,7 @@ func (x *UpdateResponse) String() string { func (*UpdateResponse) ProtoMessage() {} func (x *UpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[26] + mi := &file_spacex_api_device_device_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2013,9 +3496,85 @@ func (x *UpdateResponse) ProtoReflect() protoreflect.M // Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead. func (*UpdateResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{26} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{34} +} + +type RestartControlRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } +func (x *RestartControlRequest) Reset() { + *x = RestartControlRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestartControlRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestartControlRequest) ProtoMessage() {} + +func (x *RestartControlRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[35] + 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 RestartControlRequest.ProtoReflect.Descriptor instead. +func (*RestartControlRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{35} +} + +type RestartControlResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RestartControlResponse) Reset() { + *x = RestartControlResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RestartControlResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RestartControlResponse) ProtoMessage() {} + +func (x *RestartControlResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[36] + 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 RestartControlResponse.ProtoReflect.Descriptor instead. +func (*RestartControlResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{36} +} + type GetNetworkInterfacesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2025,7 +3584,7 @@ type GetNetworkInterfacesRequest struct { func (x *GetNetworkInterfacesRequest) Reset() { *x = GetNetworkInterfacesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[27] + mi := &file_spacex_api_device_device_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2038,7 +3597,7 @@ func (x *GetNetworkInterfacesRequest) String() string func (*GetNetworkInterfacesRequest) ProtoMessage() {} func (x *GetNetworkInterfacesRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[27] + mi := &file_spacex_api_device_device_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2051,7 +3610,7 @@ func (x *GetNetworkInterfacesRequest) ProtoReflect() p // Deprecated: Use GetNetworkInterfacesRequest.ProtoReflect.Descriptor instead. func (*GetNetworkInterfacesRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{27} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{37} } type GetNetworkInterfacesResponse struct { @@ -2065,7 +3624,7 @@ type GetNetworkInterfacesResponse struct { func (x *GetNetworkInterfacesResponse) Reset() { *x = GetNetworkInterfacesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_device_proto_msgTypes[28] + mi := &file_spacex_api_device_device_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2078,7 +3637,7 @@ func (x *GetNetworkInterfacesResponse) String() string func (*GetNetworkInterfacesResponse) ProtoMessage() {} func (x *GetNetworkInterfacesResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_device_proto_msgTypes[28] + mi := &file_spacex_api_device_device_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2091,7 +3650,7 @@ func (x *GetNetworkInterfacesResponse) ProtoReflect() // Deprecated: Use GetNetworkInterfacesResponse.ProtoReflect.Descriptor instead. func (*GetNetworkInterfacesResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_device_proto_rawDescGZIP(), []int{28} + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{38} } func (x *GetNetworkInterfacesResponse) GetNetworkInterfaces() []*NetworkInterface { @@ -2101,394 +3660,2600 @@ func (x *GetNetworkInterfacesResponse) GetNetworkInter return nil } -var File_spacex_api_device_device_proto protoreflect.FileDescriptor +type GetHeapDumpRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -var file_spacex_api_device_device_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x1a, 0x25, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x73, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x63, - 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x64, - 0x69, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x08, - 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x0a, - 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0xee, 0x0e, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x07, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, - 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, - 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xee, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, - 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, - 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, - 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x65, 0x74, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x67, 0x65, 0x74, - 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0xf4, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x12, 0x67, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x67, 0x65, - 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x07, 0x67, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x09, 0x70, - 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x12, - 0x45, 0x0a, 0x0a, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xec, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, - 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x62, - 0x6f, 0x6f, 0x74, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x6b, 0x75, 0x18, 0xf5, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x74, 0x53, 0x6b, - 0x75, 0x12, 0x55, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, - 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, - 0x3b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x09, - 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x6f, 0x77, 0x18, 0xd2, 0x0f, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, - 0x12, 0x77, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, - 0x69, 0x66, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x65, 0x73, 0x74, - 0x18, 0xa1, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x46, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, - 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x19, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x66, 0x4c, 0x6f, 0x6f, - 0x70, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x16, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0xa3, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x55, 0x0a, 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x62, 0x0a, 0x15, 0x77, 0x69, 0x66, - 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0xbf, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, - 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x47, - 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x52, 0x0a, - 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x45, 0x0a, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, - 0xbb, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, - 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, - 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x77, - 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0xea, 0x10, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x31, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, - 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0d, - 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0xf3, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, - 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x53, 0x0a, - 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0xf4, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x12, 0x68, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x67, - 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, 0x67, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, - 0x09, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x6f, - 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0xe9, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, - 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xeb, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, - 0x73, 0x6b, 0x75, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, - 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, - 0x06, 0x73, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x12, 0x56, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x74, - 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, - 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, - 0x0e, 0x73, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x12, - 0x3c, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, - 0x11, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x18, 0xd5, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, - 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x64, 0x69, 0x73, 0x68, 0x41, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x64, 0x69, - 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xd6, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xd4, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x68, 0x5f, - 0x73, 0x74, 0x6f, 0x77, 0x18, 0xd2, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x12, 0x78, 0x0a, 0x1c, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x66, 0x5f, 0x6c, - 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xa1, 0x1f, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x72, 0x49, 0x46, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x66, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, - 0x63, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0xa3, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x5b, 0x0a, 0x11, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0xbd, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x57, 0x69, 0x66, 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x77, 0x69, 0x66, - 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, - 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, - 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x56, 0x0a, 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, - 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xbe, 0x17, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x77, - 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x63, 0x0a, - 0x15, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xbf, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x12, - 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xbc, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, - 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x77, - 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0a, - 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77, 0x69, 0x66, 0x69, 0x53, - 0x65, 0x74, 0x75, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xdf, 0x01, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x6c, 0x0a, 0x19, 0x77, 0x69, - 0x66, 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x16, 0x77, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x14, 0x77, 0x69, 0x66, 0x69, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, - 0x6e, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x6f, - 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, - 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, - 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6c, 0x6f, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x4c, - 0x6f, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x1a, 0x59, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2b, - 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x49, 0x0a, 0x10, 0x50, - 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x35, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, - 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, - 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x0a, - 0x10, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x72, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, - 0x61, 0x64, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x64, 0x6f, - 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x75, - 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x70, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6c, 0x61, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x53, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, +func (x *GetHeapDumpRequest) Reset() { + *x = GetHeapDumpRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHeapDumpRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHeapDumpRequest) ProtoMessage() {} + +func (x *GetHeapDumpRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[39] + 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 GetHeapDumpRequest.ProtoReflect.Descriptor instead. +func (*GetHeapDumpRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{39} +} + +type GetHeapDumpResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HeapDump string `protobuf:"bytes,1,opt,name=heap_dump,json=heapDump,proto3" json:"heap_dump,omitempty"` +} + +func (x *GetHeapDumpResponse) Reset() { + *x = GetHeapDumpResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHeapDumpResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHeapDumpResponse) ProtoMessage() {} + +func (x *GetHeapDumpResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[40] + 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 GetHeapDumpResponse.ProtoReflect.Descriptor instead. +func (*GetHeapDumpResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{40} +} + +func (x *GetHeapDumpResponse) GetHeapDump() string { + if x != nil { + return x.HeapDump + } + return "" +} + +type GetLocationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source PositionSource `protobuf:"varint,1,opt,name=source,proto3,enum=SpaceX.API.Device.PositionSource" json:"source,omitempty"` +} + +func (x *GetLocationRequest) Reset() { + *x = GetLocationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLocationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLocationRequest) ProtoMessage() {} + +func (x *GetLocationRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLocationRequest.ProtoReflect.Descriptor instead. +func (*GetLocationRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{41} +} + +func (x *GetLocationRequest) GetSource() PositionSource { + if x != nil { + return x.Source + } + return PositionSource_AUTO +} + +type GetLocationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Lla *LLAPosition `protobuf:"bytes,1,opt,name=lla,proto3" json:"lla,omitempty"` + SigmaM float64 `protobuf:"fixed64,4,opt,name=sigma_m,json=sigmaM,proto3" json:"sigma_m,omitempty"` + Source PositionSource `protobuf:"varint,3,opt,name=source,proto3,enum=SpaceX.API.Device.PositionSource" json:"source,omitempty"` +} + +func (x *GetLocationResponse) Reset() { + *x = GetLocationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetLocationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetLocationResponse) ProtoMessage() {} + +func (x *GetLocationResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetLocationResponse.ProtoReflect.Descriptor instead. +func (*GetLocationResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{42} +} + +func (x *GetLocationResponse) GetLla() *LLAPosition { + if x != nil { + return x.Lla + } + return nil +} + +func (x *GetLocationResponse) GetSigmaM() float64 { + if x != nil { + return x.SigmaM + } + return 0 +} + +func (x *GetLocationResponse) GetSource() PositionSource { + if x != nil { + return x.Source + } + return PositionSource_AUTO +} + +type DishSetEmcRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Theta float64 `protobuf:"fixed64,1,opt,name=theta,proto3" json:"theta,omitempty"` + Phi float64 `protobuf:"fixed64,2,opt,name=phi,proto3" json:"phi,omitempty"` + RxChan uint32 `protobuf:"varint,3,opt,name=rx_chan,json=rxChan,proto3" json:"rx_chan,omitempty"` + TxChan uint32 `protobuf:"varint,4,opt,name=tx_chan,json=txChan,proto3" json:"tx_chan,omitempty"` + Modulation uint32 `protobuf:"varint,5,opt,name=modulation,proto3" json:"modulation,omitempty"` + DesiredTiltAngle float64 `protobuf:"fixed64,7,opt,name=desired_tilt_angle,json=desiredTiltAngle,proto3" json:"desired_tilt_angle,omitempty"` + ChanOverride bool `protobuf:"varint,8,opt,name=chan_override,json=chanOverride,proto3" json:"chan_override,omitempty"` + ThetaEnabled bool `protobuf:"varint,9,opt,name=theta_enabled,json=thetaEnabled,proto3" json:"theta_enabled,omitempty"` + PhiEnabled bool `protobuf:"varint,10,opt,name=phi_enabled,json=phiEnabled,proto3" json:"phi_enabled,omitempty"` + Idle bool `protobuf:"varint,11,opt,name=idle,proto3" json:"idle,omitempty"` + FastSwitching bool `protobuf:"varint,12,opt,name=fast_switching,json=fastSwitching,proto3" json:"fast_switching,omitempty"` + SkySearch bool `protobuf:"varint,13,opt,name=sky_search,json=skySearch,proto3" json:"sky_search,omitempty"` + ForcePllUnlock bool `protobuf:"varint,14,opt,name=force_pll_unlock,json=forcePllUnlock,proto3" json:"force_pll_unlock,omitempty"` + ForceEirpFailure bool `protobuf:"varint,15,opt,name=force_eirp_failure,json=forceEirpFailure,proto3" json:"force_eirp_failure,omitempty"` + SnowActiveOverride bool `protobuf:"varint,16,opt,name=snow_active_override,json=snowActiveOverride,proto3" json:"snow_active_override,omitempty"` + ManualTilting bool `protobuf:"varint,18,opt,name=manual_tilting,json=manualTilting,proto3" json:"manual_tilting,omitempty"` + TiltToStowed bool `protobuf:"varint,19,opt,name=tilt_to_stowed,json=tiltToStowed,proto3" json:"tilt_to_stowed,omitempty"` + Reboot bool `protobuf:"varint,20,opt,name=reboot,proto3" json:"reboot,omitempty"` + ContinuousMotorTest bool `protobuf:"varint,21,opt,name=continuous_motor_test,json=continuousMotorTest,proto3" json:"continuous_motor_test,omitempty"` + DistanceOverrideMeters float64 `protobuf:"fixed64,22,opt,name=distance_override_meters,json=distanceOverrideMeters,proto3" json:"distance_override_meters,omitempty"` + AmplitudeTaperOverride uint32 `protobuf:"varint,23,opt,name=amplitude_taper_override,json=amplitudeTaperOverride,proto3" json:"amplitude_taper_override,omitempty"` + CountryCodeOverride uint32 `protobuf:"varint,24,opt,name=country_code_override,json=countryCodeOverride,proto3" json:"country_code_override,omitempty"` + TxDutyCycleOverride int32 `protobuf:"varint,25,opt,name=tx_duty_cycle_override,json=txDutyCycleOverride,proto3" json:"tx_duty_cycle_override,omitempty"` + RxDutyCycleOverride int32 `protobuf:"varint,26,opt,name=rx_duty_cycle_override,json=rxDutyCycleOverride,proto3" json:"rx_duty_cycle_override,omitempty"` + EirpLegalLimitDbwOverride float64 `protobuf:"fixed64,27,opt,name=eirp_legal_limit_dbw_override,json=eirpLegalLimitDbwOverride,proto3" json:"eirp_legal_limit_dbw_override,omitempty"` +} + +func (x *DishSetEmcRequest) Reset() { + *x = DishSetEmcRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishSetEmcRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishSetEmcRequest) ProtoMessage() {} + +func (x *DishSetEmcRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[43] + 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 DishSetEmcRequest.ProtoReflect.Descriptor instead. +func (*DishSetEmcRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{43} +} + +func (x *DishSetEmcRequest) GetTheta() float64 { + if x != nil { + return x.Theta + } + return 0 +} + +func (x *DishSetEmcRequest) GetPhi() float64 { + if x != nil { + return x.Phi + } + return 0 +} + +func (x *DishSetEmcRequest) GetRxChan() uint32 { + if x != nil { + return x.RxChan + } + return 0 +} + +func (x *DishSetEmcRequest) GetTxChan() uint32 { + if x != nil { + return x.TxChan + } + return 0 +} + +func (x *DishSetEmcRequest) GetModulation() uint32 { + if x != nil { + return x.Modulation + } + return 0 +} + +func (x *DishSetEmcRequest) GetDesiredTiltAngle() float64 { + if x != nil { + return x.DesiredTiltAngle + } + return 0 +} + +func (x *DishSetEmcRequest) GetChanOverride() bool { + if x != nil { + return x.ChanOverride + } + return false +} + +func (x *DishSetEmcRequest) GetThetaEnabled() bool { + if x != nil { + return x.ThetaEnabled + } + return false +} + +func (x *DishSetEmcRequest) GetPhiEnabled() bool { + if x != nil { + return x.PhiEnabled + } + return false +} + +func (x *DishSetEmcRequest) GetIdle() bool { + if x != nil { + return x.Idle + } + return false +} + +func (x *DishSetEmcRequest) GetFastSwitching() bool { + if x != nil { + return x.FastSwitching + } + return false +} + +func (x *DishSetEmcRequest) GetSkySearch() bool { + if x != nil { + return x.SkySearch + } + return false +} + +func (x *DishSetEmcRequest) GetForcePllUnlock() bool { + if x != nil { + return x.ForcePllUnlock + } + return false +} + +func (x *DishSetEmcRequest) GetForceEirpFailure() bool { + if x != nil { + return x.ForceEirpFailure + } + return false +} + +func (x *DishSetEmcRequest) GetSnowActiveOverride() bool { + if x != nil { + return x.SnowActiveOverride + } + return false +} + +func (x *DishSetEmcRequest) GetManualTilting() bool { + if x != nil { + return x.ManualTilting + } + return false +} + +func (x *DishSetEmcRequest) GetTiltToStowed() bool { + if x != nil { + return x.TiltToStowed + } + return false +} + +func (x *DishSetEmcRequest) GetReboot() bool { + if x != nil { + return x.Reboot + } + return false +} + +func (x *DishSetEmcRequest) GetContinuousMotorTest() bool { + if x != nil { + return x.ContinuousMotorTest + } + return false +} + +func (x *DishSetEmcRequest) GetDistanceOverrideMeters() float64 { + if x != nil { + return x.DistanceOverrideMeters + } + return 0 +} + +func (x *DishSetEmcRequest) GetAmplitudeTaperOverride() uint32 { + if x != nil { + return x.AmplitudeTaperOverride + } + return 0 +} + +func (x *DishSetEmcRequest) GetCountryCodeOverride() uint32 { + if x != nil { + return x.CountryCodeOverride + } + return 0 +} + +func (x *DishSetEmcRequest) GetTxDutyCycleOverride() int32 { + if x != nil { + return x.TxDutyCycleOverride + } + return 0 +} + +func (x *DishSetEmcRequest) GetRxDutyCycleOverride() int32 { + if x != nil { + return x.RxDutyCycleOverride + } + return 0 +} + +func (x *DishSetEmcRequest) GetEirpLegalLimitDbwOverride() float64 { + if x != nil { + return x.EirpLegalLimitDbwOverride + } + return 0 +} + +type DishSetEmcResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DishSetEmcResponse) Reset() { + *x = DishSetEmcResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishSetEmcResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishSetEmcResponse) ProtoMessage() {} + +func (x *DishSetEmcResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishSetEmcResponse.ProtoReflect.Descriptor instead. +func (*DishSetEmcResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{44} +} + +type DishGetEmcRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DishGetEmcRequest) Reset() { + *x = DishGetEmcRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetEmcRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetEmcRequest) ProtoMessage() {} + +func (x *DishGetEmcRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishGetEmcRequest.ProtoReflect.Descriptor instead. +func (*DishGetEmcRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{45} +} + +type DishGetEmcResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + Timestamp uint64 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + CplaneUpdates uint32 `protobuf:"varint,11,opt,name=cplane_updates,json=cplaneUpdates,proto3" json:"cplane_updates,omitempty"` + GpsLatitude float64 `protobuf:"fixed64,16,opt,name=gps_latitude,json=gpsLatitude,proto3" json:"gps_latitude,omitempty"` + GpsLongitude float64 `protobuf:"fixed64,17,opt,name=gps_longitude,json=gpsLongitude,proto3" json:"gps_longitude,omitempty"` + GpsPdop float64 `protobuf:"fixed64,18,opt,name=gps_pdop,json=gpsPdop,proto3" json:"gps_pdop,omitempty"` + RfMode uint32 `protobuf:"varint,19,opt,name=rf_mode,json=rfMode,proto3" json:"rf_mode,omitempty"` + Phi float64 `protobuf:"fixed64,20,opt,name=phi,proto3" json:"phi,omitempty"` + Theta float64 `protobuf:"fixed64,21,opt,name=theta,proto3" json:"theta,omitempty"` + RxChannel uint32 `protobuf:"varint,22,opt,name=rx_channel,json=rxChannel,proto3" json:"rx_channel,omitempty"` + TxChannel uint32 `protobuf:"varint,23,opt,name=tx_channel,json=txChannel,proto3" json:"tx_channel,omitempty"` + TDbfMax float32 `protobuf:"fixed32,24,opt,name=t_dbf_max,json=tDbfMax,proto3" json:"t_dbf_max,omitempty"` + TCenter float64 `protobuf:"fixed64,25,opt,name=t_center,json=tCenter,proto3" json:"t_center,omitempty"` + AutoPowerSnowMeltEnabled bool `protobuf:"varint,30,opt,name=auto_power_snow_melt_enabled,json=autoPowerSnowMeltEnabled,proto3" json:"auto_power_snow_melt_enabled,omitempty"` + Voltage float64 `protobuf:"fixed64,32,opt,name=voltage,proto3" json:"voltage,omitempty"` + RxBeamState uint32 `protobuf:"varint,33,opt,name=rx_beam_state,json=rxBeamState,proto3" json:"rx_beam_state,omitempty"` + TxBeamState uint32 `protobuf:"varint,34,opt,name=tx_beam_state,json=txBeamState,proto3" json:"tx_beam_state,omitempty"` + HalfDuplexState uint32 `protobuf:"varint,35,opt,name=half_duplex_state,json=halfDuplexState,proto3" json:"half_duplex_state,omitempty"` + ManualTiltEnabled bool `protobuf:"varint,36,opt,name=manual_tilt_enabled,json=manualTiltEnabled,proto3" json:"manual_tilt_enabled,omitempty"` + TiltAngle float64 `protobuf:"fixed64,37,opt,name=tilt_angle,json=tiltAngle,proto3" json:"tilt_angle,omitempty"` + PllTxLockDetected uint32 `protobuf:"varint,38,opt,name=pll_tx_lock_detected,json=pllTxLockDetected,proto3" json:"pll_tx_lock_detected,omitempty"` + EirpExceededThreshold bool `protobuf:"varint,39,opt,name=eirp_exceeded_threshold,json=eirpExceededThreshold,proto3" json:"eirp_exceeded_threshold,omitempty"` + EirpScaleOverride float32 `protobuf:"fixed32,40,opt,name=eirp_scale_override,json=eirpScaleOverride,proto3" json:"eirp_scale_override,omitempty"` + IdleOverrideEnabled bool `protobuf:"varint,41,opt,name=idle_override_enabled,json=idleOverrideEnabled,proto3" json:"idle_override_enabled,omitempty"` + ThetaOverrideEnabled bool `protobuf:"varint,42,opt,name=theta_override_enabled,json=thetaOverrideEnabled,proto3" json:"theta_override_enabled,omitempty"` + ThetaOverrideValue float64 `protobuf:"fixed64,43,opt,name=theta_override_value,json=thetaOverrideValue,proto3" json:"theta_override_value,omitempty"` + PhiOverrideEnabled bool `protobuf:"varint,44,opt,name=phi_override_enabled,json=phiOverrideEnabled,proto3" json:"phi_override_enabled,omitempty"` + PhiOverrideValue float64 `protobuf:"fixed64,45,opt,name=phi_override_value,json=phiOverrideValue,proto3" json:"phi_override_value,omitempty"` + RxChanOverrideValue uint32 `protobuf:"varint,46,opt,name=rx_chan_override_value,json=rxChanOverrideValue,proto3" json:"rx_chan_override_value,omitempty"` + TxChanOverrideValue uint32 `protobuf:"varint,47,opt,name=tx_chan_override_value,json=txChanOverrideValue,proto3" json:"tx_chan_override_value,omitempty"` + SkySearchOverrideEnabled bool `protobuf:"varint,48,opt,name=sky_search_override_enabled,json=skySearchOverrideEnabled,proto3" json:"sky_search_override_enabled,omitempty"` + FastSwitchingEnabled bool `protobuf:"varint,49,opt,name=fast_switching_enabled,json=fastSwitchingEnabled,proto3" json:"fast_switching_enabled,omitempty"` + ModulationOverrideValue uint32 `protobuf:"varint,50,opt,name=modulation_override_value,json=modulationOverrideValue,proto3" json:"modulation_override_value,omitempty"` + ForceEirpFailure bool `protobuf:"varint,51,opt,name=force_eirp_failure,json=forceEirpFailure,proto3" json:"force_eirp_failure,omitempty"` + ForcePllUnlock bool `protobuf:"varint,52,opt,name=force_pll_unlock,json=forcePllUnlock,proto3" json:"force_pll_unlock,omitempty"` + UtIneSuccess uint32 `protobuf:"varint,53,opt,name=ut_ine_success,json=utIneSuccess,proto3" json:"ut_ine_success,omitempty"` + RfReady bool `protobuf:"varint,54,opt,name=rf_ready,json=rfReady,proto3" json:"rf_ready,omitempty"` + TiltToStowed bool `protobuf:"varint,55,opt,name=tilt_to_stowed,json=tiltToStowed,proto3" json:"tilt_to_stowed,omitempty"` + Reboot bool `protobuf:"varint,56,opt,name=reboot,proto3" json:"reboot,omitempty"` + ContinuousMotorTest bool `protobuf:"varint,57,opt,name=continuous_motor_test,json=continuousMotorTest,proto3" json:"continuous_motor_test,omitempty"` + DistanceOverrideMeters float64 `protobuf:"fixed64,58,opt,name=distance_override_meters,json=distanceOverrideMeters,proto3" json:"distance_override_meters,omitempty"` + AmplitudeTaperOverride uint32 `protobuf:"varint,59,opt,name=amplitude_taper_override,json=amplitudeTaperOverride,proto3" json:"amplitude_taper_override,omitempty"` + AmplitudeTaperEnabled bool `protobuf:"varint,60,opt,name=amplitude_taper_enabled,json=amplitudeTaperEnabled,proto3" json:"amplitude_taper_enabled,omitempty"` + AmplitudeTaperScale float64 `protobuf:"fixed64,61,opt,name=amplitude_taper_scale,json=amplitudeTaperScale,proto3" json:"amplitude_taper_scale,omitempty"` + CountryCodeOverride uint32 `protobuf:"varint,62,opt,name=country_code_override,json=countryCodeOverride,proto3" json:"country_code_override,omitempty"` + MaxPointingDistance float64 `protobuf:"fixed64,63,opt,name=max_pointing_distance,json=maxPointingDistance,proto3" json:"max_pointing_distance,omitempty"` + DistanceScalingFactor float64 `protobuf:"fixed64,64,opt,name=distance_scaling_factor,json=distanceScalingFactor,proto3" json:"distance_scaling_factor,omitempty"` + TxDutyCycleOverride int32 `protobuf:"varint,65,opt,name=tx_duty_cycle_override,json=txDutyCycleOverride,proto3" json:"tx_duty_cycle_override,omitempty"` + RxDutyCycleOverride int32 `protobuf:"varint,66,opt,name=rx_duty_cycle_override,json=rxDutyCycleOverride,proto3" json:"rx_duty_cycle_override,omitempty"` + TxTimeMs float32 `protobuf:"fixed32,67,opt,name=tx_time_ms,json=txTimeMs,proto3" json:"tx_time_ms,omitempty"` + RxTimeMs float32 `protobuf:"fixed32,68,opt,name=rx_time_ms,json=rxTimeMs,proto3" json:"rx_time_ms,omitempty"` + EirpLegalLimitDbw float64 `protobuf:"fixed64,69,opt,name=eirp_legal_limit_dbw,json=eirpLegalLimitDbw,proto3" json:"eirp_legal_limit_dbw,omitempty"` + EirpLegalLimitDbwOverride float64 `protobuf:"fixed64,70,opt,name=eirp_legal_limit_dbw_override,json=eirpLegalLimitDbwOverride,proto3" json:"eirp_legal_limit_dbw_override,omitempty"` +} + +func (x *DishGetEmcResponse) Reset() { + *x = DishGetEmcResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetEmcResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetEmcResponse) ProtoMessage() {} + +func (x *DishGetEmcResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishGetEmcResponse.ProtoReflect.Descriptor instead. +func (*DishGetEmcResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{46} +} + +func (x *DishGetEmcResponse) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *DishGetEmcResponse) GetTimestamp() uint64 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *DishGetEmcResponse) GetCplaneUpdates() uint32 { + if x != nil { + return x.CplaneUpdates + } + return 0 +} + +func (x *DishGetEmcResponse) GetGpsLatitude() float64 { + if x != nil { + return x.GpsLatitude + } + return 0 +} + +func (x *DishGetEmcResponse) GetGpsLongitude() float64 { + if x != nil { + return x.GpsLongitude + } + return 0 +} + +func (x *DishGetEmcResponse) GetGpsPdop() float64 { + if x != nil { + return x.GpsPdop + } + return 0 +} + +func (x *DishGetEmcResponse) GetRfMode() uint32 { + if x != nil { + return x.RfMode + } + return 0 +} + +func (x *DishGetEmcResponse) GetPhi() float64 { + if x != nil { + return x.Phi + } + return 0 +} + +func (x *DishGetEmcResponse) GetTheta() float64 { + if x != nil { + return x.Theta + } + return 0 +} + +func (x *DishGetEmcResponse) GetRxChannel() uint32 { + if x != nil { + return x.RxChannel + } + return 0 +} + +func (x *DishGetEmcResponse) GetTxChannel() uint32 { + if x != nil { + return x.TxChannel + } + return 0 +} + +func (x *DishGetEmcResponse) GetTDbfMax() float32 { + if x != nil { + return x.TDbfMax + } + return 0 +} + +func (x *DishGetEmcResponse) GetTCenter() float64 { + if x != nil { + return x.TCenter + } + return 0 +} + +func (x *DishGetEmcResponse) GetAutoPowerSnowMeltEnabled() bool { + if x != nil { + return x.AutoPowerSnowMeltEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetVoltage() float64 { + if x != nil { + return x.Voltage + } + return 0 +} + +func (x *DishGetEmcResponse) GetRxBeamState() uint32 { + if x != nil { + return x.RxBeamState + } + return 0 +} + +func (x *DishGetEmcResponse) GetTxBeamState() uint32 { + if x != nil { + return x.TxBeamState + } + return 0 +} + +func (x *DishGetEmcResponse) GetHalfDuplexState() uint32 { + if x != nil { + return x.HalfDuplexState + } + return 0 +} + +func (x *DishGetEmcResponse) GetManualTiltEnabled() bool { + if x != nil { + return x.ManualTiltEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetTiltAngle() float64 { + if x != nil { + return x.TiltAngle + } + return 0 +} + +func (x *DishGetEmcResponse) GetPllTxLockDetected() uint32 { + if x != nil { + return x.PllTxLockDetected + } + return 0 +} + +func (x *DishGetEmcResponse) GetEirpExceededThreshold() bool { + if x != nil { + return x.EirpExceededThreshold + } + return false +} + +func (x *DishGetEmcResponse) GetEirpScaleOverride() float32 { + if x != nil { + return x.EirpScaleOverride + } + return 0 +} + +func (x *DishGetEmcResponse) GetIdleOverrideEnabled() bool { + if x != nil { + return x.IdleOverrideEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetThetaOverrideEnabled() bool { + if x != nil { + return x.ThetaOverrideEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetThetaOverrideValue() float64 { + if x != nil { + return x.ThetaOverrideValue + } + return 0 +} + +func (x *DishGetEmcResponse) GetPhiOverrideEnabled() bool { + if x != nil { + return x.PhiOverrideEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetPhiOverrideValue() float64 { + if x != nil { + return x.PhiOverrideValue + } + return 0 +} + +func (x *DishGetEmcResponse) GetRxChanOverrideValue() uint32 { + if x != nil { + return x.RxChanOverrideValue + } + return 0 +} + +func (x *DishGetEmcResponse) GetTxChanOverrideValue() uint32 { + if x != nil { + return x.TxChanOverrideValue + } + return 0 +} + +func (x *DishGetEmcResponse) GetSkySearchOverrideEnabled() bool { + if x != nil { + return x.SkySearchOverrideEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetFastSwitchingEnabled() bool { + if x != nil { + return x.FastSwitchingEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetModulationOverrideValue() uint32 { + if x != nil { + return x.ModulationOverrideValue + } + return 0 +} + +func (x *DishGetEmcResponse) GetForceEirpFailure() bool { + if x != nil { + return x.ForceEirpFailure + } + return false +} + +func (x *DishGetEmcResponse) GetForcePllUnlock() bool { + if x != nil { + return x.ForcePllUnlock + } + return false +} + +func (x *DishGetEmcResponse) GetUtIneSuccess() uint32 { + if x != nil { + return x.UtIneSuccess + } + return 0 +} + +func (x *DishGetEmcResponse) GetRfReady() bool { + if x != nil { + return x.RfReady + } + return false +} + +func (x *DishGetEmcResponse) GetTiltToStowed() bool { + if x != nil { + return x.TiltToStowed + } + return false +} + +func (x *DishGetEmcResponse) GetReboot() bool { + if x != nil { + return x.Reboot + } + return false +} + +func (x *DishGetEmcResponse) GetContinuousMotorTest() bool { + if x != nil { + return x.ContinuousMotorTest + } + return false +} + +func (x *DishGetEmcResponse) GetDistanceOverrideMeters() float64 { + if x != nil { + return x.DistanceOverrideMeters + } + return 0 +} + +func (x *DishGetEmcResponse) GetAmplitudeTaperOverride() uint32 { + if x != nil { + return x.AmplitudeTaperOverride + } + return 0 +} + +func (x *DishGetEmcResponse) GetAmplitudeTaperEnabled() bool { + if x != nil { + return x.AmplitudeTaperEnabled + } + return false +} + +func (x *DishGetEmcResponse) GetAmplitudeTaperScale() float64 { + if x != nil { + return x.AmplitudeTaperScale + } + return 0 +} + +func (x *DishGetEmcResponse) GetCountryCodeOverride() uint32 { + if x != nil { + return x.CountryCodeOverride + } + return 0 +} + +func (x *DishGetEmcResponse) GetMaxPointingDistance() float64 { + if x != nil { + return x.MaxPointingDistance + } + return 0 +} + +func (x *DishGetEmcResponse) GetDistanceScalingFactor() float64 { + if x != nil { + return x.DistanceScalingFactor + } + return 0 +} + +func (x *DishGetEmcResponse) GetTxDutyCycleOverride() int32 { + if x != nil { + return x.TxDutyCycleOverride + } + return 0 +} + +func (x *DishGetEmcResponse) GetRxDutyCycleOverride() int32 { + if x != nil { + return x.RxDutyCycleOverride + } + return 0 +} + +func (x *DishGetEmcResponse) GetTxTimeMs() float32 { + if x != nil { + return x.TxTimeMs + } + return 0 +} + +func (x *DishGetEmcResponse) GetRxTimeMs() float32 { + if x != nil { + return x.RxTimeMs + } + return 0 +} + +func (x *DishGetEmcResponse) GetEirpLegalLimitDbw() float64 { + if x != nil { + return x.EirpLegalLimitDbw + } + return 0 +} + +func (x *DishGetEmcResponse) GetEirpLegalLimitDbwOverride() float64 { + if x != nil { + return x.EirpLegalLimitDbwOverride + } + return 0 +} + +type GetPersistentStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetPersistentStatsRequest) Reset() { + *x = GetPersistentStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetPersistentStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPersistentStatsRequest) ProtoMessage() {} + +func (x *GetPersistentStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPersistentStatsRequest.ProtoReflect.Descriptor instead. +func (*GetPersistentStatsRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{47} +} + +type StartSpeedtestRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StartSpeedtestRequest) Reset() { + *x = StartSpeedtestRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartSpeedtestRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartSpeedtestRequest) ProtoMessage() {} + +func (x *StartSpeedtestRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[48] + 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 StartSpeedtestRequest.ProtoReflect.Descriptor instead. +func (*StartSpeedtestRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{48} +} + +type StartSpeedtestResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StartSpeedtestResponse) Reset() { + *x = StartSpeedtestResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartSpeedtestResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartSpeedtestResponse) ProtoMessage() {} + +func (x *StartSpeedtestResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[49] + 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 StartSpeedtestResponse.ProtoReflect.Descriptor instead. +func (*StartSpeedtestResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{49} +} + +type SpeedtestStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Running bool `protobuf:"varint,1,opt,name=running,proto3" json:"running,omitempty"` + Id uint32 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"` + Up *SpeedtestStatus_Direction `protobuf:"bytes,1000,opt,name=up,proto3" json:"up,omitempty"` + Down *SpeedtestStatus_Direction `protobuf:"bytes,1001,opt,name=down,proto3" json:"down,omitempty"` +} + +func (x *SpeedtestStatus) Reset() { + *x = SpeedtestStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedtestStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedtestStatus) ProtoMessage() {} + +func (x *SpeedtestStatus) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[50] + 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 SpeedtestStatus.ProtoReflect.Descriptor instead. +func (*SpeedtestStatus) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{50} +} + +func (x *SpeedtestStatus) GetRunning() bool { + if x != nil { + return x.Running + } + return false +} + +func (x *SpeedtestStatus) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *SpeedtestStatus) GetUp() *SpeedtestStatus_Direction { + if x != nil { + return x.Up + } + return nil +} + +func (x *SpeedtestStatus) GetDown() *SpeedtestStatus_Direction { + if x != nil { + return x.Down + } + return nil +} + +type GetSpeedtestStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetSpeedtestStatusRequest) Reset() { + *x = GetSpeedtestStatusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSpeedtestStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSpeedtestStatusRequest) ProtoMessage() {} + +func (x *GetSpeedtestStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[51] + 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 GetSpeedtestStatusRequest.ProtoReflect.Descriptor instead. +func (*GetSpeedtestStatusRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{51} +} + +type GetSpeedtestStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status *SpeedtestStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *GetSpeedtestStatusResponse) Reset() { + *x = GetSpeedtestStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSpeedtestStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSpeedtestStatusResponse) ProtoMessage() {} + +func (x *GetSpeedtestStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[52] + 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 GetSpeedtestStatusResponse.ProtoReflect.Descriptor instead. +func (*GetSpeedtestStatusResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{52} +} + +func (x *GetSpeedtestStatusResponse) GetStatus() *SpeedtestStatus { + if x != nil { + return x.Status + } + return nil +} + +type ReportClientSpeedtestRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + ClientSpeedtest *SpeedTestStats `protobuf:"bytes,2,opt,name=client_speedtest,json=clientSpeedtest,proto3" json:"client_speedtest,omitempty"` + WifiSpeedtest *SpeedTestStats `protobuf:"bytes,5,opt,name=wifi_speedtest,json=wifiSpeedtest,proto3" json:"wifi_speedtest,omitempty"` + ClientRssi float32 `protobuf:"fixed32,3,opt,name=client_rssi,json=clientRssi,proto3" json:"client_rssi,omitempty"` + ClientPlatform *ClientPlatform `protobuf:"bytes,4,opt,name=client_platform,json=clientPlatform,proto3" json:"client_platform,omitempty"` +} + +func (x *ReportClientSpeedtestRequest) Reset() { + *x = ReportClientSpeedtestRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportClientSpeedtestRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportClientSpeedtestRequest) ProtoMessage() {} + +func (x *ReportClientSpeedtestRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[53] + 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 ReportClientSpeedtestRequest.ProtoReflect.Descriptor instead. +func (*ReportClientSpeedtestRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{53} +} + +func (x *ReportClientSpeedtestRequest) GetId() uint32 { + if x != nil { + return x.Id + } + return 0 +} + +func (x *ReportClientSpeedtestRequest) GetClientSpeedtest() *SpeedTestStats { + if x != nil { + return x.ClientSpeedtest + } + return nil +} + +func (x *ReportClientSpeedtestRequest) GetWifiSpeedtest() *SpeedTestStats { + if x != nil { + return x.WifiSpeedtest + } + return nil +} + +func (x *ReportClientSpeedtestRequest) GetClientRssi() float32 { + if x != nil { + return x.ClientRssi + } + return 0 +} + +func (x *ReportClientSpeedtestRequest) GetClientPlatform() *ClientPlatform { + if x != nil { + return x.ClientPlatform + } + return nil +} + +type ReportClientSpeedtestResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReportClientSpeedtestResponse) Reset() { + *x = ReportClientSpeedtestResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReportClientSpeedtestResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportClientSpeedtestResponse) ProtoMessage() {} + +func (x *ReportClientSpeedtestResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[54] + 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 ReportClientSpeedtestResponse.ProtoReflect.Descriptor instead. +func (*ReportClientSpeedtestResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{54} +} + +type GetConnectionsResponse_ServiceConnection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + SecondsSinceSuccess int32 `protobuf:"varint,2,opt,name=seconds_since_success,json=secondsSinceSuccess,proto3" json:"seconds_since_success,omitempty"` +} + +func (x *GetConnectionsResponse_ServiceConnection) Reset() { + *x = GetConnectionsResponse_ServiceConnection{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetConnectionsResponse_ServiceConnection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConnectionsResponse_ServiceConnection) ProtoMessage() {} + +func (x *GetConnectionsResponse_ServiceConnection) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[56] + 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 GetConnectionsResponse_ServiceConnection.ProtoReflect.Descriptor instead. +func (*GetConnectionsResponse_ServiceConnection) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{26, 0} +} + +func (x *GetConnectionsResponse_ServiceConnection) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *GetConnectionsResponse_ServiceConnection) GetSecondsSinceSuccess() int32 { + if x != nil { + return x.SecondsSinceSuccess + } + return 0 +} + +type SpeedtestStatus_Direction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ThroughputsMbps []float32 `protobuf:"fixed32,1,rep,packed,name=throughputs_mbps,json=throughputsMbps,proto3" json:"throughputs_mbps,omitempty"` + Err SpeedtestError `protobuf:"varint,2,opt,name=err,proto3,enum=SpaceX.API.Device.SpeedtestError" json:"err,omitempty"` +} + +func (x *SpeedtestStatus_Direction) Reset() { + *x = SpeedtestStatus_Direction{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_device_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpeedtestStatus_Direction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpeedtestStatus_Direction) ProtoMessage() {} + +func (x *SpeedtestStatus_Direction) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_device_proto_msgTypes[58] + 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 SpeedtestStatus_Direction.ProtoReflect.Descriptor instead. +func (*SpeedtestStatus_Direction) Descriptor() ([]byte, []int) { + return file_spacex_api_device_device_proto_rawDescGZIP(), []int{50, 0} +} + +func (x *SpeedtestStatus_Direction) GetThroughputsMbps() []float32 { + if x != nil { + return x.ThroughputsMbps + } + return nil +} + +func (x *SpeedtestStatus_Direction) GetErr() SpeedtestError { + if x != nil { + return x.Err + } + return SpeedtestError_SPEEDTEST_ERROR_NONE +} + +var File_spacex_api_device_device_proto protoreflect.FileDescriptor + +var file_spacex_api_device_device_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x1a, 0x25, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x64, + 0x69, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4d, 0x0a, 0x08, + 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x84, 0x01, 0x0a, 0x0a, + 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, + 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x89, 0x22, 0x0a, 0x07, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, + 0x0a, 0x08, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x07, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, + 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, + 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, + 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xee, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, + 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, + 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, + 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x8a, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x12, 0x4e, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x74, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, + 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x65, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x67, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x3c, 0x0a, 0x07, 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0xf4, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x67, + 0x0a, 0x16, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x14, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, + 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x07, 0x67, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x0a, + 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x3b, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0xe9, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, + 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x6b, 0x75, 0x18, 0xf5, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x12, 0x55, + 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, + 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, + 0x64, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x74, + 0x65, 0x73, 0x74, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x67, 0x65, 0x74, + 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x74, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, + 0x61, 0x70, 0x5f, 0x64, 0x75, 0x6d, 0x70, 0x18, 0xfb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, + 0x44, 0x75, 0x6d, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0xfc, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x35, 0x0a, 0x04, 0x66, 0x75, + 0x73, 0x65, 0x18, 0xfd, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, 0x75, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x04, 0x66, 0x75, 0x73, + 0x65, 0x12, 0x61, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0xfe, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x12, 0x67, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xff, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x83, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x12, 0x61, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x84, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x12, 0x67, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x6a, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x85, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x12, + 0x5e, 0x0a, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x86, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x53, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x12, + 0x42, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x87, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x66, 0x54, + 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x88, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x53, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x89, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x68, 0x5f, + 0x73, 0x74, 0x6f, 0x77, 0x18, 0xd2, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x12, 0x5f, 0x0a, 0x14, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, + 0x65, 0x73, 0x74, 0x18, 0xdc, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x10, + 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x18, 0xd3, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x6b, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, + 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x18, + 0xd8, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, + 0x65, 0x74, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x15, 0x64, 0x69, 0x73, 0x68, 0x47, + 0x65, 0x74, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, + 0x12, 0x49, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x65, 0x6d, 0x63, + 0x18, 0xd7, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, + 0x53, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x0a, 0x64, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x12, 0x49, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6d, 0x63, 0x18, 0xd9, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x45, 0x6d, + 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, + 0x47, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x12, 0x52, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xda, 0x0f, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, + 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x0a, 0x0f, 0x64, 0x69, + 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xdb, 0x0f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x0d, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, + 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x66, + 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xa1, + 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x46, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x54, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x19, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x66, 0x4c, 0x6f, 0x6f, 0x70, 0x62, + 0x61, 0x63, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0xa3, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x70, 0x0a, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, + 0x67, 0x65, 0x74, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0xa4, 0x1f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x12, 0x55, 0x0a, 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x61, 0x0a, 0x14, 0x77, 0x69, 0x66, + 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x18, 0xc0, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x47, 0x65, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, + 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x62, 0x0a, 0x15, + 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xbf, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, + 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x52, 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, + 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xc1, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x45, 0x0a, 0x0a, 0x77, 0x69, 0x66, 0x69, + 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, + 0x6f, 0x0a, 0x1a, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x68, + 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x18, 0xc4, 0x17, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, + 0x4d, 0x65, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x16, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, + 0x74, 0x4d, 0x65, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, + 0x12, 0x5f, 0x0a, 0x14, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x73, + 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xc5, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x11, + 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x68, 0x0a, 0x17, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xc7, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x14, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4a, 0x06, 0x08, 0xfa, 0x07, 0x10, 0xfb, 0x07, 0x4a, 0x06, + 0x08, 0x81, 0x08, 0x10, 0x82, 0x08, 0x4a, 0x06, 0x08, 0x82, 0x08, 0x10, 0x83, 0x08, 0x4a, 0x06, + 0x08, 0xc3, 0x17, 0x10, 0xc4, 0x17, 0x4a, 0x06, 0x08, 0xc6, 0x17, 0x10, 0xc7, 0x17, 0x22, 0xce, + 0x24, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x02, 0x69, 0x64, 0x12, 0x31, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, + 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x47, 0x0a, 0x0b, 0x67, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x69, 0x64, 0x18, 0xee, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x78, + 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x67, + 0x65, 0x74, 0x4e, 0x65, 0x78, 0x74, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x12, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x8a, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x4f, 0x0a, 0x0d, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, + 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x12, 0x53, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x67, + 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3d, 0x0a, 0x07, + 0x67, 0x65, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x06, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x68, 0x0a, 0x16, 0x67, + 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x14, 0x67, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, + 0x67, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, + 0x67, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x09, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x68, 0x6f, 0x73, 0x74, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x00, 0x52, 0x08, 0x70, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, + 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, + 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x6b, 0x75, 0x18, 0xf5, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x74, 0x53, 0x6b, + 0x75, 0x12, 0x56, 0x0a, 0x10, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x65, 0x74, 0x54, 0x72, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x65, 0x61, + 0x70, 0x5f, 0x64, 0x75, 0x6d, 0x70, 0x18, 0xfb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x67, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, + 0x44, 0x75, 0x6d, 0x70, 0x12, 0x55, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0xfc, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x04, 0x66, + 0x75, 0x73, 0x65, 0x18, 0xfd, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, + 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x04, 0x66, + 0x75, 0x73, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xff, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x67, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x83, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x00, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x12, 0x62, 0x0a, 0x14, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x84, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x00, 0x52, 0x12, 0x67, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6b, 0x0a, 0x17, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x18, 0x85, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x15, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x18, 0x86, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, + 0x52, 0x11, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x53, 0x73, 0x68, 0x12, 0x43, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, + 0x18, 0x87, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x6c, 0x66, + 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x5f, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x88, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x54, + 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x55, 0x0a, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, + 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x89, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, + 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x5b, + 0x0a, 0x11, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x18, 0xd5, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, + 0x69, 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x64, 0x69, 0x73, 0x68, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, + 0xd3, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x56, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xd6, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x64, 0x69, 0x73, + 0x68, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x53, 0x0a, 0x0f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xd4, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x6c, 0x0a, 0x18, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x6f, 0x62, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0xd8, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x4f, + 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x15, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, + 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x12, 0x43, + 0x0a, 0x09, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x6f, 0x77, 0x18, 0xd2, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x69, 0x73, 0x68, 0x53, + 0x74, 0x6f, 0x77, 0x12, 0x60, 0x0a, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x68, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xdc, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x69, 0x73, 0x68, + 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x48, 0x00, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x6c, + 0x66, 0x54, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x65, 0x6d, 0x63, 0x18, 0xd7, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x45, 0x6d, + 0x63, 0x12, 0x4a, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x65, 0x6d, + 0x63, 0x18, 0xd9, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, + 0x68, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, + 0x00, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x12, 0x53, 0x0a, + 0x0f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0xda, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x53, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xdb, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x68, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x78, 0x0a, 0x1c, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x69, 0x66, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, + 0x63, 0x6b, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0xa1, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x49, 0x46, + 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x19, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x49, 0x66, 0x4c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x54, 0x65, 0x73, + 0x74, 0x12, 0x68, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, + 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xa3, 0x1f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x71, 0x0a, 0x19, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x74, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0xa4, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, + 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x17, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x5b, + 0x0a, 0x11, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x18, 0xbd, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, + 0x69, 0x66, 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x10, 0x77, 0x69, 0x66, 0x69, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x56, 0x0a, 0x10, 0x77, + 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, + 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x62, 0x0a, 0x14, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0xc0, 0x17, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x44, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x44, 0x69, 0x61, 0x67, + 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x56, 0x0a, 0x10, 0x77, 0x69, 0x66, 0x69, 0x5f, + 0x67, 0x65, 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xbe, 0x17, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x0e, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, + 0x63, 0x0a, 0x15, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0xbf, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, + 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xbc, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x53, 0x0a, 0x0f, 0x77, 0x69, 0x66, + 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xb9, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, + 0x0d, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x53, + 0x0a, 0x0f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0xc1, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x75, + 0x70, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, + 0x52, 0x09, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x12, 0x6f, 0x0a, 0x19, 0x77, + 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0xce, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x70, 0x0a, 0x1a, + 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x18, 0xc4, 0x17, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x16, 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, + 0x65, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, 0x74, 0x12, 0x60, + 0x0a, 0x14, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x68, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xc5, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x11, 0x77, + 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x69, 0x0a, 0x17, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x67, 0x65, 0x74, 0x5f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0xc7, 0x17, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x14, 0x77, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4a, 0x06, 0x08, 0xfa, 0x07, 0x10, 0xfb, 0x07, 0x4a, + 0x06, 0x08, 0x82, 0x08, 0x10, 0x83, 0x08, 0x4a, 0x06, 0x08, 0xe9, 0x0f, 0x10, 0xea, 0x0f, 0x4a, + 0x06, 0x08, 0xc3, 0x17, 0x10, 0xc4, 0x17, 0x4a, 0x06, 0x08, 0xc6, 0x17, 0x10, 0xc7, 0x17, 0x22, + 0xab, 0x02, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x6c, 0x0a, 0x19, 0x77, 0x69, 0x66, + 0x69, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, + 0x16, 0x77, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x14, 0x77, 0x69, 0x66, 0x69, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0xba, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x48, 0x00, 0x52, 0x12, 0x77, 0x69, 0x66, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x4a, 0x0a, 0x0d, 0x77, 0x69, 0x66, 0x69, + 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x18, 0xbb, 0x17, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, 0x50, 0x65, 0x65, 0x72, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x77, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x77, + 0x50, 0x65, 0x65, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x0a, + 0x17, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x65, 0x6c, 0x65, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x22, 0x1a, 0x0a, 0x18, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x44, 0x65, 0x62, 0x75, 0x67, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, 0x46, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x0d, 0x0a, 0x0b, 0x46, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x46, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x13, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4c, 0x6f, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x73, + 0x6c, 0x6f, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x73, 0x6c, 0x6f, + 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6c, 0x6f, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x4c, + 0x6f, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x1a, 0x59, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2b, + 0x0a, 0x0f, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x49, 0x0a, 0x10, 0x50, + 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, + 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, 0x01, + 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x4d, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x0e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x46, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, + 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x6f, 0x72, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x6d, 0x69, 0x6e, + 0x6f, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x08, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4f, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, + 0x4e, 0x44, 0x52, 0x4f, 0x49, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x45, 0x42, 0x10, + 0x03, 0x22, 0xdd, 0x01, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x72, + 0x73, 0x73, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x52, 0x73, 0x73, 0x69, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x22, 0xf5, 0x05, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0c, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x70, 0x73, 0x12, 0x21, + 0x0a, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x70, + 0x73, 0x12, 0x1f, 0x0a, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x53, 0x12, 0x27, 0x0a, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x75, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, + 0x12, 0x21, 0x0a, 0x0a, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x4d, 0x73, 0x12, 0x4c, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x12, 0x36, 0x0a, 0x18, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x5f, 0x31, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x14, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x31, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x31, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x31, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x36, 0x0a, + 0x18, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x14, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x34, 0x54, 0x63, + 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x34, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x31, 0x36, 0x5f, 0x74, 0x63, + 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x31, 0x36, 0x54, 0x63, 0x70, 0x43, + 0x6f, 0x6e, 0x6e, 0x12, 0x34, 0x0a, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x5f, 0x31, 0x36, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, + 0x31, 0x36, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x12, 0x38, 0x0a, 0x19, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x36, 0x34, 0x5f, 0x74, 0x63, + 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x64, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x36, 0x34, 0x54, 0x63, 0x70, 0x43, + 0x6f, 0x6e, 0x6e, 0x12, 0x34, 0x0a, 0x17, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x5f, 0x36, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, + 0x36, 0x34, 0x54, 0x63, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0xca, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, + 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x37, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x1a, 0x61, 0x0a, 0x11, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, + 0x63, 0x65, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x13, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x53, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x78, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x49, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, + 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x53, + 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6b, 0x75, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6b, 0x75, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x69, + 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x65, + 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, + 0xee, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x22, 0x14, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x32, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x70, 0x44, + 0x75, 0x6d, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, + 0x65, 0x61, 0x70, 0x5f, 0x64, 0x75, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x68, 0x65, 0x61, 0x70, 0x44, 0x75, 0x6d, 0x70, 0x22, 0x4f, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, + 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x30, 0x0a, 0x03, 0x6c, 0x6c, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x4c, 0x4c, 0x41, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, + 0x6c, 0x6c, 0x61, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x5f, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, 0x73, 0x69, 0x67, 0x6d, 0x61, 0x4d, 0x12, 0x39, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x04, 0x65, + 0x63, 0x65, 0x66, 0x22, 0xf7, 0x07, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x45, + 0x6d, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x12, + 0x10, 0x0a, 0x03, 0x70, 0x68, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x03, 0x70, 0x68, + 0x69, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x72, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, + 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x78, 0x43, + 0x68, 0x61, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x74, + 0x69, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x10, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x4f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x68, 0x65, 0x74, 0x61, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x74, + 0x68, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x68, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0a, 0x70, 0x68, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x69, 0x64, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x64, 0x6c, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x61, 0x73, 0x74, 0x53, 0x77, + 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6b, 0x79, 0x5f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x6b, 0x79, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, + 0x70, 0x6c, 0x6c, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x12, 0x2c, 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x69, 0x72, 0x70, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x45, 0x69, 0x72, 0x70, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x30, + 0x0a, 0x14, 0x73, 0x6e, 0x6f, 0x77, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6e, + 0x6f, 0x77, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6c, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, + 0x54, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6c, 0x74, 0x5f, + 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x74, 0x69, 0x6c, 0x74, 0x54, 0x6f, 0x53, 0x74, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x6f, 0x75, 0x73, 0x5f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x5f, 0x74, 0x61, 0x70, 0x65, 0x72, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x54, 0x61, 0x70, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x32, 0x0a, + 0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x78, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x13, 0x74, 0x78, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4f, 0x76, + 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x72, 0x78, 0x5f, 0x64, 0x75, 0x74, + 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x72, 0x78, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, + 0x63, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x65, + 0x69, 0x72, 0x70, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, + 0x64, 0x62, 0x77, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x19, 0x65, 0x69, 0x72, 0x70, 0x4c, 0x65, 0x67, 0x61, 0x6c, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x44, 0x62, 0x77, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x14, 0x0a, + 0x12, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x45, 0x6d, + 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc8, 0x12, 0x0a, 0x12, 0x44, 0x69, 0x73, + 0x68, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, + 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x70, 0x73, 0x5f, + 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x67, 0x70, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, + 0x70, 0x73, 0x5f, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0c, 0x67, 0x70, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x70, 0x73, 0x5f, 0x70, 0x64, 0x6f, 0x70, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x07, 0x67, 0x70, 0x73, 0x50, 0x64, 0x6f, 0x70, 0x12, 0x17, 0x0a, 0x07, 0x72, + 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x66, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x68, 0x69, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x03, 0x70, 0x68, 0x69, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, + 0x72, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x72, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x74, + 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x74, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x09, 0x74, 0x5f, + 0x64, 0x62, 0x66, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x74, + 0x44, 0x62, 0x66, 0x4d, 0x61, 0x78, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x5f, 0x63, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x74, 0x43, 0x65, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x3e, 0x0a, 0x1c, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, + 0x73, 0x6e, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x6c, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x53, 0x6e, 0x6f, 0x77, 0x4d, 0x65, 0x6c, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x72, + 0x78, 0x5f, 0x62, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x78, 0x42, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x22, 0x0a, 0x0d, 0x74, 0x78, 0x5f, 0x62, 0x65, 0x61, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x74, 0x78, 0x42, 0x65, 0x61, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, 0x6c, 0x66, 0x5f, 0x64, 0x75, 0x70, 0x6c, + 0x65, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, + 0x68, 0x61, 0x6c, 0x66, 0x44, 0x75, 0x70, 0x6c, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x61, + 0x6e, 0x75, 0x61, 0x6c, 0x54, 0x69, 0x6c, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x12, 0x2f, + 0x0a, 0x14, 0x70, 0x6c, 0x6c, 0x5f, 0x74, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x64, 0x65, + 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x70, 0x6c, + 0x6c, 0x54, 0x78, 0x4c, 0x6f, 0x63, 0x6b, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, + 0x36, 0x0a, 0x17, 0x65, 0x69, 0x72, 0x70, 0x5f, 0x65, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, + 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x27, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x15, 0x65, 0x69, 0x72, 0x70, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x54, 0x68, + 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x69, 0x72, 0x70, 0x5f, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x28, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x65, 0x69, 0x72, 0x70, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x4f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x64, 0x6c, 0x65, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x64, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x74, + 0x68, 0x65, 0x74, 0x61, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x74, 0x68, 0x65, + 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x30, 0x0a, 0x14, 0x74, 0x68, 0x65, 0x74, 0x61, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x12, 0x74, 0x68, 0x65, 0x74, 0x61, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x70, 0x68, 0x69, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x2c, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x12, 0x70, 0x68, 0x69, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x68, 0x69, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x70, 0x68, 0x69, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x72, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x6f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2e, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x78, 0x5f, 0x63, + 0x68, 0x61, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x74, 0x78, 0x43, 0x68, 0x61, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, + 0x1b, 0x73, 0x6b, 0x79, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x6f, 0x76, 0x65, 0x72, + 0x72, 0x69, 0x64, 0x65, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x30, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x18, 0x73, 0x6b, 0x79, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4f, 0x76, 0x65, + 0x72, 0x72, 0x69, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, + 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x66, 0x61, + 0x73, 0x74, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x17, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, + 0x0a, 0x12, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x65, 0x69, 0x72, 0x70, 0x5f, 0x66, 0x61, 0x69, + 0x6c, 0x75, 0x72, 0x65, 0x18, 0x33, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x45, 0x69, 0x72, 0x70, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x28, 0x0a, 0x10, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x6c, 0x6c, 0x5f, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, + 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x50, 0x6c, 0x6c, + 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x74, 0x5f, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, + 0x75, 0x74, 0x49, 0x6e, 0x65, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x66, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x72, 0x66, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6c, 0x74, 0x5f, + 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x74, 0x69, 0x6c, 0x74, 0x54, 0x6f, 0x53, 0x74, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, + 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, + 0x6f, 0x75, 0x73, 0x5f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x18, 0x39, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x18, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x64, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x5f, 0x74, 0x61, 0x70, 0x65, 0x72, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, + 0x3b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x54, 0x61, 0x70, 0x65, 0x72, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x36, 0x0a, + 0x17, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x74, 0x61, 0x70, 0x65, 0x72, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, + 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x54, 0x61, 0x70, 0x65, 0x72, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x5f, 0x74, 0x61, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x3d, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x54, + 0x61, 0x70, 0x65, 0x72, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x43, 0x6f, 0x64, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x32, 0x0a, + 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x6d, 0x61, + 0x78, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x40, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x15, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x33, 0x0a, 0x16, 0x74, 0x78, 0x5f, + 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x18, 0x41, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x74, 0x78, 0x44, 0x75, 0x74, + 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x33, + 0x0a, 0x16, 0x72, 0x78, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, + 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x42, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, + 0x72, 0x78, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x74, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, + 0x73, 0x18, 0x43, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x74, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x4d, + 0x73, 0x12, 0x1c, 0x0a, 0x0a, 0x72, 0x78, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x73, 0x18, + 0x44, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x78, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x73, 0x12, + 0x2f, 0x0a, 0x14, 0x65, 0x69, 0x72, 0x70, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x62, 0x77, 0x18, 0x45, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x69, 0x72, 0x70, 0x4c, 0x65, 0x67, 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x44, 0x62, 0x77, + 0x12, 0x40, 0x0a, 0x1d, 0x65, 0x69, 0x72, 0x70, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x6c, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x64, 0x62, 0x77, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, + 0x65, 0x18, 0x46, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x65, 0x69, 0x72, 0x70, 0x4c, 0x65, 0x67, + 0x61, 0x6c, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x44, 0x62, 0x77, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, + 0x64, 0x65, 0x4a, 0x04, 0x08, 0x1a, 0x10, 0x1e, 0x52, 0x10, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x12, 0x61, 0x64, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0d, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x14, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x65, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, + 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x17, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x3d, 0x0a, 0x02, 0x75, 0x70, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x02, 0x75, 0x70, + 0x12, 0x41, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, + 0x6f, 0x77, 0x6e, 0x1a, 0x6b, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x73, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0f, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x73, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x03, 0x65, + 0x72, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x03, 0x65, 0x72, 0x72, + 0x22, 0x1b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x49, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, - 0x73, 0x74, 0x65, 0x64, 0x4b, 0x65, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x30, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b, 0x65, 0x79, - 0x73, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x4b, - 0x65, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x72, 0x0a, 0x0d, 0x53, - 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x6b, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6b, 0x75, 0x12, 0x21, - 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, - 0x70, 0x70, 0x6c, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x22, - 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x6b, 0x75, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x73, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xee, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x32, 0x95, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x1d, 0x2e, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, - 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x41, 0x0a, - 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, 0x1a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xb3, 0x02, 0x0a, 0x1c, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x4c, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x0e, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x52, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x73, + 0x69, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x52, 0x0e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x1f, 0x0a, + 0x1d, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x56, + 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x08, 0x0a, 0x04, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, + 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x54, 0x5f, 0x49, 0x4e, 0x46, 0x4f, 0x10, + 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x12, + 0x07, 0x0a, 0x03, 0x47, 0x50, 0x53, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x52, + 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x05, 0x2a, 0xb7, 0x01, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x50, 0x45, + 0x45, 0x44, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x4e, + 0x45, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x50, 0x45, 0x45, 0x44, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, + 0x12, 0x19, 0x0a, 0x15, 0x53, 0x50, 0x45, 0x45, 0x44, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x5f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x53, + 0x50, 0x45, 0x45, 0x44, 0x54, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x41, + 0x50, 0x49, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x53, 0x50, 0x45, 0x45, 0x44, 0x54, 0x45, 0x53, + 0x54, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4c, + 0x54, 0x10, 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x50, 0x45, 0x45, 0x44, 0x54, 0x45, 0x53, 0x54, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x05, + 0x32, 0x95, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x6f, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x1a, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x28, 0x01, 0x30, 0x01, 0x12, 0x41, 0x0a, 0x06, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x12, + 0x1a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2503,140 +6268,277 @@ func file_spacex_api_device_device_proto_rawDescGZIP() return file_spacex_api_device_device_proto_rawDescData } -var file_spacex_api_device_device_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_spacex_api_device_device_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_spacex_api_device_device_proto_msgTypes = make([]protoimpl.MessageInfo, 59) var file_spacex_api_device_device_proto_goTypes = []interface{}{ - (*ToDevice)(nil), // 0: SpaceX.API.Device.ToDevice - (*FromDevice)(nil), // 1: SpaceX.API.Device.FromDevice - (*Request)(nil), // 2: SpaceX.API.Device.Request - (*Response)(nil), // 3: SpaceX.API.Device.Response - (*Event)(nil), // 4: SpaceX.API.Device.Event - (*FactoryResetRequest)(nil), // 5: SpaceX.API.Device.FactoryResetRequest - (*FactoryResetResponse)(nil), // 6: SpaceX.API.Device.FactoryResetResponse - (*GetHistoryRequest)(nil), // 7: SpaceX.API.Device.GetHistoryRequest - (*GetLogRequest)(nil), // 8: SpaceX.API.Device.GetLogRequest - (*GetLogResponse)(nil), // 9: SpaceX.API.Device.GetLogResponse - (*GetPingRequest)(nil), // 10: SpaceX.API.Device.GetPingRequest - (*GetPingResponse)(nil), // 11: SpaceX.API.Device.GetPingResponse - (*PingHostRequest)(nil), // 12: SpaceX.API.Device.PingHostRequest - (*PingHostResponse)(nil), // 13: SpaceX.API.Device.PingHostResponse - (*GetStatusRequest)(nil), // 14: SpaceX.API.Device.GetStatusRequest - (*RebootRequest)(nil), // 15: SpaceX.API.Device.RebootRequest - (*RebootResponse)(nil), // 16: SpaceX.API.Device.RebootResponse - (*SpeedTestRequest)(nil), // 17: SpaceX.API.Device.SpeedTestRequest - (*SpeedTestResponse)(nil), // 18: SpaceX.API.Device.SpeedTestResponse - (*GetDeviceInfoRequest)(nil), // 19: SpaceX.API.Device.GetDeviceInfoRequest - (*GetDeviceInfoResponse)(nil), // 20: SpaceX.API.Device.GetDeviceInfoResponse - (*SetTrustedKeysRequest)(nil), // 21: SpaceX.API.Device.SetTrustedKeysRequest - (*SetTrustedKeysResponse)(nil), // 22: SpaceX.API.Device.SetTrustedKeysResponse - (*SetSkuRequest)(nil), // 23: SpaceX.API.Device.SetSkuRequest - (*SetSkuResponse)(nil), // 24: SpaceX.API.Device.SetSkuResponse - (*UpdateRequest)(nil), // 25: SpaceX.API.Device.UpdateRequest - (*UpdateResponse)(nil), // 26: SpaceX.API.Device.UpdateResponse - (*GetNetworkInterfacesRequest)(nil), // 27: SpaceX.API.Device.GetNetworkInterfacesRequest - (*GetNetworkInterfacesResponse)(nil), // 28: SpaceX.API.Device.GetNetworkInterfacesResponse - nil, // 29: SpaceX.API.Device.GetPingResponse.ResultsEntry - (*SignedData)(nil), // 30: SpaceX.API.Device.SignedData - (*GetNextIdRequest)(nil), // 31: SpaceX.API.Device.GetNextIdRequest - (*AuthenticateRequest)(nil), // 32: SpaceX.API.Device.AuthenticateRequest - (*DishStowRequest)(nil), // 33: SpaceX.API.Device.DishStowRequest - (*TransceiverIFLoopbackTestRequest)(nil), // 34: SpaceX.API.Device.TransceiverIFLoopbackTestRequest - (*TransceiverGetStatusRequest)(nil), // 35: SpaceX.API.Device.TransceiverGetStatusRequest - (*WifiGetClientsRequest)(nil), // 36: SpaceX.API.Device.WifiGetClientsRequest - (*WifiGetPingMetricsRequest)(nil), // 37: SpaceX.API.Device.WifiGetPingMetricsRequest - (*WifiSetConfigRequest)(nil), // 38: SpaceX.API.Device.WifiSetConfigRequest - (*WifiSetupRequest)(nil), // 39: SpaceX.API.Device.WifiSetupRequest - (*status.Status)(nil), // 40: SpaceX.API.Status.Status - (*GetNextIdResponse)(nil), // 41: SpaceX.API.Device.GetNextIdResponse - (*DishAuthenticateResponse)(nil), // 42: SpaceX.API.Device.DishAuthenticateResponse - (*DishGetHistoryResponse)(nil), // 43: SpaceX.API.Device.DishGetHistoryResponse - (*DishGetStatusResponse)(nil), // 44: SpaceX.API.Device.DishGetStatusResponse - (*DishStowResponse)(nil), // 45: SpaceX.API.Device.DishStowResponse - (*TransceiverIFLoopbackTestResponse)(nil), // 46: SpaceX.API.Device.TransceiverIFLoopbackTestResponse - (*TransceiverGetStatusResponse)(nil), // 47: SpaceX.API.Device.TransceiverGetStatusResponse - (*WifiAuthenticateResponse)(nil), // 48: SpaceX.API.Device.WifiAuthenticateResponse - (*WifiGetClientsResponse)(nil), // 49: SpaceX.API.Device.WifiGetClientsResponse - (*WifiGetHistoryResponse)(nil), // 50: SpaceX.API.Device.WifiGetHistoryResponse - (*WifiGetPingMetricsResponse)(nil), // 51: SpaceX.API.Device.WifiGetPingMetricsResponse - (*WifiGetStatusResponse)(nil), // 52: SpaceX.API.Device.WifiGetStatusResponse - (*WifiSetConfigResponse)(nil), // 53: SpaceX.API.Device.WifiSetConfigResponse - (*WifiSetupResponse)(nil), // 54: SpaceX.API.Device.WifiSetupResponse - (*WifiNewClientConnectedEvent)(nil), // 55: SpaceX.API.Device.WifiNewClientConnectedEvent - (*WifiAccountBondingEvent)(nil), // 56: SpaceX.API.Device.WifiAccountBondingEvent - (*PingResult)(nil), // 57: SpaceX.API.Device.PingResult - (*DeviceInfo)(nil), // 58: SpaceX.API.Device.DeviceInfo - (*PublicKey)(nil), // 59: SpaceX.API.Device.PublicKey - (*NetworkInterface)(nil), // 60: SpaceX.API.Device.NetworkInterface + (PositionSource)(0), // 0: SpaceX.API.Device.PositionSource + (SpeedtestError)(0), // 1: SpaceX.API.Device.SpeedtestError + (ClientPlatform_Platform)(0), // 2: SpaceX.API.Device.ClientPlatform.Platform + (*ToDevice)(nil), // 3: SpaceX.API.Device.ToDevice + (*FromDevice)(nil), // 4: SpaceX.API.Device.FromDevice + (*Request)(nil), // 5: SpaceX.API.Device.Request + (*Response)(nil), // 6: SpaceX.API.Device.Response + (*Event)(nil), // 7: SpaceX.API.Device.Event + (*EnableDebugTelemRequest)(nil), // 8: SpaceX.API.Device.EnableDebugTelemRequest + (*EnableDebugTelemResponse)(nil), // 9: SpaceX.API.Device.EnableDebugTelemResponse + (*FactoryResetRequest)(nil), // 10: SpaceX.API.Device.FactoryResetRequest + (*FactoryResetResponse)(nil), // 11: SpaceX.API.Device.FactoryResetResponse + (*FuseRequest)(nil), // 12: SpaceX.API.Device.FuseRequest + (*FuseResponse)(nil), // 13: SpaceX.API.Device.FuseResponse + (*GetHistoryRequest)(nil), // 14: SpaceX.API.Device.GetHistoryRequest + (*GetLogRequest)(nil), // 15: SpaceX.API.Device.GetLogRequest + (*GetLogResponse)(nil), // 16: SpaceX.API.Device.GetLogResponse + (*GetPingRequest)(nil), // 17: SpaceX.API.Device.GetPingRequest + (*GetPingResponse)(nil), // 18: SpaceX.API.Device.GetPingResponse + (*PingHostRequest)(nil), // 19: SpaceX.API.Device.PingHostRequest + (*PingHostResponse)(nil), // 20: SpaceX.API.Device.PingHostResponse + (*GetStatusRequest)(nil), // 21: SpaceX.API.Device.GetStatusRequest + (*RebootRequest)(nil), // 22: SpaceX.API.Device.RebootRequest + (*RebootResponse)(nil), // 23: SpaceX.API.Device.RebootResponse + (*SpeedTestStats)(nil), // 24: SpaceX.API.Device.SpeedTestStats + (*ClientPlatform)(nil), // 25: SpaceX.API.Device.ClientPlatform + (*SpeedTestRequest)(nil), // 26: SpaceX.API.Device.SpeedTestRequest + (*SpeedTestResponse)(nil), // 27: SpaceX.API.Device.SpeedTestResponse + (*GetConnectionsRequest)(nil), // 28: SpaceX.API.Device.GetConnectionsRequest + (*GetConnectionsResponse)(nil), // 29: SpaceX.API.Device.GetConnectionsResponse + (*GetDeviceInfoRequest)(nil), // 30: SpaceX.API.Device.GetDeviceInfoRequest + (*GetDeviceInfoResponse)(nil), // 31: SpaceX.API.Device.GetDeviceInfoResponse + (*SetTrustedKeysRequest)(nil), // 32: SpaceX.API.Device.SetTrustedKeysRequest + (*SetTrustedKeysResponse)(nil), // 33: SpaceX.API.Device.SetTrustedKeysResponse + (*SetSkuRequest)(nil), // 34: SpaceX.API.Device.SetSkuRequest + (*SetSkuResponse)(nil), // 35: SpaceX.API.Device.SetSkuResponse + (*UpdateRequest)(nil), // 36: SpaceX.API.Device.UpdateRequest + (*UpdateResponse)(nil), // 37: SpaceX.API.Device.UpdateResponse + (*RestartControlRequest)(nil), // 38: SpaceX.API.Device.RestartControlRequest + (*RestartControlResponse)(nil), // 39: SpaceX.API.Device.RestartControlResponse + (*GetNetworkInterfacesRequest)(nil), // 40: SpaceX.API.Device.GetNetworkInterfacesRequest + (*GetNetworkInterfacesResponse)(nil), // 41: SpaceX.API.Device.GetNetworkInterfacesResponse + (*GetHeapDumpRequest)(nil), // 42: SpaceX.API.Device.GetHeapDumpRequest + (*GetHeapDumpResponse)(nil), // 43: SpaceX.API.Device.GetHeapDumpResponse + (*GetLocationRequest)(nil), // 44: SpaceX.API.Device.GetLocationRequest + (*GetLocationResponse)(nil), // 45: SpaceX.API.Device.GetLocationResponse + (*DishSetEmcRequest)(nil), // 46: SpaceX.API.Device.DishSetEmcRequest + (*DishSetEmcResponse)(nil), // 47: SpaceX.API.Device.DishSetEmcResponse + (*DishGetEmcRequest)(nil), // 48: SpaceX.API.Device.DishGetEmcRequest + (*DishGetEmcResponse)(nil), // 49: SpaceX.API.Device.DishGetEmcResponse + (*GetPersistentStatsRequest)(nil), // 50: SpaceX.API.Device.GetPersistentStatsRequest + (*StartSpeedtestRequest)(nil), // 51: SpaceX.API.Device.StartSpeedtestRequest + (*StartSpeedtestResponse)(nil), // 52: SpaceX.API.Device.StartSpeedtestResponse + (*SpeedtestStatus)(nil), // 53: SpaceX.API.Device.SpeedtestStatus + (*GetSpeedtestStatusRequest)(nil), // 54: SpaceX.API.Device.GetSpeedtestStatusRequest + (*GetSpeedtestStatusResponse)(nil), // 55: SpaceX.API.Device.GetSpeedtestStatusResponse + (*ReportClientSpeedtestRequest)(nil), // 56: SpaceX.API.Device.ReportClientSpeedtestRequest + (*ReportClientSpeedtestResponse)(nil), // 57: SpaceX.API.Device.ReportClientSpeedtestResponse + nil, // 58: SpaceX.API.Device.GetPingResponse.ResultsEntry + (*GetConnectionsResponse_ServiceConnection)(nil), // 59: SpaceX.API.Device.GetConnectionsResponse.ServiceConnection + nil, // 60: SpaceX.API.Device.GetConnectionsResponse.ServicesEntry + (*SpeedtestStatus_Direction)(nil), // 61: SpaceX.API.Device.SpeedtestStatus.Direction + (*SignedData)(nil), // 62: SpaceX.API.Device.SignedData + (*GetNextIdRequest)(nil), // 63: SpaceX.API.Device.GetNextIdRequest + (*AuthenticateRequest)(nil), // 64: SpaceX.API.Device.AuthenticateRequest + (*InitiateRemoteSshRequest)(nil), // 65: SpaceX.API.Device.InitiateRemoteSshRequest + (*SelfTestRequest)(nil), // 66: SpaceX.API.Device.SelfTestRequest + (*SetTestModeRequest)(nil), // 67: SpaceX.API.Device.SetTestModeRequest + (*SoftwareUpdateRequest)(nil), // 68: SpaceX.API.Device.SoftwareUpdateRequest + (*DishStowRequest)(nil), // 69: SpaceX.API.Device.DishStowRequest + (*StartDishSelfTestRequest)(nil), // 70: SpaceX.API.Device.StartDishSelfTestRequest + (*DishGetContextRequest)(nil), // 71: SpaceX.API.Device.DishGetContextRequest + (*DishGetObstructionMapRequest)(nil), // 72: SpaceX.API.Device.DishGetObstructionMapRequest + (*DishSetConfigRequest)(nil), // 73: SpaceX.API.Device.DishSetConfigRequest + (*DishGetConfigRequest)(nil), // 74: SpaceX.API.Device.DishGetConfigRequest + (*TransceiverIFLoopbackTestRequest)(nil), // 75: SpaceX.API.Device.TransceiverIFLoopbackTestRequest + (*TransceiverGetStatusRequest)(nil), // 76: SpaceX.API.Device.TransceiverGetStatusRequest + (*TransceiverGetTelemetryRequest)(nil), // 77: SpaceX.API.Device.TransceiverGetTelemetryRequest + (*WifiGetClientsRequest)(nil), // 78: SpaceX.API.Device.WifiGetClientsRequest + (*WifiGetDiagnosticsRequest)(nil), // 79: SpaceX.API.Device.WifiGetDiagnosticsRequest + (*WifiGetPingMetricsRequest)(nil), // 80: SpaceX.API.Device.WifiGetPingMetricsRequest + (*WifiSetConfigRequest)(nil), // 81: SpaceX.API.Device.WifiSetConfigRequest + (*WifiGetConfigRequest)(nil), // 82: SpaceX.API.Device.WifiGetConfigRequest + (*WifiSetupRequest)(nil), // 83: SpaceX.API.Device.WifiSetupRequest + (*WifiSetMeshDeviceTrustRequest)(nil), // 84: SpaceX.API.Device.WifiSetMeshDeviceTrustRequest + (*WifiSetMeshConfigRequest)(nil), // 85: SpaceX.API.Device.WifiSetMeshConfigRequest + (*WifiGetClientHistoryRequest)(nil), // 86: SpaceX.API.Device.WifiGetClientHistoryRequest + (*status.Status)(nil), // 87: SpaceX.API.Status.Status + (*GetNextIdResponse)(nil), // 88: SpaceX.API.Device.GetNextIdResponse + (*InitiateRemoteSshResponse)(nil), // 89: SpaceX.API.Device.InitiateRemoteSshResponse + (*SelfTestResponse)(nil), // 90: SpaceX.API.Device.SelfTestResponse + (*SetTestModeResponse)(nil), // 91: SpaceX.API.Device.SetTestModeResponse + (*SoftwareUpdateResponse)(nil), // 92: SpaceX.API.Device.SoftwareUpdateResponse + (*DishAuthenticateResponse)(nil), // 93: SpaceX.API.Device.DishAuthenticateResponse + (*DishGetContextResponse)(nil), // 94: SpaceX.API.Device.DishGetContextResponse + (*DishGetHistoryResponse)(nil), // 95: SpaceX.API.Device.DishGetHistoryResponse + (*DishGetStatusResponse)(nil), // 96: SpaceX.API.Device.DishGetStatusResponse + (*DishGetObstructionMapResponse)(nil), // 97: SpaceX.API.Device.DishGetObstructionMapResponse + (*DishStowResponse)(nil), // 98: SpaceX.API.Device.DishStowResponse + (*StartDishSelfTestResponse)(nil), // 99: SpaceX.API.Device.StartDishSelfTestResponse + (*DishSetConfigResponse)(nil), // 100: SpaceX.API.Device.DishSetConfigResponse + (*DishGetConfigResponse)(nil), // 101: SpaceX.API.Device.DishGetConfigResponse + (*TransceiverIFLoopbackTestResponse)(nil), // 102: SpaceX.API.Device.TransceiverIFLoopbackTestResponse + (*TransceiverGetStatusResponse)(nil), // 103: SpaceX.API.Device.TransceiverGetStatusResponse + (*TransceiverGetTelemetryResponse)(nil), // 104: SpaceX.API.Device.TransceiverGetTelemetryResponse + (*WifiAuthenticateResponse)(nil), // 105: SpaceX.API.Device.WifiAuthenticateResponse + (*WifiGetClientsResponse)(nil), // 106: SpaceX.API.Device.WifiGetClientsResponse + (*WifiGetDiagnosticsResponse)(nil), // 107: SpaceX.API.Device.WifiGetDiagnosticsResponse + (*WifiGetHistoryResponse)(nil), // 108: SpaceX.API.Device.WifiGetHistoryResponse + (*WifiGetPingMetricsResponse)(nil), // 109: SpaceX.API.Device.WifiGetPingMetricsResponse + (*WifiGetStatusResponse)(nil), // 110: SpaceX.API.Device.WifiGetStatusResponse + (*WifiSetConfigResponse)(nil), // 111: SpaceX.API.Device.WifiSetConfigResponse + (*WifiGetConfigResponse)(nil), // 112: SpaceX.API.Device.WifiGetConfigResponse + (*WifiSetupResponse)(nil), // 113: SpaceX.API.Device.WifiSetupResponse + (*WifiGetPersistentStatsResponse)(nil), // 114: SpaceX.API.Device.WifiGetPersistentStatsResponse + (*WifiSetMeshDeviceTrustResponse)(nil), // 115: SpaceX.API.Device.WifiSetMeshDeviceTrustResponse + (*WifiSetMeshConfigResponse)(nil), // 116: SpaceX.API.Device.WifiSetMeshConfigResponse + (*WifiGetClientHistoryResponse)(nil), // 117: SpaceX.API.Device.WifiGetClientHistoryResponse + (*WifiNewClientConnectedEvent)(nil), // 118: SpaceX.API.Device.WifiNewClientConnectedEvent + (*WifiAccountBondingEvent)(nil), // 119: SpaceX.API.Device.WifiAccountBondingEvent + (*WifiNewPeerEvent)(nil), // 120: SpaceX.API.Device.WifiNewPeerEvent + (*PingResult)(nil), // 121: SpaceX.API.Device.PingResult + (*DeviceInfo)(nil), // 122: SpaceX.API.Device.DeviceInfo + (*PublicKey)(nil), // 123: SpaceX.API.Device.PublicKey + (*NetworkInterface)(nil), // 124: SpaceX.API.Device.NetworkInterface + (*LLAPosition)(nil), // 125: SpaceX.API.Device.LLAPosition } var file_spacex_api_device_device_proto_depIdxs = []int32{ - 2, // 0: SpaceX.API.Device.ToDevice.request:type_name -> SpaceX.API.Device.Request - 3, // 1: SpaceX.API.Device.FromDevice.response:type_name -> SpaceX.API.Device.Response - 4, // 2: SpaceX.API.Device.FromDevice.event:type_name -> SpaceX.API.Device.Event - 30, // 3: SpaceX.API.Device.Request.signed_request:type_name -> SpaceX.API.Device.SignedData - 31, // 4: SpaceX.API.Device.Request.get_next_id:type_name -> SpaceX.API.Device.GetNextIdRequest - 32, // 5: SpaceX.API.Device.Request.authenticate:type_name -> SpaceX.API.Device.AuthenticateRequest - 5, // 6: SpaceX.API.Device.Request.factory_reset:type_name -> SpaceX.API.Device.FactoryResetRequest - 19, // 7: SpaceX.API.Device.Request.get_device_info:type_name -> SpaceX.API.Device.GetDeviceInfoRequest - 7, // 8: SpaceX.API.Device.Request.get_history:type_name -> SpaceX.API.Device.GetHistoryRequest - 8, // 9: SpaceX.API.Device.Request.get_log:type_name -> SpaceX.API.Device.GetLogRequest - 27, // 10: SpaceX.API.Device.Request.get_network_interfaces:type_name -> SpaceX.API.Device.GetNetworkInterfacesRequest - 10, // 11: SpaceX.API.Device.Request.get_ping:type_name -> SpaceX.API.Device.GetPingRequest - 12, // 12: SpaceX.API.Device.Request.ping_host:type_name -> SpaceX.API.Device.PingHostRequest - 14, // 13: SpaceX.API.Device.Request.get_status:type_name -> SpaceX.API.Device.GetStatusRequest - 15, // 14: SpaceX.API.Device.Request.reboot:type_name -> SpaceX.API.Device.RebootRequest - 23, // 15: SpaceX.API.Device.Request.set_sku:type_name -> SpaceX.API.Device.SetSkuRequest - 21, // 16: SpaceX.API.Device.Request.set_trusted_keys:type_name -> SpaceX.API.Device.SetTrustedKeysRequest - 17, // 17: SpaceX.API.Device.Request.speed_test:type_name -> SpaceX.API.Device.SpeedTestRequest - 25, // 18: SpaceX.API.Device.Request.update:type_name -> SpaceX.API.Device.UpdateRequest - 33, // 19: SpaceX.API.Device.Request.dish_stow:type_name -> SpaceX.API.Device.DishStowRequest - 34, // 20: SpaceX.API.Device.Request.transceiver_if_loopback_test:type_name -> SpaceX.API.Device.TransceiverIFLoopbackTestRequest - 35, // 21: SpaceX.API.Device.Request.transceiver_get_status:type_name -> SpaceX.API.Device.TransceiverGetStatusRequest - 36, // 22: SpaceX.API.Device.Request.wifi_get_clients:type_name -> SpaceX.API.Device.WifiGetClientsRequest - 37, // 23: SpaceX.API.Device.Request.wifi_get_ping_metrics:type_name -> SpaceX.API.Device.WifiGetPingMetricsRequest - 38, // 24: SpaceX.API.Device.Request.wifi_set_config:type_name -> SpaceX.API.Device.WifiSetConfigRequest - 39, // 25: SpaceX.API.Device.Request.wifi_setup:type_name -> SpaceX.API.Device.WifiSetupRequest - 40, // 26: SpaceX.API.Device.Response.status:type_name -> SpaceX.API.Status.Status - 41, // 27: SpaceX.API.Device.Response.get_next_id:type_name -> SpaceX.API.Device.GetNextIdResponse - 6, // 28: SpaceX.API.Device.Response.factory_reset:type_name -> SpaceX.API.Device.FactoryResetResponse - 20, // 29: SpaceX.API.Device.Response.get_device_info:type_name -> SpaceX.API.Device.GetDeviceInfoResponse - 9, // 30: SpaceX.API.Device.Response.get_log:type_name -> SpaceX.API.Device.GetLogResponse - 28, // 31: SpaceX.API.Device.Response.get_network_interfaces:type_name -> SpaceX.API.Device.GetNetworkInterfacesResponse - 11, // 32: SpaceX.API.Device.Response.get_ping:type_name -> SpaceX.API.Device.GetPingResponse - 13, // 33: SpaceX.API.Device.Response.ping_host:type_name -> SpaceX.API.Device.PingHostResponse - 16, // 34: SpaceX.API.Device.Response.reboot:type_name -> SpaceX.API.Device.RebootResponse - 18, // 35: SpaceX.API.Device.Response.speed_test:type_name -> SpaceX.API.Device.SpeedTestResponse - 24, // 36: SpaceX.API.Device.Response.set_sku:type_name -> SpaceX.API.Device.SetSkuResponse - 22, // 37: SpaceX.API.Device.Response.set_trusted_keys:type_name -> SpaceX.API.Device.SetTrustedKeysResponse - 26, // 38: SpaceX.API.Device.Response.update:type_name -> SpaceX.API.Device.UpdateResponse - 42, // 39: SpaceX.API.Device.Response.dish_authenticate:type_name -> SpaceX.API.Device.DishAuthenticateResponse - 43, // 40: SpaceX.API.Device.Response.dish_get_history:type_name -> SpaceX.API.Device.DishGetHistoryResponse - 44, // 41: SpaceX.API.Device.Response.dish_get_status:type_name -> SpaceX.API.Device.DishGetStatusResponse - 45, // 42: SpaceX.API.Device.Response.dish_stow:type_name -> SpaceX.API.Device.DishStowResponse - 46, // 43: SpaceX.API.Device.Response.transceiver_if_loopback_test:type_name -> SpaceX.API.Device.TransceiverIFLoopbackTestResponse - 47, // 44: SpaceX.API.Device.Response.transceiver_get_status:type_name -> SpaceX.API.Device.TransceiverGetStatusResponse - 48, // 45: SpaceX.API.Device.Response.wifi_authenticate:type_name -> SpaceX.API.Device.WifiAuthenticateResponse - 49, // 46: SpaceX.API.Device.Response.wifi_get_clients:type_name -> SpaceX.API.Device.WifiGetClientsResponse - 50, // 47: SpaceX.API.Device.Response.wifi_get_history:type_name -> SpaceX.API.Device.WifiGetHistoryResponse - 51, // 48: SpaceX.API.Device.Response.wifi_get_ping_metrics:type_name -> SpaceX.API.Device.WifiGetPingMetricsResponse - 52, // 49: SpaceX.API.Device.Response.wifi_get_status:type_name -> SpaceX.API.Device.WifiGetStatusResponse - 53, // 50: SpaceX.API.Device.Response.wifi_set_config:type_name -> SpaceX.API.Device.WifiSetConfigResponse - 54, // 51: SpaceX.API.Device.Response.wifi_setup:type_name -> SpaceX.API.Device.WifiSetupResponse - 55, // 52: SpaceX.API.Device.Event.wifi_new_client_connected:type_name -> SpaceX.API.Device.WifiNewClientConnectedEvent - 56, // 53: SpaceX.API.Device.Event.wifi_account_bonding:type_name -> SpaceX.API.Device.WifiAccountBondingEvent - 29, // 54: SpaceX.API.Device.GetPingResponse.results:type_name -> SpaceX.API.Device.GetPingResponse.ResultsEntry - 57, // 55: SpaceX.API.Device.PingHostResponse.result:type_name -> SpaceX.API.Device.PingResult - 58, // 56: SpaceX.API.Device.GetDeviceInfoResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo - 59, // 57: SpaceX.API.Device.SetTrustedKeysRequest.keys:type_name -> SpaceX.API.Device.PublicKey - 60, // 58: SpaceX.API.Device.GetNetworkInterfacesResponse.network_interfaces:type_name -> SpaceX.API.Device.NetworkInterface - 57, // 59: SpaceX.API.Device.GetPingResponse.ResultsEntry.value:type_name -> SpaceX.API.Device.PingResult - 0, // 60: SpaceX.API.Device.Device.Stream:input_type -> SpaceX.API.Device.ToDevice - 2, // 61: SpaceX.API.Device.Device.Handle:input_type -> SpaceX.API.Device.Request - 1, // 62: SpaceX.API.Device.Device.Stream:output_type -> SpaceX.API.Device.FromDevice - 3, // 63: SpaceX.API.Device.Device.Handle:output_type -> SpaceX.API.Device.Response - 62, // [62:64] is the sub-list for method output_type - 60, // [60:62] is the sub-list for method input_type - 60, // [60:60] is the sub-list for extension type_name - 60, // [60:60] is the sub-list for extension extendee - 0, // [0:60] is the sub-list for field type_name + 5, // 0: SpaceX.API.Device.ToDevice.request:type_name -> SpaceX.API.Device.Request + 6, // 1: SpaceX.API.Device.FromDevice.response:type_name -> SpaceX.API.Device.Response + 7, // 2: SpaceX.API.Device.FromDevice.event:type_name -> SpaceX.API.Device.Event + 62, // 3: SpaceX.API.Device.Request.signed_request:type_name -> SpaceX.API.Device.SignedData + 63, // 4: SpaceX.API.Device.Request.get_next_id:type_name -> SpaceX.API.Device.GetNextIdRequest + 64, // 5: SpaceX.API.Device.Request.authenticate:type_name -> SpaceX.API.Device.AuthenticateRequest + 8, // 6: SpaceX.API.Device.Request.enable_debug_telem:type_name -> SpaceX.API.Device.EnableDebugTelemRequest + 10, // 7: SpaceX.API.Device.Request.factory_reset:type_name -> SpaceX.API.Device.FactoryResetRequest + 30, // 8: SpaceX.API.Device.Request.get_device_info:type_name -> SpaceX.API.Device.GetDeviceInfoRequest + 14, // 9: SpaceX.API.Device.Request.get_history:type_name -> SpaceX.API.Device.GetHistoryRequest + 15, // 10: SpaceX.API.Device.Request.get_log:type_name -> SpaceX.API.Device.GetLogRequest + 40, // 11: SpaceX.API.Device.Request.get_network_interfaces:type_name -> SpaceX.API.Device.GetNetworkInterfacesRequest + 17, // 12: SpaceX.API.Device.Request.get_ping:type_name -> SpaceX.API.Device.GetPingRequest + 19, // 13: SpaceX.API.Device.Request.ping_host:type_name -> SpaceX.API.Device.PingHostRequest + 21, // 14: SpaceX.API.Device.Request.get_status:type_name -> SpaceX.API.Device.GetStatusRequest + 22, // 15: SpaceX.API.Device.Request.reboot:type_name -> SpaceX.API.Device.RebootRequest + 34, // 16: SpaceX.API.Device.Request.set_sku:type_name -> SpaceX.API.Device.SetSkuRequest + 32, // 17: SpaceX.API.Device.Request.set_trusted_keys:type_name -> SpaceX.API.Device.SetTrustedKeysRequest + 26, // 18: SpaceX.API.Device.Request.speed_test:type_name -> SpaceX.API.Device.SpeedTestRequest + 36, // 19: SpaceX.API.Device.Request.update:type_name -> SpaceX.API.Device.UpdateRequest + 44, // 20: SpaceX.API.Device.Request.get_location:type_name -> SpaceX.API.Device.GetLocationRequest + 42, // 21: SpaceX.API.Device.Request.get_heap_dump:type_name -> SpaceX.API.Device.GetHeapDumpRequest + 38, // 22: SpaceX.API.Device.Request.restart_control:type_name -> SpaceX.API.Device.RestartControlRequest + 12, // 23: SpaceX.API.Device.Request.fuse:type_name -> SpaceX.API.Device.FuseRequest + 50, // 24: SpaceX.API.Device.Request.get_persistent_stats:type_name -> SpaceX.API.Device.GetPersistentStatsRequest + 28, // 25: SpaceX.API.Device.Request.get_connections:type_name -> SpaceX.API.Device.GetConnectionsRequest + 51, // 26: SpaceX.API.Device.Request.start_speedtest:type_name -> SpaceX.API.Device.StartSpeedtestRequest + 54, // 27: SpaceX.API.Device.Request.get_speedtest_status:type_name -> SpaceX.API.Device.GetSpeedtestStatusRequest + 56, // 28: SpaceX.API.Device.Request.report_client_speedtest:type_name -> SpaceX.API.Device.ReportClientSpeedtestRequest + 65, // 29: SpaceX.API.Device.Request.initiate_remote_ssh:type_name -> SpaceX.API.Device.InitiateRemoteSshRequest + 66, // 30: SpaceX.API.Device.Request.self_test:type_name -> SpaceX.API.Device.SelfTestRequest + 67, // 31: SpaceX.API.Device.Request.set_test_mode:type_name -> SpaceX.API.Device.SetTestModeRequest + 68, // 32: SpaceX.API.Device.Request.software_update:type_name -> SpaceX.API.Device.SoftwareUpdateRequest + 69, // 33: SpaceX.API.Device.Request.dish_stow:type_name -> SpaceX.API.Device.DishStowRequest + 70, // 34: SpaceX.API.Device.Request.start_dish_self_test:type_name -> SpaceX.API.Device.StartDishSelfTestRequest + 71, // 35: SpaceX.API.Device.Request.dish_get_context:type_name -> SpaceX.API.Device.DishGetContextRequest + 72, // 36: SpaceX.API.Device.Request.dish_get_obstruction_map:type_name -> SpaceX.API.Device.DishGetObstructionMapRequest + 46, // 37: SpaceX.API.Device.Request.dish_set_emc:type_name -> SpaceX.API.Device.DishSetEmcRequest + 48, // 38: SpaceX.API.Device.Request.dish_get_emc:type_name -> SpaceX.API.Device.DishGetEmcRequest + 73, // 39: SpaceX.API.Device.Request.dish_set_config:type_name -> SpaceX.API.Device.DishSetConfigRequest + 74, // 40: SpaceX.API.Device.Request.dish_get_config:type_name -> SpaceX.API.Device.DishGetConfigRequest + 75, // 41: SpaceX.API.Device.Request.transceiver_if_loopback_test:type_name -> SpaceX.API.Device.TransceiverIFLoopbackTestRequest + 76, // 42: SpaceX.API.Device.Request.transceiver_get_status:type_name -> SpaceX.API.Device.TransceiverGetStatusRequest + 77, // 43: SpaceX.API.Device.Request.transceiver_get_telemetry:type_name -> SpaceX.API.Device.TransceiverGetTelemetryRequest + 78, // 44: SpaceX.API.Device.Request.wifi_get_clients:type_name -> SpaceX.API.Device.WifiGetClientsRequest + 79, // 45: SpaceX.API.Device.Request.wifi_get_diagnostics:type_name -> SpaceX.API.Device.WifiGetDiagnosticsRequest + 80, // 46: SpaceX.API.Device.Request.wifi_get_ping_metrics:type_name -> SpaceX.API.Device.WifiGetPingMetricsRequest + 81, // 47: SpaceX.API.Device.Request.wifi_set_config:type_name -> SpaceX.API.Device.WifiSetConfigRequest + 82, // 48: SpaceX.API.Device.Request.wifi_get_config:type_name -> SpaceX.API.Device.WifiGetConfigRequest + 83, // 49: SpaceX.API.Device.Request.wifi_setup:type_name -> SpaceX.API.Device.WifiSetupRequest + 84, // 50: SpaceX.API.Device.Request.wifi_set_mesh_device_trust:type_name -> SpaceX.API.Device.WifiSetMeshDeviceTrustRequest + 85, // 51: SpaceX.API.Device.Request.wifi_set_mesh_config:type_name -> SpaceX.API.Device.WifiSetMeshConfigRequest + 86, // 52: SpaceX.API.Device.Request.wifi_get_client_history:type_name -> SpaceX.API.Device.WifiGetClientHistoryRequest + 87, // 53: SpaceX.API.Device.Response.status:type_name -> SpaceX.API.Status.Status + 88, // 54: SpaceX.API.Device.Response.get_next_id:type_name -> SpaceX.API.Device.GetNextIdResponse + 9, // 55: SpaceX.API.Device.Response.enable_debug_telem:type_name -> SpaceX.API.Device.EnableDebugTelemResponse + 11, // 56: SpaceX.API.Device.Response.factory_reset:type_name -> SpaceX.API.Device.FactoryResetResponse + 31, // 57: SpaceX.API.Device.Response.get_device_info:type_name -> SpaceX.API.Device.GetDeviceInfoResponse + 16, // 58: SpaceX.API.Device.Response.get_log:type_name -> SpaceX.API.Device.GetLogResponse + 41, // 59: SpaceX.API.Device.Response.get_network_interfaces:type_name -> SpaceX.API.Device.GetNetworkInterfacesResponse + 18, // 60: SpaceX.API.Device.Response.get_ping:type_name -> SpaceX.API.Device.GetPingResponse + 20, // 61: SpaceX.API.Device.Response.ping_host:type_name -> SpaceX.API.Device.PingHostResponse + 23, // 62: SpaceX.API.Device.Response.reboot:type_name -> SpaceX.API.Device.RebootResponse + 27, // 63: SpaceX.API.Device.Response.speed_test:type_name -> SpaceX.API.Device.SpeedTestResponse + 35, // 64: SpaceX.API.Device.Response.set_sku:type_name -> SpaceX.API.Device.SetSkuResponse + 33, // 65: SpaceX.API.Device.Response.set_trusted_keys:type_name -> SpaceX.API.Device.SetTrustedKeysResponse + 37, // 66: SpaceX.API.Device.Response.update:type_name -> SpaceX.API.Device.UpdateResponse + 45, // 67: SpaceX.API.Device.Response.get_location:type_name -> SpaceX.API.Device.GetLocationResponse + 43, // 68: SpaceX.API.Device.Response.get_heap_dump:type_name -> SpaceX.API.Device.GetHeapDumpResponse + 39, // 69: SpaceX.API.Device.Response.restart_control:type_name -> SpaceX.API.Device.RestartControlResponse + 13, // 70: SpaceX.API.Device.Response.fuse:type_name -> SpaceX.API.Device.FuseResponse + 29, // 71: SpaceX.API.Device.Response.get_connections:type_name -> SpaceX.API.Device.GetConnectionsResponse + 52, // 72: SpaceX.API.Device.Response.start_speedtest:type_name -> SpaceX.API.Device.StartSpeedtestResponse + 55, // 73: SpaceX.API.Device.Response.get_speedtest_status:type_name -> SpaceX.API.Device.GetSpeedtestStatusResponse + 57, // 74: SpaceX.API.Device.Response.report_client_speedtest:type_name -> SpaceX.API.Device.ReportClientSpeedtestResponse + 89, // 75: SpaceX.API.Device.Response.initiate_remote_ssh:type_name -> SpaceX.API.Device.InitiateRemoteSshResponse + 90, // 76: SpaceX.API.Device.Response.self_test:type_name -> SpaceX.API.Device.SelfTestResponse + 91, // 77: SpaceX.API.Device.Response.set_test_mode:type_name -> SpaceX.API.Device.SetTestModeResponse + 92, // 78: SpaceX.API.Device.Response.software_update:type_name -> SpaceX.API.Device.SoftwareUpdateResponse + 93, // 79: SpaceX.API.Device.Response.dish_authenticate:type_name -> SpaceX.API.Device.DishAuthenticateResponse + 94, // 80: SpaceX.API.Device.Response.dish_get_context:type_name -> SpaceX.API.Device.DishGetContextResponse + 95, // 81: SpaceX.API.Device.Response.dish_get_history:type_name -> SpaceX.API.Device.DishGetHistoryResponse + 96, // 82: SpaceX.API.Device.Response.dish_get_status:type_name -> SpaceX.API.Device.DishGetStatusResponse + 97, // 83: SpaceX.API.Device.Response.dish_get_obstruction_map:type_name -> SpaceX.API.Device.DishGetObstructionMapResponse + 98, // 84: SpaceX.API.Device.Response.dish_stow:type_name -> SpaceX.API.Device.DishStowResponse + 99, // 85: SpaceX.API.Device.Response.start_dish_self_test:type_name -> SpaceX.API.Device.StartDishSelfTestResponse + 47, // 86: SpaceX.API.Device.Response.dish_set_emc:type_name -> SpaceX.API.Device.DishSetEmcResponse + 49, // 87: SpaceX.API.Device.Response.dish_get_emc:type_name -> SpaceX.API.Device.DishGetEmcResponse + 100, // 88: SpaceX.API.Device.Response.dish_set_config:type_name -> SpaceX.API.Device.DishSetConfigResponse + 101, // 89: SpaceX.API.Device.Response.dish_get_config:type_name -> SpaceX.API.Device.DishGetConfigResponse + 102, // 90: SpaceX.API.Device.Response.transceiver_if_loopback_test:type_name -> SpaceX.API.Device.TransceiverIFLoopbackTestResponse + 103, // 91: SpaceX.API.Device.Response.transceiver_get_status:type_name -> SpaceX.API.Device.TransceiverGetStatusResponse + 104, // 92: SpaceX.API.Device.Response.transceiver_get_telemetry:type_name -> SpaceX.API.Device.TransceiverGetTelemetryResponse + 105, // 93: SpaceX.API.Device.Response.wifi_authenticate:type_name -> SpaceX.API.Device.WifiAuthenticateResponse + 106, // 94: SpaceX.API.Device.Response.wifi_get_clients:type_name -> SpaceX.API.Device.WifiGetClientsResponse + 107, // 95: SpaceX.API.Device.Response.wifi_get_diagnostics:type_name -> SpaceX.API.Device.WifiGetDiagnosticsResponse + 108, // 96: SpaceX.API.Device.Response.wifi_get_history:type_name -> SpaceX.API.Device.WifiGetHistoryResponse + 109, // 97: SpaceX.API.Device.Response.wifi_get_ping_metrics:type_name -> SpaceX.API.Device.WifiGetPingMetricsResponse + 110, // 98: SpaceX.API.Device.Response.wifi_get_status:type_name -> SpaceX.API.Device.WifiGetStatusResponse + 111, // 99: SpaceX.API.Device.Response.wifi_set_config:type_name -> SpaceX.API.Device.WifiSetConfigResponse + 112, // 100: SpaceX.API.Device.Response.wifi_get_config:type_name -> SpaceX.API.Device.WifiGetConfigResponse + 113, // 101: SpaceX.API.Device.Response.wifi_setup:type_name -> SpaceX.API.Device.WifiSetupResponse + 114, // 102: SpaceX.API.Device.Response.wifi_get_persistent_stats:type_name -> SpaceX.API.Device.WifiGetPersistentStatsResponse + 115, // 103: SpaceX.API.Device.Response.wifi_set_mesh_device_trust:type_name -> SpaceX.API.Device.WifiSetMeshDeviceTrustResponse + 116, // 104: SpaceX.API.Device.Response.wifi_set_mesh_config:type_name -> SpaceX.API.Device.WifiSetMeshConfigResponse + 117, // 105: SpaceX.API.Device.Response.wifi_get_client_history:type_name -> SpaceX.API.Device.WifiGetClientHistoryResponse + 118, // 106: SpaceX.API.Device.Event.wifi_new_client_connected:type_name -> SpaceX.API.Device.WifiNewClientConnectedEvent + 119, // 107: SpaceX.API.Device.Event.wifi_account_bonding:type_name -> SpaceX.API.Device.WifiAccountBondingEvent + 120, // 108: SpaceX.API.Device.Event.wifi_new_peer:type_name -> SpaceX.API.Device.WifiNewPeerEvent + 58, // 109: SpaceX.API.Device.GetPingResponse.results:type_name -> SpaceX.API.Device.GetPingResponse.ResultsEntry + 121, // 110: SpaceX.API.Device.PingHostResponse.result:type_name -> SpaceX.API.Device.PingResult + 2, // 111: SpaceX.API.Device.ClientPlatform.platform:type_name -> SpaceX.API.Device.ClientPlatform.Platform + 24, // 112: SpaceX.API.Device.SpeedTestRequest.client_speedtest:type_name -> SpaceX.API.Device.SpeedTestStats + 25, // 113: SpaceX.API.Device.SpeedTestRequest.client_platform:type_name -> SpaceX.API.Device.ClientPlatform + 24, // 114: SpaceX.API.Device.SpeedTestResponse.router_speedtest:type_name -> SpaceX.API.Device.SpeedTestStats + 60, // 115: SpaceX.API.Device.GetConnectionsResponse.services:type_name -> SpaceX.API.Device.GetConnectionsResponse.ServicesEntry + 122, // 116: SpaceX.API.Device.GetDeviceInfoResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo + 123, // 117: SpaceX.API.Device.SetTrustedKeysRequest.keys:type_name -> SpaceX.API.Device.PublicKey + 124, // 118: SpaceX.API.Device.GetNetworkInterfacesResponse.network_interfaces:type_name -> SpaceX.API.Device.NetworkInterface + 0, // 119: SpaceX.API.Device.GetLocationRequest.source:type_name -> SpaceX.API.Device.PositionSource + 125, // 120: SpaceX.API.Device.GetLocationResponse.lla:type_name -> SpaceX.API.Device.LLAPosition + 0, // 121: SpaceX.API.Device.GetLocationResponse.source:type_name -> SpaceX.API.Device.PositionSource + 61, // 122: SpaceX.API.Device.SpeedtestStatus.up:type_name -> SpaceX.API.Device.SpeedtestStatus.Direction + 61, // 123: SpaceX.API.Device.SpeedtestStatus.down:type_name -> SpaceX.API.Device.SpeedtestStatus.Direction + 53, // 124: SpaceX.API.Device.GetSpeedtestStatusResponse.status:type_name -> SpaceX.API.Device.SpeedtestStatus + 24, // 125: SpaceX.API.Device.ReportClientSpeedtestRequest.client_speedtest:type_name -> SpaceX.API.Device.SpeedTestStats + 24, // 126: SpaceX.API.Device.ReportClientSpeedtestRequest.wifi_speedtest:type_name -> SpaceX.API.Device.SpeedTestStats + 25, // 127: SpaceX.API.Device.ReportClientSpeedtestRequest.client_platform:type_name -> SpaceX.API.Device.ClientPlatform + 121, // 128: SpaceX.API.Device.GetPingResponse.ResultsEntry.value:type_name -> SpaceX.API.Device.PingResult + 59, // 129: SpaceX.API.Device.GetConnectionsResponse.ServicesEntry.value:type_name -> SpaceX.API.Device.GetConnectionsResponse.ServiceConnection + 1, // 130: SpaceX.API.Device.SpeedtestStatus.Direction.err:type_name -> SpaceX.API.Device.SpeedtestError + 3, // 131: SpaceX.API.Device.Device.Stream:input_type -> SpaceX.API.Device.ToDevice + 5, // 132: SpaceX.API.Device.Device.Handle:input_type -> SpaceX.API.Device.Request + 4, // 133: SpaceX.API.Device.Device.Stream:output_type -> SpaceX.API.Device.FromDevice + 6, // 134: SpaceX.API.Device.Device.Handle:output_type -> SpaceX.API.Device.Response + 133, // [133:135] is the sub-list for method output_type + 131, // [131:133] is the sub-list for method input_type + 131, // [131:131] is the sub-list for extension type_name + 131, // [131:131] is the sub-list for extension extendee + 0, // [0:131] is the sub-list for field type_name } func init() { file_spacex_api_device_device_proto_init() } @@ -2711,7 +6613,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FactoryResetRequest); i { + switch v := v.(*EnableDebugTelemRequest); i { case 0: return &v.state case 1: @@ -2723,7 +6625,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FactoryResetResponse); i { + switch v := v.(*EnableDebugTelemResponse); i { case 0: return &v.state case 1: @@ -2735,7 +6637,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetHistoryRequest); i { + switch v := v.(*FactoryResetRequest); i { case 0: return &v.state case 1: @@ -2747,7 +6649,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLogRequest); i { + switch v := v.(*FactoryResetResponse); i { case 0: return &v.state case 1: @@ -2759,7 +6661,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLogResponse); i { + switch v := v.(*FuseRequest); i { case 0: return &v.state case 1: @@ -2771,7 +6673,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPingRequest); i { + switch v := v.(*FuseResponse); i { case 0: return &v.state case 1: @@ -2783,7 +6685,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPingResponse); i { + switch v := v.(*GetHistoryRequest); i { case 0: return &v.state case 1: @@ -2795,7 +6697,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingHostRequest); i { + switch v := v.(*GetLogRequest); i { case 0: return &v.state case 1: @@ -2807,7 +6709,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingHostResponse); i { + switch v := v.(*GetLogResponse); i { case 0: return &v.state case 1: @@ -2819,7 +6721,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStatusRequest); i { + switch v := v.(*GetPingRequest); i { case 0: return &v.state case 1: @@ -2831,7 +6733,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RebootRequest); i { + switch v := v.(*GetPingResponse); i { case 0: return &v.state case 1: @@ -2843,7 +6745,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RebootResponse); i { + switch v := v.(*PingHostRequest); i { case 0: return &v.state case 1: @@ -2855,7 +6757,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpeedTestRequest); i { + switch v := v.(*PingHostResponse); i { case 0: return &v.state case 1: @@ -2867,7 +6769,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SpeedTestResponse); i { + switch v := v.(*GetStatusRequest); i { case 0: return &v.state case 1: @@ -2879,7 +6781,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDeviceInfoRequest); i { + switch v := v.(*RebootRequest); i { case 0: return &v.state case 1: @@ -2891,7 +6793,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDeviceInfoResponse); i { + switch v := v.(*RebootResponse); i { case 0: return &v.state case 1: @@ -2903,7 +6805,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetTrustedKeysRequest); i { + switch v := v.(*SpeedTestStats); i { case 0: return &v.state case 1: @@ -2915,7 +6817,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetTrustedKeysResponse); i { + switch v := v.(*ClientPlatform); i { case 0: return &v.state case 1: @@ -2927,7 +6829,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetSkuRequest); i { + switch v := v.(*SpeedTestRequest); i { case 0: return &v.state case 1: @@ -2939,7 +6841,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetSkuResponse); i { + switch v := v.(*SpeedTestResponse); i { case 0: return &v.state case 1: @@ -2951,7 +6853,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateRequest); i { + switch v := v.(*GetConnectionsRequest); i { case 0: return &v.state case 1: @@ -2963,7 +6865,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateResponse); i { + switch v := v.(*GetConnectionsResponse); i { case 0: return &v.state case 1: @@ -2975,7 +6877,7 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNetworkInterfacesRequest); i { + switch v := v.(*GetDeviceInfoRequest); i { case 0: return &v.state case 1: @@ -2987,6 +6889,126 @@ func file_spacex_api_device_device_proto_init() { } } file_spacex_api_device_device_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDeviceInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTrustedKeysRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTrustedKeysResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetSkuRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetSkuResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestartControlRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RestartControlResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNetworkInterfacesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNetworkInterfacesResponse); i { case 0: return &v.state @@ -2998,6 +7020,222 @@ func file_spacex_api_device_device_proto_init() { return nil } } + file_spacex_api_device_device_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHeapDumpRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHeapDumpResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLocationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetLocationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishSetEmcRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishSetEmcResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetEmcRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetEmcResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPersistentStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartSpeedtestRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartSpeedtestResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedtestStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSpeedtestStatusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSpeedtestStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportClientSpeedtestRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReportClientSpeedtestResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetConnectionsResponse_ServiceConnection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_device_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpeedtestStatus_Direction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } file_spacex_api_device_device_proto_msgTypes[0].OneofWrappers = []interface{}{ (*ToDevice_Request)(nil), @@ -3010,6 +7248,7 @@ func file_spacex_api_device_device_proto_init() { (*Request_SignedRequest)(nil), (*Request_GetNextId)(nil), (*Request_Authenticate)(nil), + (*Request_EnableDebugTelem)(nil), (*Request_FactoryReset)(nil), (*Request_GetDeviceInfo)(nil), (*Request_GetHistory)(nil), @@ -3023,16 +7262,43 @@ func file_spacex_api_device_device_proto_init() { (*Request_SetTrustedKeys)(nil), (*Request_SpeedTest)(nil), (*Request_Update)(nil), + (*Request_GetLocation)(nil), + (*Request_GetHeapDump)(nil), + (*Request_RestartControl)(nil), + (*Request_Fuse)(nil), + (*Request_GetPersistentStats)(nil), + (*Request_GetConnections)(nil), + (*Request_StartSpeedtest)(nil), + (*Request_GetSpeedtestStatus)(nil), + (*Request_ReportClientSpeedtest)(nil), + (*Request_InitiateRemoteSsh)(nil), + (*Request_SelfTest)(nil), + (*Request_SetTestMode)(nil), + (*Request_SoftwareUpdate)(nil), (*Request_DishStow)(nil), + (*Request_StartDishSelfTest)(nil), + (*Request_DishGetContext)(nil), + (*Request_DishGetObstructionMap)(nil), + (*Request_DishSetEmc)(nil), + (*Request_DishGetEmc)(nil), + (*Request_DishSetConfig)(nil), + (*Request_DishGetConfig)(nil), (*Request_TransceiverIfLoopbackTest)(nil), (*Request_TransceiverGetStatus)(nil), + (*Request_TransceiverGetTelemetry)(nil), (*Request_WifiGetClients)(nil), + (*Request_WifiGetDiagnostics)(nil), (*Request_WifiGetPingMetrics)(nil), (*Request_WifiSetConfig)(nil), + (*Request_WifiGetConfig)(nil), (*Request_WifiSetup)(nil), + (*Request_WifiSetMeshDeviceTrust)(nil), + (*Request_WifiSetMeshConfig)(nil), + (*Request_WifiGetClientHistory)(nil), } file_spacex_api_device_device_proto_msgTypes[3].OneofWrappers = []interface{}{ (*Response_GetNextId)(nil), + (*Response_EnableDebugTelem)(nil), (*Response_FactoryReset)(nil), (*Response_GetDeviceInfo)(nil), (*Response_GetLog)(nil), @@ -3044,36 +7310,64 @@ func file_spacex_api_device_device_proto_init() { (*Response_SetSku)(nil), (*Response_SetTrustedKeys)(nil), (*Response_Update)(nil), + (*Response_GetLocation)(nil), + (*Response_GetHeapDump)(nil), + (*Response_RestartControl)(nil), + (*Response_Fuse)(nil), + (*Response_GetConnections)(nil), + (*Response_StartSpeedtest)(nil), + (*Response_GetSpeedtestStatus)(nil), + (*Response_ReportClientSpeedtest)(nil), + (*Response_InitiateRemoteSsh)(nil), + (*Response_SelfTest)(nil), + (*Response_SetTestMode)(nil), + (*Response_SoftwareUpdate)(nil), (*Response_DishAuthenticate)(nil), + (*Response_DishGetContext)(nil), (*Response_DishGetHistory)(nil), (*Response_DishGetStatus)(nil), + (*Response_DishGetObstructionMap)(nil), (*Response_DishStow)(nil), + (*Response_StartDishSelfTest)(nil), + (*Response_DishSetEmc)(nil), + (*Response_DishGetEmc)(nil), + (*Response_DishSetConfig)(nil), + (*Response_DishGetConfig)(nil), (*Response_TransceiverIfLoopbackTest)(nil), (*Response_TransceiverGetStatus)(nil), + (*Response_TransceiverGetTelemetry)(nil), (*Response_WifiAuthenticate)(nil), (*Response_WifiGetClients)(nil), + (*Response_WifiGetDiagnostics)(nil), (*Response_WifiGetHistory)(nil), (*Response_WifiGetPingMetrics)(nil), (*Response_WifiGetStatus)(nil), (*Response_WifiSetConfig)(nil), + (*Response_WifiGetConfig)(nil), (*Response_WifiSetup)(nil), + (*Response_WifiGetPersistentStats)(nil), + (*Response_WifiSetMeshDeviceTrust)(nil), + (*Response_WifiSetMeshConfig)(nil), + (*Response_WifiGetClientHistory)(nil), } file_spacex_api_device_device_proto_msgTypes[4].OneofWrappers = []interface{}{ (*Event_WifiNewClientConnected)(nil), (*Event_WifiAccountBonding)(nil), + (*Event_WifiNewPeer)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_device_proto_rawDesc, - NumEnums: 0, - NumMessages: 30, + NumEnums: 3, + NumMessages: 59, NumExtensions: 0, NumServices: 1, }, GoTypes: file_spacex_api_device_device_proto_goTypes, DependencyIndexes: file_spacex_api_device_device_proto_depIdxs, + EnumInfos: file_spacex_api_device_device_proto_enumTypes, MessageInfos: file_spacex_api_device_device_proto_msgTypes, }.Build() File_spacex_api_device_device_proto = out.File blob - 51ada24153ef5af7eb709ac78e27a560e17fecf7 blob + 0cdc8643de96b801e7eabaa219a28c412cfc9e63 --- device/dish.pb.go +++ device/dish.pb.go @@ -9,6 +9,7 @@ package device import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + satellites "olowe.co/dishy/satellites" reflect "reflect" sync "sync" ) @@ -20,6 +21,226 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type UserMobilityClass int32 + +const ( + UserMobilityClass_STATIONARY UserMobilityClass = 0 + UserMobilityClass_NOMADIC UserMobilityClass = 1 + UserMobilityClass_MOBILE UserMobilityClass = 2 +) + +// Enum value maps for UserMobilityClass. +var ( + UserMobilityClass_name = map[int32]string{ + 0: "STATIONARY", + 1: "NOMADIC", + 2: "MOBILE", + } + UserMobilityClass_value = map[string]int32{ + "STATIONARY": 0, + "NOMADIC": 1, + "MOBILE": 2, + } +) + +func (x UserMobilityClass) Enum() *UserMobilityClass { + p := new(UserMobilityClass) + *p = x + return p +} + +func (x UserMobilityClass) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UserMobilityClass) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[0].Descriptor() +} + +func (UserMobilityClass) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[0] +} + +func (x UserMobilityClass) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserMobilityClass.Descriptor instead. +func (UserMobilityClass) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{0} +} + +type SoftwareUpdateState int32 + +const ( + SoftwareUpdateState_SOFTWARE_UPDATE_STATE_UNKNOWN SoftwareUpdateState = 0 + SoftwareUpdateState_IDLE SoftwareUpdateState = 1 + SoftwareUpdateState_FETCHING SoftwareUpdateState = 2 + SoftwareUpdateState_PRE_CHECK SoftwareUpdateState = 3 + SoftwareUpdateState_WRITING SoftwareUpdateState = 4 + SoftwareUpdateState_POST_CHECK SoftwareUpdateState = 5 + SoftwareUpdateState_REBOOT_REQUIRED SoftwareUpdateState = 6 + SoftwareUpdateState_DISABLED SoftwareUpdateState = 7 + SoftwareUpdateState_FAULTED SoftwareUpdateState = 8 +) + +// Enum value maps for SoftwareUpdateState. +var ( + SoftwareUpdateState_name = map[int32]string{ + 0: "SOFTWARE_UPDATE_STATE_UNKNOWN", + 1: "IDLE", + 2: "FETCHING", + 3: "PRE_CHECK", + 4: "WRITING", + 5: "POST_CHECK", + 6: "REBOOT_REQUIRED", + 7: "DISABLED", + 8: "FAULTED", + } + SoftwareUpdateState_value = map[string]int32{ + "SOFTWARE_UPDATE_STATE_UNKNOWN": 0, + "IDLE": 1, + "FETCHING": 2, + "PRE_CHECK": 3, + "WRITING": 4, + "POST_CHECK": 5, + "REBOOT_REQUIRED": 6, + "DISABLED": 7, + "FAULTED": 8, + } +) + +func (x SoftwareUpdateState) Enum() *SoftwareUpdateState { + p := new(SoftwareUpdateState) + *p = x + return p +} + +func (x SoftwareUpdateState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SoftwareUpdateState) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[1].Descriptor() +} + +func (SoftwareUpdateState) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[1] +} + +func (x SoftwareUpdateState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SoftwareUpdateState.Descriptor instead. +func (SoftwareUpdateState) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{1} +} + +type UserClassOfService int32 + +const ( + UserClassOfService_UNKNOWN_USER_CLASS_OF_SERVICE UserClassOfService = 0 + UserClassOfService_CONSUMER UserClassOfService = 1 + UserClassOfService_BUSINESS UserClassOfService = 2 + UserClassOfService_BUSINESS_PLUS UserClassOfService = 3 + UserClassOfService_COMMERCIAL_AVIATION UserClassOfService = 4 +) + +// Enum value maps for UserClassOfService. +var ( + UserClassOfService_name = map[int32]string{ + 0: "UNKNOWN_USER_CLASS_OF_SERVICE", + 1: "CONSUMER", + 2: "BUSINESS", + 3: "BUSINESS_PLUS", + 4: "COMMERCIAL_AVIATION", + } + UserClassOfService_value = map[string]int32{ + "UNKNOWN_USER_CLASS_OF_SERVICE": 0, + "CONSUMER": 1, + "BUSINESS": 2, + "BUSINESS_PLUS": 3, + "COMMERCIAL_AVIATION": 4, + } +) + +func (x UserClassOfService) Enum() *UserClassOfService { + p := new(UserClassOfService) + *p = x + return p +} + +func (x UserClassOfService) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UserClassOfService) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[2].Descriptor() +} + +func (UserClassOfService) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[2] +} + +func (x UserClassOfService) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UserClassOfService.Descriptor instead. +func (UserClassOfService) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2} +} + +type HasActuators int32 + +const ( + HasActuators_HAS_ACTUATORS_UNKNOWN HasActuators = 0 + HasActuators_HAS_ACTUATORS_YES HasActuators = 1 + HasActuators_HAS_ACTUATORS_NO HasActuators = 2 +) + +// Enum value maps for HasActuators. +var ( + HasActuators_name = map[int32]string{ + 0: "HAS_ACTUATORS_UNKNOWN", + 1: "HAS_ACTUATORS_YES", + 2: "HAS_ACTUATORS_NO", + } + HasActuators_value = map[string]int32{ + "HAS_ACTUATORS_UNKNOWN": 0, + "HAS_ACTUATORS_YES": 1, + "HAS_ACTUATORS_NO": 2, + } +) + +func (x HasActuators) Enum() *HasActuators { + p := new(HasActuators) + *p = x + return p +} + +func (x HasActuators) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HasActuators) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[3].Descriptor() +} + +func (HasActuators) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[3] +} + +func (x HasActuators) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HasActuators.Descriptor instead. +func (HasActuators) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{3} +} + type DishState int32 const ( @@ -56,11 +277,11 @@ func (x DishState) String() string { } func (DishState) Descriptor() protoreflect.EnumDescriptor { - return file_spacex_api_device_dish_proto_enumTypes[0].Descriptor() + return file_spacex_api_device_dish_proto_enumTypes[4].Descriptor() } func (DishState) Type() protoreflect.EnumType { - return &file_spacex_api_device_dish_proto_enumTypes[0] + return &file_spacex_api_device_dish_proto_enumTypes[4] } func (x DishState) Number() protoreflect.EnumNumber { @@ -69,13 +290,146 @@ func (x DishState) Number() protoreflect.EnumNumber { // Deprecated: Use DishState.Descriptor instead. func (DishState) EnumDescriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{0} + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4} } +type DishOutage_Cause int32 + +const ( + DishOutage_UNKNOWN DishOutage_Cause = 0 + DishOutage_BOOTING DishOutage_Cause = 1 + DishOutage_STOWED DishOutage_Cause = 2 + DishOutage_THERMAL_SHUTDOWN DishOutage_Cause = 3 + DishOutage_NO_SCHEDULE DishOutage_Cause = 4 + DishOutage_NO_SATS DishOutage_Cause = 5 + DishOutage_OBSTRUCTED DishOutage_Cause = 6 + DishOutage_NO_DOWNLINK DishOutage_Cause = 7 + DishOutage_NO_PINGS DishOutage_Cause = 8 + DishOutage_ACTUATOR_ACTIVITY DishOutage_Cause = 9 + DishOutage_CABLE_TEST DishOutage_Cause = 10 +) + +// Enum value maps for DishOutage_Cause. +var ( + DishOutage_Cause_name = map[int32]string{ + 0: "UNKNOWN", + 1: "BOOTING", + 2: "STOWED", + 3: "THERMAL_SHUTDOWN", + 4: "NO_SCHEDULE", + 5: "NO_SATS", + 6: "OBSTRUCTED", + 7: "NO_DOWNLINK", + 8: "NO_PINGS", + 9: "ACTUATOR_ACTIVITY", + 10: "CABLE_TEST", + } + DishOutage_Cause_value = map[string]int32{ + "UNKNOWN": 0, + "BOOTING": 1, + "STOWED": 2, + "THERMAL_SHUTDOWN": 3, + "NO_SCHEDULE": 4, + "NO_SATS": 5, + "OBSTRUCTED": 6, + "NO_DOWNLINK": 7, + "NO_PINGS": 8, + "ACTUATOR_ACTIVITY": 9, + "CABLE_TEST": 10, + } +) + +func (x DishOutage_Cause) Enum() *DishOutage_Cause { + p := new(DishOutage_Cause) + *p = x + return p +} + +func (x DishOutage_Cause) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DishOutage_Cause) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[5].Descriptor() +} + +func (DishOutage_Cause) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[5] +} + +func (x DishOutage_Cause) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DishOutage_Cause.Descriptor instead. +func (DishOutage_Cause) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4, 0} +} + +type SetTestModeRequest_RfMode int32 + +const ( + SetTestModeRequest_RX SetTestModeRequest_RfMode = 0 + SetTestModeRequest_IDLE SetTestModeRequest_RfMode = 1 + SetTestModeRequest_TX SetTestModeRequest_RfMode = 2 + SetTestModeRequest_CAL SetTestModeRequest_RfMode = 3 + SetTestModeRequest_USER SetTestModeRequest_RfMode = 4 + SetTestModeRequest_NORMAL SetTestModeRequest_RfMode = 420 +) + +// Enum value maps for SetTestModeRequest_RfMode. +var ( + SetTestModeRequest_RfMode_name = map[int32]string{ + 0: "RX", + 1: "IDLE", + 2: "TX", + 3: "CAL", + 4: "USER", + 420: "NORMAL", + } + SetTestModeRequest_RfMode_value = map[string]int32{ + "RX": 0, + "IDLE": 1, + "TX": 2, + "CAL": 3, + "USER": 4, + "NORMAL": 420, + } +) + +func (x SetTestModeRequest_RfMode) Enum() *SetTestModeRequest_RfMode { + p := new(SetTestModeRequest_RfMode) + *p = x + return p +} + +func (x SetTestModeRequest_RfMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SetTestModeRequest_RfMode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_proto_enumTypes[6].Descriptor() +} + +func (SetTestModeRequest_RfMode) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_proto_enumTypes[6] +} + +func (x SetTestModeRequest_RfMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SetTestModeRequest_RfMode.Descriptor instead. +func (SetTestModeRequest_RfMode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{18, 0} +} + type DishStowRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Unstow bool `protobuf:"varint,1,opt,name=unstow,proto3" json:"unstow,omitempty"` } func (x *DishStowRequest) Reset() { @@ -110,6 +464,13 @@ func (*DishStowRequest) Descriptor() ([]byte, []int) { return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{0} } +func (x *DishStowRequest) GetUnstow() bool { + if x != nil { + return x.Unstow + } + return false +} + type DishStowResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -148,25 +509,323 @@ func (*DishStowResponse) Descriptor() ([]byte, []int) return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{1} } +type DishGetContextRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DishGetContextRequest) Reset() { + *x = DishGetContextRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetContextRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetContextRequest) ProtoMessage() {} + +func (x *DishGetContextRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[2] + 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 DishGetContextRequest.ProtoReflect.Descriptor instead. +func (*DishGetContextRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2} +} + +type DishGetContextResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceInfo *DeviceInfo `protobuf:"bytes,1,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"` + DeviceState *DeviceState `protobuf:"bytes,7,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"` + ObstructionFraction float32 `protobuf:"fixed32,2,opt,name=obstruction_fraction,json=obstructionFraction,proto3" json:"obstruction_fraction,omitempty"` + ObstructionValidS float32 `protobuf:"fixed32,3,opt,name=obstruction_valid_s,json=obstructionValidS,proto3" json:"obstruction_valid_s,omitempty"` + ObstructionCurrent bool `protobuf:"varint,12,opt,name=obstruction_current,json=obstructionCurrent,proto3" json:"obstruction_current,omitempty"` + CellId uint32 `protobuf:"varint,4,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"` + PopRackId uint32 `protobuf:"varint,5,opt,name=pop_rack_id,json=popRackId,proto3" json:"pop_rack_id,omitempty"` + InitialSatelliteId uint32 `protobuf:"varint,8,opt,name=initial_satellite_id,json=initialSatelliteId,proto3" json:"initial_satellite_id,omitempty"` + InitialGatewayId uint32 `protobuf:"varint,9,opt,name=initial_gateway_id,json=initialGatewayId,proto3" json:"initial_gateway_id,omitempty"` + OnBackupBeam bool `protobuf:"varint,10,opt,name=on_backup_beam,json=onBackupBeam,proto3" json:"on_backup_beam,omitempty"` + SecondsToSlotEnd float32 `protobuf:"fixed32,6,opt,name=seconds_to_slot_end,json=secondsToSlotEnd,proto3" json:"seconds_to_slot_end,omitempty"` + DebugTelemetryEnabled bool `protobuf:"varint,11,opt,name=debug_telemetry_enabled,json=debugTelemetryEnabled,proto3" json:"debug_telemetry_enabled,omitempty"` + PopPingDropRate_15SMean float32 `protobuf:"fixed32,13,opt,name=pop_ping_drop_rate_15s_mean,json=popPingDropRate15sMean,proto3" json:"pop_ping_drop_rate_15s_mean,omitempty"` + PopPingLatencyMs_15SMean float32 `protobuf:"fixed32,14,opt,name=pop_ping_latency_ms_15s_mean,json=popPingLatencyMs15sMean,proto3" json:"pop_ping_latency_ms_15s_mean,omitempty"` + SecondsSinceLast_1SOutage float32 `protobuf:"fixed32,15,opt,name=seconds_since_last_1s_outage,json=secondsSinceLast1sOutage,proto3" json:"seconds_since_last_1s_outage,omitempty"` + SecondsSinceLast_2SOutage float32 `protobuf:"fixed32,16,opt,name=seconds_since_last_2s_outage,json=secondsSinceLast2sOutage,proto3" json:"seconds_since_last_2s_outage,omitempty"` + SecondsSinceLast_5SOutage float32 `protobuf:"fixed32,17,opt,name=seconds_since_last_5s_outage,json=secondsSinceLast5sOutage,proto3" json:"seconds_since_last_5s_outage,omitempty"` + SecondsSinceLast_15SOutage float32 `protobuf:"fixed32,18,opt,name=seconds_since_last_15s_outage,json=secondsSinceLast15sOutage,proto3" json:"seconds_since_last_15s_outage,omitempty"` + SecondsSinceLast_60SOutage float32 `protobuf:"fixed32,19,opt,name=seconds_since_last_60s_outage,json=secondsSinceLast60sOutage,proto3" json:"seconds_since_last_60s_outage,omitempty"` +} + +func (x *DishGetContextResponse) Reset() { + *x = DishGetContextResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetContextResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetContextResponse) ProtoMessage() {} + +func (x *DishGetContextResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[3] + 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 DishGetContextResponse.ProtoReflect.Descriptor instead. +func (*DishGetContextResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{3} +} + +func (x *DishGetContextResponse) GetDeviceInfo() *DeviceInfo { + if x != nil { + return x.DeviceInfo + } + return nil +} + +func (x *DishGetContextResponse) GetDeviceState() *DeviceState { + if x != nil { + return x.DeviceState + } + return nil +} + +func (x *DishGetContextResponse) GetObstructionFraction() float32 { + if x != nil { + return x.ObstructionFraction + } + return 0 +} + +func (x *DishGetContextResponse) GetObstructionValidS() float32 { + if x != nil { + return x.ObstructionValidS + } + return 0 +} + +func (x *DishGetContextResponse) GetObstructionCurrent() bool { + if x != nil { + return x.ObstructionCurrent + } + return false +} + +func (x *DishGetContextResponse) GetCellId() uint32 { + if x != nil { + return x.CellId + } + return 0 +} + +func (x *DishGetContextResponse) GetPopRackId() uint32 { + if x != nil { + return x.PopRackId + } + return 0 +} + +func (x *DishGetContextResponse) GetInitialSatelliteId() uint32 { + if x != nil { + return x.InitialSatelliteId + } + return 0 +} + +func (x *DishGetContextResponse) GetInitialGatewayId() uint32 { + if x != nil { + return x.InitialGatewayId + } + return 0 +} + +func (x *DishGetContextResponse) GetOnBackupBeam() bool { + if x != nil { + return x.OnBackupBeam + } + return false +} + +func (x *DishGetContextResponse) GetSecondsToSlotEnd() float32 { + if x != nil { + return x.SecondsToSlotEnd + } + return 0 +} + +func (x *DishGetContextResponse) GetDebugTelemetryEnabled() bool { + if x != nil { + return x.DebugTelemetryEnabled + } + return false +} + +func (x *DishGetContextResponse) GetPopPingDropRate_15SMean() float32 { + if x != nil { + return x.PopPingDropRate_15SMean + } + return 0 +} + +func (x *DishGetContextResponse) GetPopPingLatencyMs_15SMean() float32 { + if x != nil { + return x.PopPingLatencyMs_15SMean + } + return 0 +} + +func (x *DishGetContextResponse) GetSecondsSinceLast_1SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_1SOutage + } + return 0 +} + +func (x *DishGetContextResponse) GetSecondsSinceLast_2SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_2SOutage + } + return 0 +} + +func (x *DishGetContextResponse) GetSecondsSinceLast_5SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_5SOutage + } + return 0 +} + +func (x *DishGetContextResponse) GetSecondsSinceLast_15SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_15SOutage + } + return 0 +} + +func (x *DishGetContextResponse) GetSecondsSinceLast_60SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_60SOutage + } + return 0 +} + +type DishOutage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cause DishOutage_Cause `protobuf:"varint,1,opt,name=cause,proto3,enum=SpaceX.API.Device.DishOutage_Cause" json:"cause,omitempty"` + StartTimestampNs int64 `protobuf:"varint,2,opt,name=start_timestamp_ns,json=startTimestampNs,proto3" json:"start_timestamp_ns,omitempty"` + DurationNs uint64 `protobuf:"varint,3,opt,name=duration_ns,json=durationNs,proto3" json:"duration_ns,omitempty"` + DidSwitch bool `protobuf:"varint,4,opt,name=did_switch,json=didSwitch,proto3" json:"did_switch,omitempty"` +} + +func (x *DishOutage) Reset() { + *x = DishOutage{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishOutage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishOutage) ProtoMessage() {} + +func (x *DishOutage) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[4] + 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 DishOutage.ProtoReflect.Descriptor instead. +func (*DishOutage) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4} +} + +func (x *DishOutage) GetCause() DishOutage_Cause { + if x != nil { + return x.Cause + } + return DishOutage_UNKNOWN +} + +func (x *DishOutage) GetStartTimestampNs() int64 { + if x != nil { + return x.StartTimestampNs + } + return 0 +} + +func (x *DishOutage) GetDurationNs() uint64 { + if x != nil { + return x.DurationNs + } + return 0 +} + +func (x *DishOutage) GetDidSwitch() bool { + if x != nil { + return x.DidSwitch + } + return false +} + type DishGetHistoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` - PopPingDropRate []float32 `protobuf:"fixed32,1001,rep,packed,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` - PopPingLatencyMs []float32 `protobuf:"fixed32,1002,rep,packed,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"` - DownlinkThroughputBps []float32 `protobuf:"fixed32,1003,rep,packed,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"` - UplinkThroughputBps []float32 `protobuf:"fixed32,1004,rep,packed,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"` - Snr []float32 `protobuf:"fixed32,1005,rep,packed,name=snr,proto3" json:"snr,omitempty"` - Scheduled []bool `protobuf:"varint,1006,rep,packed,name=scheduled,proto3" json:"scheduled,omitempty"` - Obstructed []bool `protobuf:"varint,1007,rep,packed,name=obstructed,proto3" json:"obstructed,omitempty"` + Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` + PopPingDropRate []float32 `protobuf:"fixed32,1001,rep,packed,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` + PopPingLatencyMs []float32 `protobuf:"fixed32,1002,rep,packed,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"` + DownlinkThroughputBps []float32 `protobuf:"fixed32,1003,rep,packed,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"` + UplinkThroughputBps []float32 `protobuf:"fixed32,1004,rep,packed,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"` + Outages []*DishOutage `protobuf:"bytes,1009,rep,name=outages,proto3" json:"outages,omitempty"` } func (x *DishGetHistoryResponse) Reset() { *x = DishGetHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_dish_proto_msgTypes[2] + mi := &file_spacex_api_device_dish_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -179,7 +838,7 @@ func (x *DishGetHistoryResponse) String() string { func (*DishGetHistoryResponse) ProtoMessage() {} func (x *DishGetHistoryResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_dish_proto_msgTypes[2] + mi := &file_spacex_api_device_dish_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -192,7 +851,7 @@ func (x *DishGetHistoryResponse) ProtoReflect() protor // Deprecated: Use DishGetHistoryResponse.ProtoReflect.Descriptor instead. func (*DishGetHistoryResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2} + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{5} } func (x *DishGetHistoryResponse) GetCurrent() uint64 { @@ -230,49 +889,47 @@ func (x *DishGetHistoryResponse) GetUplinkThroughputBp return nil } -func (x *DishGetHistoryResponse) GetSnr() []float32 { +func (x *DishGetHistoryResponse) GetOutages() []*DishOutage { if x != nil { - return x.Snr + return x.Outages } return nil } -func (x *DishGetHistoryResponse) GetScheduled() []bool { - if x != nil { - return x.Scheduled - } - return nil -} - -func (x *DishGetHistoryResponse) GetObstructed() []bool { - if x != nil { - return x.Obstructed - } - return nil -} - type DishGetStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - DeviceInfo *DeviceInfo `protobuf:"bytes,1,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"` - DeviceState *DeviceState `protobuf:"bytes,2,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"` - State DishState `protobuf:"varint,1006,opt,name=state,proto3,enum=SpaceX.API.Device.DishState" json:"state,omitempty"` - Alerts *DishAlerts `protobuf:"bytes,1005,opt,name=alerts,proto3" json:"alerts,omitempty"` - Snr float32 `protobuf:"fixed32,1001,opt,name=snr,proto3" json:"snr,omitempty"` - SecondsToFirstNonemptySlot float32 `protobuf:"fixed32,1002,opt,name=seconds_to_first_nonempty_slot,json=secondsToFirstNonemptySlot,proto3" json:"seconds_to_first_nonempty_slot,omitempty"` - PopPingDropRate float32 `protobuf:"fixed32,1003,opt,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` - DownlinkThroughputBps float32 `protobuf:"fixed32,1007,opt,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"` - UplinkThroughputBps float32 `protobuf:"fixed32,1008,opt,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"` - PopPingLatencyMs float32 `protobuf:"fixed32,1009,opt,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"` - ObstructionStats *DishObstructionStats `protobuf:"bytes,1004,opt,name=obstruction_stats,json=obstructionStats,proto3" json:"obstruction_stats,omitempty"` + DeviceInfo *DeviceInfo `protobuf:"bytes,1,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"` + DeviceState *DeviceState `protobuf:"bytes,2,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"` + Alerts *DishAlerts `protobuf:"bytes,1005,opt,name=alerts,proto3" json:"alerts,omitempty"` + Outage *DishOutage `protobuf:"bytes,1014,opt,name=outage,proto3" json:"outage,omitempty"` + GpsStats *DishGpsStats `protobuf:"bytes,1015,opt,name=gps_stats,json=gpsStats,proto3" json:"gps_stats,omitempty"` + SecondsToFirstNonemptySlot float32 `protobuf:"fixed32,1002,opt,name=seconds_to_first_nonempty_slot,json=secondsToFirstNonemptySlot,proto3" json:"seconds_to_first_nonempty_slot,omitempty"` + PopPingDropRate float32 `protobuf:"fixed32,1003,opt,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` + DownlinkThroughputBps float32 `protobuf:"fixed32,1007,opt,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"` + UplinkThroughputBps float32 `protobuf:"fixed32,1008,opt,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"` + PopPingLatencyMs float32 `protobuf:"fixed32,1009,opt,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"` + ObstructionStats *DishObstructionStats `protobuf:"bytes,1004,opt,name=obstruction_stats,json=obstructionStats,proto3" json:"obstruction_stats,omitempty"` + StowRequested bool `protobuf:"varint,1010,opt,name=stow_requested,json=stowRequested,proto3" json:"stow_requested,omitempty"` + BoresightAzimuthDeg float32 `protobuf:"fixed32,1011,opt,name=boresight_azimuth_deg,json=boresightAzimuthDeg,proto3" json:"boresight_azimuth_deg,omitempty"` + BoresightElevationDeg float32 `protobuf:"fixed32,1012,opt,name=boresight_elevation_deg,json=boresightElevationDeg,proto3" json:"boresight_elevation_deg,omitempty"` + EthSpeedMbps int32 `protobuf:"varint,1016,opt,name=eth_speed_mbps,json=ethSpeedMbps,proto3" json:"eth_speed_mbps,omitempty"` + MobilityClass UserMobilityClass `protobuf:"varint,1017,opt,name=mobility_class,json=mobilityClass,proto3,enum=SpaceX.API.Device.UserMobilityClass" json:"mobility_class,omitempty"` + IsSnrAboveNoiseFloor bool `protobuf:"varint,1018,opt,name=is_snr_above_noise_floor,json=isSnrAboveNoiseFloor,proto3" json:"is_snr_above_noise_floor,omitempty"` + ReadyStates *DishReadyStates `protobuf:"bytes,1019,opt,name=ready_states,json=readyStates,proto3" json:"ready_states,omitempty"` + ClassOfService UserClassOfService `protobuf:"varint,1020,opt,name=class_of_service,json=classOfService,proto3,enum=SpaceX.API.Device.UserClassOfService" json:"class_of_service,omitempty"` + SoftwareUpdateState SoftwareUpdateState `protobuf:"varint,1021,opt,name=software_update_state,json=softwareUpdateState,proto3,enum=SpaceX.API.Device.SoftwareUpdateState" json:"software_update_state,omitempty"` + IsSnrPersistentlyLow bool `protobuf:"varint,1022,opt,name=is_snr_persistently_low,json=isSnrPersistentlyLow,proto3" json:"is_snr_persistently_low,omitempty"` + HasActuators HasActuators `protobuf:"varint,1023,opt,name=has_actuators,json=hasActuators,proto3,enum=SpaceX.API.Device.HasActuators" json:"has_actuators,omitempty"` + DisablementCode satellites.UtDisablementCode `protobuf:"varint,1024,opt,name=disablement_code,json=disablementCode,proto3,enum=SpaceX.API.Satellites.Network.UtDisablementCode" json:"disablement_code,omitempty"` } func (x *DishGetStatusResponse) Reset() { *x = DishGetStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_dish_proto_msgTypes[3] + mi := &file_spacex_api_device_dish_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -285,7 +942,7 @@ func (x *DishGetStatusResponse) String() string { func (*DishGetStatusResponse) ProtoMessage() {} func (x *DishGetStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_dish_proto_msgTypes[3] + mi := &file_spacex_api_device_dish_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -298,7 +955,7 @@ func (x *DishGetStatusResponse) ProtoReflect() protore // Deprecated: Use DishGetStatusResponse.ProtoReflect.Descriptor instead. func (*DishGetStatusResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{3} + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{6} } func (x *DishGetStatusResponse) GetDeviceInfo() *DeviceInfo { @@ -315,25 +972,25 @@ func (x *DishGetStatusResponse) GetDeviceState() *Devi return nil } -func (x *DishGetStatusResponse) GetState() DishState { +func (x *DishGetStatusResponse) GetAlerts() *DishAlerts { if x != nil { - return x.State + return x.Alerts } - return DishState_UNKNOWN + return nil } -func (x *DishGetStatusResponse) GetAlerts() *DishAlerts { +func (x *DishGetStatusResponse) GetOutage() *DishOutage { if x != nil { - return x.Alerts + return x.Outage } return nil } -func (x *DishGetStatusResponse) GetSnr() float32 { +func (x *DishGetStatusResponse) GetGpsStats() *DishGpsStats { if x != nil { - return x.Snr + return x.GpsStats } - return 0 + return nil } func (x *DishGetStatusResponse) GetSecondsToFirstNonemptySlot() float32 { @@ -378,107 +1035,113 @@ func (x *DishGetStatusResponse) GetObstructionStats() return nil } -type DishAlerts struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MotorsStuck bool `protobuf:"varint,1,opt,name=motors_stuck,json=motorsStuck,proto3" json:"motors_stuck,omitempty"` - ThermalThrottle bool `protobuf:"varint,3,opt,name=thermal_throttle,json=thermalThrottle,proto3" json:"thermal_throttle,omitempty"` - ThermalShutdown bool `protobuf:"varint,2,opt,name=thermal_shutdown,json=thermalShutdown,proto3" json:"thermal_shutdown,omitempty"` - UnexpectedLocation bool `protobuf:"varint,4,opt,name=unexpected_location,json=unexpectedLocation,proto3" json:"unexpected_location,omitempty"` -} - -func (x *DishAlerts) Reset() { - *x = DishAlerts{} - if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_dish_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *DishGetStatusResponse) GetStowRequested() bool { + if x != nil { + return x.StowRequested + } + return false +} + +func (x *DishGetStatusResponse) GetBoresightAzimuthDeg() float32 { + if x != nil { + return x.BoresightAzimuthDeg + } + return 0 +} + +func (x *DishGetStatusResponse) GetBoresightElevationDeg() float32 { + if x != nil { + return x.BoresightElevationDeg + } + return 0 +} + +func (x *DishGetStatusResponse) GetEthSpeedMbps() int32 { + if x != nil { + return x.EthSpeedMbps + } + return 0 +} + +func (x *DishGetStatusResponse) GetMobilityClass() UserMobilityClass { + if x != nil { + return x.MobilityClass + } + return UserMobilityClass_STATIONARY +} + +func (x *DishGetStatusResponse) GetIsSnrAboveNoiseFloor() bool { + if x != nil { + return x.IsSnrAboveNoiseFloor + } + return false +} + +func (x *DishGetStatusResponse) GetReadyStates() *DishReadyStates { + if x != nil { + return x.ReadyStates } + return nil } -func (x *DishAlerts) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DishAlerts) ProtoMessage() {} - -func (x *DishAlerts) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_dish_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *DishGetStatusResponse) GetClassOfService() UserClassOfService { + if x != nil { + return x.ClassOfService } - return mi.MessageOf(x) + return UserClassOfService_UNKNOWN_USER_CLASS_OF_SERVICE } -// Deprecated: Use DishAlerts.ProtoReflect.Descriptor instead. -func (*DishAlerts) Descriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4} -} - -func (x *DishAlerts) GetMotorsStuck() bool { +func (x *DishGetStatusResponse) GetSoftwareUpdateState() SoftwareUpdateState { if x != nil { - return x.MotorsStuck + return x.SoftwareUpdateState } - return false + return SoftwareUpdateState_SOFTWARE_UPDATE_STATE_UNKNOWN } -func (x *DishAlerts) GetThermalThrottle() bool { +func (x *DishGetStatusResponse) GetIsSnrPersistentlyLow() bool { if x != nil { - return x.ThermalThrottle + return x.IsSnrPersistentlyLow } return false } -func (x *DishAlerts) GetThermalShutdown() bool { +func (x *DishGetStatusResponse) GetHasActuators() HasActuators { if x != nil { - return x.ThermalShutdown + return x.HasActuators } - return false + return HasActuators_HAS_ACTUATORS_UNKNOWN } -func (x *DishAlerts) GetUnexpectedLocation() bool { +func (x *DishGetStatusResponse) GetDisablementCode() satellites.UtDisablementCode { if x != nil { - return x.UnexpectedLocation + return x.DisablementCode } - return false + return satellites.UtDisablementCode(0) } -type DishObstructionStats struct { +type DishGetObstructionMapRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - CurrentlyObstructed bool `protobuf:"varint,5,opt,name=currently_obstructed,json=currentlyObstructed,proto3" json:"currently_obstructed,omitempty"` - FractionObstructed float32 `protobuf:"fixed32,1,opt,name=fraction_obstructed,json=fractionObstructed,proto3" json:"fraction_obstructed,omitempty"` - Last_24HObstructedS float32 `protobuf:"fixed32,1006,opt,name=last_24h_obstructed_s,json=last24hObstructedS,proto3" json:"last_24h_obstructed_s,omitempty"` - ValidS float32 `protobuf:"fixed32,4,opt,name=valid_s,json=validS,proto3" json:"valid_s,omitempty"` - WedgeFractionObstructed []float32 `protobuf:"fixed32,2,rep,packed,name=wedge_fraction_obstructed,json=wedgeFractionObstructed,proto3" json:"wedge_fraction_obstructed,omitempty"` - WedgeAbsFractionObstructed []float32 `protobuf:"fixed32,3,rep,packed,name=wedge_abs_fraction_obstructed,json=wedgeAbsFractionObstructed,proto3" json:"wedge_abs_fraction_obstructed,omitempty"` } -func (x *DishObstructionStats) Reset() { - *x = DishObstructionStats{} +func (x *DishGetObstructionMapRequest) Reset() { + *x = DishGetObstructionMapRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_dish_proto_msgTypes[5] + mi := &file_spacex_api_device_dish_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DishObstructionStats) String() string { +func (x *DishGetObstructionMapRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DishObstructionStats) ProtoMessage() {} +func (*DishGetObstructionMapRequest) ProtoMessage() {} -func (x *DishObstructionStats) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_dish_proto_msgTypes[5] +func (x *DishGetObstructionMapRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -489,78 +1152,108 @@ func (x *DishObstructionStats) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use DishObstructionStats.ProtoReflect.Descriptor instead. -func (*DishObstructionStats) Descriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{5} +// Deprecated: Use DishGetObstructionMapRequest.ProtoReflect.Descriptor instead. +func (*DishGetObstructionMapRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{7} } -func (x *DishObstructionStats) GetCurrentlyObstructed() bool { - if x != nil { - return x.CurrentlyObstructed - } - return false +type DishGetObstructionMapResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NumRows uint32 `protobuf:"varint,1,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"` + NumCols uint32 `protobuf:"varint,2,opt,name=num_cols,json=numCols,proto3" json:"num_cols,omitempty"` + Snr []float32 `protobuf:"fixed32,3,rep,packed,name=snr,proto3" json:"snr,omitempty"` } -func (x *DishObstructionStats) GetFractionObstructed() float32 { - if x != nil { - return x.FractionObstructed +func (x *DishGetObstructionMapResponse) Reset() { + *x = DishGetObstructionMapResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *DishObstructionStats) GetLast_24HObstructedS() float32 { - if x != nil { - return x.Last_24HObstructedS +func (x *DishGetObstructionMapResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetObstructionMapResponse) ProtoMessage() {} + +func (x *DishGetObstructionMapResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *DishObstructionStats) GetValidS() float32 { +// Deprecated: Use DishGetObstructionMapResponse.ProtoReflect.Descriptor instead. +func (*DishGetObstructionMapResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{8} +} + +func (x *DishGetObstructionMapResponse) GetNumRows() uint32 { if x != nil { - return x.ValidS + return x.NumRows } return 0 } -func (x *DishObstructionStats) GetWedgeFractionObstructed() []float32 { +func (x *DishGetObstructionMapResponse) GetNumCols() uint32 { if x != nil { - return x.WedgeFractionObstructed + return x.NumCols } - return nil + return 0 } -func (x *DishObstructionStats) GetWedgeAbsFractionObstructed() []float32 { +func (x *DishGetObstructionMapResponse) GetSnr() []float32 { if x != nil { - return x.WedgeAbsFractionObstructed + return x.Snr } return nil } -type DishAuthenticateResponse struct { +type DishAlerts struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Dish *ChallengeResponse `protobuf:"bytes,2,opt,name=dish,proto3" json:"dish,omitempty"` + MotorsStuck bool `protobuf:"varint,1,opt,name=motors_stuck,json=motorsStuck,proto3" json:"motors_stuck,omitempty"` + ThermalThrottle bool `protobuf:"varint,3,opt,name=thermal_throttle,json=thermalThrottle,proto3" json:"thermal_throttle,omitempty"` + ThermalShutdown bool `protobuf:"varint,2,opt,name=thermal_shutdown,json=thermalShutdown,proto3" json:"thermal_shutdown,omitempty"` + MastNotNearVertical bool `protobuf:"varint,5,opt,name=mast_not_near_vertical,json=mastNotNearVertical,proto3" json:"mast_not_near_vertical,omitempty"` + UnexpectedLocation bool `protobuf:"varint,4,opt,name=unexpected_location,json=unexpectedLocation,proto3" json:"unexpected_location,omitempty"` + SlowEthernetSpeeds bool `protobuf:"varint,6,opt,name=slow_ethernet_speeds,json=slowEthernetSpeeds,proto3" json:"slow_ethernet_speeds,omitempty"` + Roaming bool `protobuf:"varint,7,opt,name=roaming,proto3" json:"roaming,omitempty"` + InstallPending bool `protobuf:"varint,8,opt,name=install_pending,json=installPending,proto3" json:"install_pending,omitempty"` + IsHeating bool `protobuf:"varint,9,opt,name=is_heating,json=isHeating,proto3" json:"is_heating,omitempty"` + PowerSupplyThermalThrottle bool `protobuf:"varint,10,opt,name=power_supply_thermal_throttle,json=powerSupplyThermalThrottle,proto3" json:"power_supply_thermal_throttle,omitempty"` } -func (x *DishAuthenticateResponse) Reset() { - *x = DishAuthenticateResponse{} +func (x *DishAlerts) Reset() { + *x = DishAlerts{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_dish_proto_msgTypes[6] + mi := &file_spacex_api_device_dish_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DishAuthenticateResponse) String() string { +func (x *DishAlerts) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DishAuthenticateResponse) ProtoMessage() {} +func (*DishAlerts) ProtoMessage() {} -func (x *DishAuthenticateResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_dish_proto_msgTypes[6] +func (x *DishAlerts) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -571,68 +1264,974 @@ func (x *DishAuthenticateResponse) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use DishAuthenticateResponse.ProtoReflect.Descriptor instead. -func (*DishAuthenticateResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{6} +// Deprecated: Use DishAlerts.ProtoReflect.Descriptor instead. +func (*DishAlerts) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{9} } -func (x *DishAuthenticateResponse) GetDish() *ChallengeResponse { +func (x *DishAlerts) GetMotorsStuck() bool { if x != nil { - return x.Dish + return x.MotorsStuck } - return nil + return false } -var File_spacex_api_device_dish_proto protoreflect.FileDescriptor +func (x *DishAlerts) GetThermalThrottle() bool { + if x != nil { + return x.ThermalThrottle + } + return false +} -var file_spacex_api_device_dish_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd1, 0x02, 0x0a, 0x16, 0x44, 0x69, 0x73, - 0x68, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, - 0x12, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x50, - 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, - 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, - 0x6d, 0x73, 0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, 0x70, 0x6f, 0x70, 0x50, 0x69, - 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x64, - 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, - 0x74, 0x42, 0x70, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, 0x18, 0xec, 0x07, - 0x20, 0x03, 0x28, 0x02, 0x52, 0x13, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x70, 0x73, 0x12, 0x11, 0x0a, 0x03, 0x73, 0x6e, 0x72, - 0x18, 0xed, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x1d, 0x0a, 0x09, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x18, 0xee, 0x07, 0x20, 0x03, 0x28, 0x08, - 0x52, 0x09, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x6f, - 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0xef, 0x07, 0x20, 0x03, 0x28, 0x08, - 0x52, 0x0a, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x22, 0x82, 0x05, 0x0a, - 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, +func (x *DishAlerts) GetThermalShutdown() bool { + if x != nil { + return x.ThermalShutdown + } + return false +} + +func (x *DishAlerts) GetMastNotNearVertical() bool { + if x != nil { + return x.MastNotNearVertical + } + return false +} + +func (x *DishAlerts) GetUnexpectedLocation() bool { + if x != nil { + return x.UnexpectedLocation + } + return false +} + +func (x *DishAlerts) GetSlowEthernetSpeeds() bool { + if x != nil { + return x.SlowEthernetSpeeds + } + return false +} + +func (x *DishAlerts) GetRoaming() bool { + if x != nil { + return x.Roaming + } + return false +} + +func (x *DishAlerts) GetInstallPending() bool { + if x != nil { + return x.InstallPending + } + return false +} + +func (x *DishAlerts) GetIsHeating() bool { + if x != nil { + return x.IsHeating + } + return false +} + +func (x *DishAlerts) GetPowerSupplyThermalThrottle() bool { + if x != nil { + return x.PowerSupplyThermalThrottle + } + return false +} + +type DishReadyStates struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Cady bool `protobuf:"varint,1,opt,name=cady,proto3" json:"cady,omitempty"` + Scp bool `protobuf:"varint,2,opt,name=scp,proto3" json:"scp,omitempty"` + L1L2 bool `protobuf:"varint,3,opt,name=l1l2,proto3" json:"l1l2,omitempty"` + Xphy bool `protobuf:"varint,4,opt,name=xphy,proto3" json:"xphy,omitempty"` + Aap bool `protobuf:"varint,5,opt,name=aap,proto3" json:"aap,omitempty"` + Rf bool `protobuf:"varint,6,opt,name=rf,proto3" json:"rf,omitempty"` +} + +func (x *DishReadyStates) Reset() { + *x = DishReadyStates{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishReadyStates) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishReadyStates) ProtoMessage() {} + +func (x *DishReadyStates) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishReadyStates.ProtoReflect.Descriptor instead. +func (*DishReadyStates) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{10} +} + +func (x *DishReadyStates) GetCady() bool { + if x != nil { + return x.Cady + } + return false +} + +func (x *DishReadyStates) GetScp() bool { + if x != nil { + return x.Scp + } + return false +} + +func (x *DishReadyStates) GetL1L2() bool { + if x != nil { + return x.L1L2 + } + return false +} + +func (x *DishReadyStates) GetXphy() bool { + if x != nil { + return x.Xphy + } + return false +} + +func (x *DishReadyStates) GetAap() bool { + if x != nil { + return x.Aap + } + return false +} + +func (x *DishReadyStates) GetRf() bool { + if x != nil { + return x.Rf + } + return false +} + +type DishGpsStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GpsValid bool `protobuf:"varint,1,opt,name=gps_valid,json=gpsValid,proto3" json:"gps_valid,omitempty"` + GpsSats uint32 `protobuf:"varint,2,opt,name=gps_sats,json=gpsSats,proto3" json:"gps_sats,omitempty"` + NoSatsAfterTtff bool `protobuf:"varint,3,opt,name=no_sats_after_ttff,json=noSatsAfterTtff,proto3" json:"no_sats_after_ttff,omitempty"` +} + +func (x *DishGpsStats) Reset() { + *x = DishGpsStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGpsStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGpsStats) ProtoMessage() {} + +func (x *DishGpsStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishGpsStats.ProtoReflect.Descriptor instead. +func (*DishGpsStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{11} +} + +func (x *DishGpsStats) GetGpsValid() bool { + if x != nil { + return x.GpsValid + } + return false +} + +func (x *DishGpsStats) GetGpsSats() uint32 { + if x != nil { + return x.GpsSats + } + return 0 +} + +func (x *DishGpsStats) GetNoSatsAfterTtff() bool { + if x != nil { + return x.NoSatsAfterTtff + } + return false +} + +type DishObstructionStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CurrentlyObstructed bool `protobuf:"varint,5,opt,name=currently_obstructed,json=currentlyObstructed,proto3" json:"currently_obstructed,omitempty"` + FractionObstructed float32 `protobuf:"fixed32,1,opt,name=fraction_obstructed,json=fractionObstructed,proto3" json:"fraction_obstructed,omitempty"` + ValidS float32 `protobuf:"fixed32,4,opt,name=valid_s,json=validS,proto3" json:"valid_s,omitempty"` + AvgProlongedObstructionDurationS float32 `protobuf:"fixed32,6,opt,name=avg_prolonged_obstruction_duration_s,json=avgProlongedObstructionDurationS,proto3" json:"avg_prolonged_obstruction_duration_s,omitempty"` + AvgProlongedObstructionIntervalS float32 `protobuf:"fixed32,7,opt,name=avg_prolonged_obstruction_interval_s,json=avgProlongedObstructionIntervalS,proto3" json:"avg_prolonged_obstruction_interval_s,omitempty"` + AvgProlongedObstructionValid bool `protobuf:"varint,8,opt,name=avg_prolonged_obstruction_valid,json=avgProlongedObstructionValid,proto3" json:"avg_prolonged_obstruction_valid,omitempty"` +} + +func (x *DishObstructionStats) Reset() { + *x = DishObstructionStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishObstructionStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishObstructionStats) ProtoMessage() {} + +func (x *DishObstructionStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishObstructionStats.ProtoReflect.Descriptor instead. +func (*DishObstructionStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{12} +} + +func (x *DishObstructionStats) GetCurrentlyObstructed() bool { + if x != nil { + return x.CurrentlyObstructed + } + return false +} + +func (x *DishObstructionStats) GetFractionObstructed() float32 { + if x != nil { + return x.FractionObstructed + } + return 0 +} + +func (x *DishObstructionStats) GetValidS() float32 { + if x != nil { + return x.ValidS + } + return 0 +} + +func (x *DishObstructionStats) GetAvgProlongedObstructionDurationS() float32 { + if x != nil { + return x.AvgProlongedObstructionDurationS + } + return 0 +} + +func (x *DishObstructionStats) GetAvgProlongedObstructionIntervalS() float32 { + if x != nil { + return x.AvgProlongedObstructionIntervalS + } + return 0 +} + +func (x *DishObstructionStats) GetAvgProlongedObstructionValid() bool { + if x != nil { + return x.AvgProlongedObstructionValid + } + return false +} + +type DishAuthenticateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Dish *ChallengeResponse `protobuf:"bytes,2,opt,name=dish,proto3" json:"dish,omitempty"` +} + +func (x *DishAuthenticateResponse) Reset() { + *x = DishAuthenticateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishAuthenticateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishAuthenticateResponse) ProtoMessage() {} + +func (x *DishAuthenticateResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[13] + 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 DishAuthenticateResponse.ProtoReflect.Descriptor instead. +func (*DishAuthenticateResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{13} +} + +func (x *DishAuthenticateResponse) GetDish() *ChallengeResponse { + if x != nil { + return x.Dish + } + return nil +} + +type SelfTestRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Detailed bool `protobuf:"varint,1,opt,name=detailed,proto3" json:"detailed,omitempty"` +} + +func (x *SelfTestRequest) Reset() { + *x = SelfTestRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SelfTestRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelfTestRequest) ProtoMessage() {} + +func (x *SelfTestRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[14] + 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 SelfTestRequest.ProtoReflect.Descriptor instead. +func (*SelfTestRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{14} +} + +func (x *SelfTestRequest) GetDetailed() bool { + if x != nil { + return x.Detailed + } + return false +} + +type SelfTestResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Passed bool `protobuf:"varint,1,opt,name=passed,proto3" json:"passed,omitempty"` + Report string `protobuf:"bytes,2,opt,name=report,proto3" json:"report,omitempty"` +} + +func (x *SelfTestResponse) Reset() { + *x = SelfTestResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SelfTestResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelfTestResponse) ProtoMessage() {} + +func (x *SelfTestResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[15] + 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 SelfTestResponse.ProtoReflect.Descriptor instead. +func (*SelfTestResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{15} +} + +func (x *SelfTestResponse) GetPassed() bool { + if x != nil { + return x.Passed + } + return false +} + +func (x *SelfTestResponse) GetReport() string { + if x != nil { + return x.Report + } + return "" +} + +type StartDishSelfTestRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StartDishSelfTestRequest) Reset() { + *x = StartDishSelfTestRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartDishSelfTestRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartDishSelfTestRequest) ProtoMessage() {} + +func (x *StartDishSelfTestRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[16] + 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 StartDishSelfTestRequest.ProtoReflect.Descriptor instead. +func (*StartDishSelfTestRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{16} +} + +type StartDishSelfTestResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *StartDishSelfTestResponse) Reset() { + *x = StartDishSelfTestResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StartDishSelfTestResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StartDishSelfTestResponse) ProtoMessage() {} + +func (x *StartDishSelfTestResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[17] + 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 StartDishSelfTestResponse.ProtoReflect.Descriptor instead. +func (*StartDishSelfTestResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{17} +} + +type SetTestModeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + RfMode SetTestModeRequest_RfMode `protobuf:"varint,1,opt,name=rf_mode,json=rfMode,proto3,enum=SpaceX.API.Device.SetTestModeRequest_RfMode" json:"rf_mode,omitempty"` + DisableLossOfCommFdir bool `protobuf:"varint,1001,opt,name=disable_loss_of_comm_fdir,json=disableLossOfCommFdir,proto3" json:"disable_loss_of_comm_fdir,omitempty"` + EnableRulesOverride bool `protobuf:"varint,1002,opt,name=enable_rules_override,json=enableRulesOverride,proto3" json:"enable_rules_override,omitempty"` +} + +func (x *SetTestModeRequest) Reset() { + *x = SetTestModeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetTestModeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetTestModeRequest) ProtoMessage() {} + +func (x *SetTestModeRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[18] + 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 SetTestModeRequest.ProtoReflect.Descriptor instead. +func (*SetTestModeRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{18} +} + +func (x *SetTestModeRequest) GetRfMode() SetTestModeRequest_RfMode { + if x != nil { + return x.RfMode + } + return SetTestModeRequest_RX +} + +func (x *SetTestModeRequest) GetDisableLossOfCommFdir() bool { + if x != nil { + return x.DisableLossOfCommFdir + } + return false +} + +func (x *SetTestModeRequest) GetEnableRulesOverride() bool { + if x != nil { + return x.EnableRulesOverride + } + return false +} + +type SetTestModeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetTestModeResponse) Reset() { + *x = SetTestModeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetTestModeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetTestModeResponse) ProtoMessage() {} + +func (x *SetTestModeResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[19] + 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 SetTestModeResponse.ProtoReflect.Descriptor instead. +func (*SetTestModeResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{19} +} + +type DishSetConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DishConfig *DishConfig `protobuf:"bytes,1,opt,name=dish_config,json=dishConfig,proto3" json:"dish_config,omitempty"` +} + +func (x *DishSetConfigRequest) Reset() { + *x = DishSetConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishSetConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishSetConfigRequest) ProtoMessage() {} + +func (x *DishSetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[20] + 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 DishSetConfigRequest.ProtoReflect.Descriptor instead. +func (*DishSetConfigRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{20} +} + +func (x *DishSetConfigRequest) GetDishConfig() *DishConfig { + if x != nil { + return x.DishConfig + } + return nil +} + +type DishSetConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UpdatedDishConfig *DishConfig `protobuf:"bytes,1,opt,name=updated_dish_config,json=updatedDishConfig,proto3" json:"updated_dish_config,omitempty"` +} + +func (x *DishSetConfigResponse) Reset() { + *x = DishSetConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishSetConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishSetConfigResponse) ProtoMessage() {} + +func (x *DishSetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[21] + 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 DishSetConfigResponse.ProtoReflect.Descriptor instead. +func (*DishSetConfigResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{21} +} + +func (x *DishSetConfigResponse) GetUpdatedDishConfig() *DishConfig { + if x != nil { + return x.UpdatedDishConfig + } + return nil +} + +type DishGetConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DishGetConfigRequest) Reset() { + *x = DishGetConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetConfigRequest) ProtoMessage() {} + +func (x *DishGetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_proto_msgTypes[22] + 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 DishGetConfigRequest.ProtoReflect.Descriptor instead. +func (*DishGetConfigRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{22} +} + +type DishGetConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DishConfig *DishConfig `protobuf:"bytes,1,opt,name=dish_config,json=dishConfig,proto3" json:"dish_config,omitempty"` +} + +func (x *DishGetConfigResponse) Reset() { + *x = DishGetConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishGetConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishGetConfigResponse) ProtoMessage() {} + +func (x *DishGetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_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 DishGetConfigResponse.ProtoReflect.Descriptor instead. +func (*DishGetConfigResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{23} +} + +func (x *DishGetConfigResponse) GetDishConfig() *DishConfig { + if x != nil { + return x.DishConfig + } + return nil +} + +var File_spacex_api_device_dish_proto protoreflect.FileDescriptor + +var file_spacex_api_device_dish_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x29, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x74, 0x6f, 0x77, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x73, 0x74, 0x6f, 0x77, 0x22, 0x12, 0x0a, 0x10, 0x44, + 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x17, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x95, 0x08, 0x0a, 0x16, 0x44, 0x69, 0x73, + 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x62, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x62, 0x73, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, + 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x65, 0x6c, + 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x63, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6f, 0x70, 0x52, 0x61, 0x63, + 0x6b, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, + 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, + 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, + 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x5f, 0x62, 0x65, 0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x6e, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x42, 0x65, 0x61, 0x6d, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x54, + 0x6f, 0x53, 0x6c, 0x6f, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x62, 0x75, + 0x67, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x65, 0x62, 0x75, 0x67, + 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x12, 0x3b, 0x0a, 0x1b, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, + 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x31, 0x35, 0x73, 0x4d, 0x65, 0x61, 0x6e, 0x12, 0x3d, 0x0a, + 0x1c, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x5f, 0x6d, 0x73, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x17, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x31, 0x35, 0x73, 0x4d, 0x65, 0x61, 0x6e, 0x12, 0x3e, 0x0a, 0x1c, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1d, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x19, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, + 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x40, + 0x0a, 0x1d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x19, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, + 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, + 0x22, 0xef, 0x02, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, + 0x39, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x61, + 0x75, 0x73, 0x65, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x64, + 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x64, + 0x69, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x05, 0x43, 0x61, 0x75, + 0x73, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x53, 0x54, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x48, 0x45, 0x52, + 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x03, 0x12, 0x0f, + 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x10, 0x04, 0x12, + 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x53, 0x41, 0x54, 0x53, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, + 0x4f, 0x42, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, + 0x4e, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x07, 0x12, 0x0c, 0x0a, + 0x08, 0x4e, 0x4f, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x53, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x41, + 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, + 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x42, 0x4c, 0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, + 0x10, 0x0a, 0x22, 0xd8, 0x02, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x70, 0x5f, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xe9, 0x07, + 0x20, 0x03, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, + 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xea, 0x07, 0x20, + 0x03, 0x28, 0x02, 0x52, 0x10, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, + 0x18, 0xeb, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e, + 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x70, 0x73, 0x12, 0x33, + 0x0a, 0x15, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, 0x18, 0xec, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x13, + 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x42, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0xf1, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, + 0x74, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x73, 0x4a, 0x06, 0x08, + 0xed, 0x07, 0x10, 0xee, 0x07, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, 0x06, 0x08, + 0xef, 0x07, 0x10, 0xf0, 0x07, 0x4a, 0x06, 0x08, 0xf0, 0x07, 0x10, 0xf1, 0x07, 0x22, 0xe1, 0x0b, + 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, - 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, - 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x06, - 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x11, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0xe9, 0x07, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x65, 0x63, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x06, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xf6, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x67, 0x70, + 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x08, 0x67, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x54, 0x6f, 0x46, 0x69, 0x72, @@ -655,50 +2254,227 @@ var file_spacex_api_device_dish_proto_rawDesc = []byte 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x22, 0xb6, 0x01, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x73, 0x74, 0x75, 0x63, 0x6b, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x74, - 0x75, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, - 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, - 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x29, - 0x0a, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, - 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, - 0x6c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x65, - 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc6, 0x02, 0x0a, 0x14, 0x44, - 0x69, 0x73, 0x68, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, - 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x4f, 0x62, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x12, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x6c, 0x61, 0x73, 0x74, 0x5f, - 0x32, 0x34, 0x68, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x73, - 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x32, 0x34, 0x68, - 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x53, 0x12, 0x17, 0x0a, 0x07, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x53, 0x12, 0x3a, 0x0a, 0x19, 0x77, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, 0x52, 0x17, 0x77, 0x65, 0x64, 0x67, 0x65, 0x46, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, - 0x12, 0x41, 0x0a, 0x1d, 0x77, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x73, 0x5f, 0x66, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x1a, 0x77, 0x65, 0x64, 0x67, 0x65, 0x41, 0x62, - 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, + 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x77, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x62, 0x6f, 0x72, + 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x5f, 0x64, + 0x65, 0x67, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x62, 0x6f, 0x72, 0x65, 0x73, + 0x69, 0x67, 0x68, 0x74, 0x41, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x44, 0x65, 0x67, 0x12, 0x37, + 0x0a, 0x17, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x67, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x15, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x45, 0x6c, 0x65, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x5f, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0c, 0x65, 0x74, 0x68, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x4c, + 0x0a, 0x0e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0d, 0x6d, + 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x18, + 0x69, 0x73, 0x5f, 0x73, 0x6e, 0x72, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x69, + 0x73, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0xfa, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x69, 0x73, 0x53, 0x6e, 0x72, 0x41, 0x62, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, + 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x46, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0xfb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x44, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, + 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x18, 0xfc, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x5b, 0x0a, 0x15, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xfd, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x17, + 0x69, 0x73, 0x5f, 0x73, 0x6e, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x6c, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0xfe, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, + 0x69, 0x73, 0x53, 0x6e, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x6c, + 0x79, 0x4c, 0x6f, 0x77, 0x12, 0x45, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0xff, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x48, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0c, 0x68, + 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x64, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, + 0x80, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2e, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x55, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x4a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, + 0x07, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, 0x06, 0x08, 0xf5, 0x07, 0x10, 0xf6, + 0x07, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x67, 0x0a, 0x1d, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x19, 0x0a, + 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x22, 0xc2, 0x03, 0x0a, 0x0a, 0x44, + 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x74, + 0x6f, 0x72, 0x73, 0x5f, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x75, 0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, + 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, + 0x65, 0x61, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x73, 0x74, 0x4e, 0x6f, 0x74, 0x4e, 0x65, 0x61, 0x72, 0x56, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x65, 0x78, 0x70, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x77, + 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, + 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x6f, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, + 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, + 0x0a, 0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x1d, + 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x68, 0x65, + 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x1a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x22, + 0x81, 0x01, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x04, 0x63, 0x61, 0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x63, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x73, 0x63, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x31, 0x6c, + 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6c, 0x31, 0x6c, 0x32, 0x12, 0x12, 0x0a, + 0x04, 0x78, 0x70, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x78, 0x70, 0x68, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, + 0x61, 0x61, 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x72, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x02, 0x72, 0x66, 0x22, 0x73, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x68, 0x47, 0x70, 0x73, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x70, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x67, 0x70, 0x73, 0x5f, 0x73, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x67, 0x70, 0x73, 0x53, 0x61, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6e, + 0x6f, 0x5f, 0x73, 0x61, 0x74, 0x73, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x74, 0x66, + 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6e, 0x6f, 0x53, 0x61, 0x74, 0x73, 0x41, + 0x66, 0x74, 0x65, 0x72, 0x54, 0x74, 0x66, 0x66, 0x22, 0xc8, 0x03, 0x0a, 0x14, 0x44, 0x69, 0x73, + 0x68, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x73, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x6f, + 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x12, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x12, 0x4e, + 0x0a, 0x24, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, + 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x20, 0x61, 0x76, + 0x67, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x12, 0x4e, + 0x0a, 0x24, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, + 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x20, 0x61, 0x76, + 0x67, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x12, 0x45, + 0x0a, 0x1f, 0x61, 0x76, 0x67, 0x5f, 0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, + 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1c, 0x61, 0x76, 0x67, 0x50, 0x72, 0x6f, 0x6c, + 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, + 0x04, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x52, 0x19, 0x77, 0x65, 0x64, 0x67, 0x65, + 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x65, 0x64, 0x52, 0x1d, 0x77, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x73, 0x5f, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x22, 0x54, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x04, 0x64, 0x69, 0x73, 0x68, 0x2a, 0x43, 0x0a, 0x09, 0x44, 0x69, 0x73, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, - 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, - 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x42, 0x17, - 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x65, 0x52, 0x04, 0x64, 0x69, 0x73, 0x68, 0x22, 0x2d, 0x0a, 0x0f, 0x53, 0x65, 0x6c, + 0x66, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x66, + 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, + 0x73, 0x73, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x1a, 0x0a, 0x18, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8f, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54, 0x65, 0x73, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x07, + 0x72, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72, 0x66, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6c, + 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x5f, 0x66, 0x64, 0x69, 0x72, + 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4c, 0x6f, 0x73, 0x73, 0x4f, 0x66, 0x43, 0x6f, 0x6d, 0x6d, 0x46, 0x64, 0x69, 0x72, 0x12, 0x33, + 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x6f, + 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4f, 0x76, 0x65, 0x72, 0x72, + 0x69, 0x64, 0x65, 0x22, 0x42, 0x0a, 0x06, 0x52, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x06, 0x0a, + 0x02, 0x52, 0x58, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, + 0x06, 0x0a, 0x02, 0x54, 0x58, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x41, 0x4c, 0x10, 0x03, + 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x06, 0x4e, 0x4f, + 0x52, 0x4d, 0x41, 0x4c, 0x10, 0xa4, 0x03, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x54, 0x65, + 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, + 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x66, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4d, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x16, + 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2a, + 0x3c, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x41, + 0x52, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x4d, 0x41, 0x44, 0x49, 0x43, 0x10, + 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10, 0x02, 0x2a, 0xac, 0x01, + 0x0a, 0x13, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, + 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, + 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x45, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x02, + 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x03, 0x12, + 0x0b, 0x0a, 0x07, 0x57, 0x52, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, + 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, + 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, + 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, + 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x08, 0x2a, 0x7f, 0x0a, 0x12, + 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4f, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x53, + 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4f, 0x46, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x49, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, + 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x53, 0x49, 0x4e, 0x45, 0x53, 0x53, 0x5f, 0x50, 0x4c, + 0x55, 0x53, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x52, 0x43, 0x49, + 0x41, 0x4c, 0x5f, 0x41, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x2a, 0x56, 0x0a, + 0x0c, 0x48, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, + 0x15, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x41, 0x53, 0x5f, + 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, + 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x53, + 0x5f, 0x4e, 0x4f, 0x10, 0x02, 0x2a, 0x43, 0x0a, 0x09, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, + 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -713,33 +2489,73 @@ func file_spacex_api_device_dish_proto_rawDescGZIP() [ return file_spacex_api_device_dish_proto_rawDescData } -var file_spacex_api_device_dish_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spacex_api_device_dish_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_spacex_api_device_dish_proto_enumTypes = make([]protoimpl.EnumInfo, 7) +var file_spacex_api_device_dish_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_spacex_api_device_dish_proto_goTypes = []interface{}{ - (DishState)(0), // 0: SpaceX.API.Device.DishState - (*DishStowRequest)(nil), // 1: SpaceX.API.Device.DishStowRequest - (*DishStowResponse)(nil), // 2: SpaceX.API.Device.DishStowResponse - (*DishGetHistoryResponse)(nil), // 3: SpaceX.API.Device.DishGetHistoryResponse - (*DishGetStatusResponse)(nil), // 4: SpaceX.API.Device.DishGetStatusResponse - (*DishAlerts)(nil), // 5: SpaceX.API.Device.DishAlerts - (*DishObstructionStats)(nil), // 6: SpaceX.API.Device.DishObstructionStats - (*DishAuthenticateResponse)(nil), // 7: SpaceX.API.Device.DishAuthenticateResponse - (*DeviceInfo)(nil), // 8: SpaceX.API.Device.DeviceInfo - (*DeviceState)(nil), // 9: SpaceX.API.Device.DeviceState - (*ChallengeResponse)(nil), // 10: SpaceX.API.Device.ChallengeResponse + (UserMobilityClass)(0), // 0: SpaceX.API.Device.UserMobilityClass + (SoftwareUpdateState)(0), // 1: SpaceX.API.Device.SoftwareUpdateState + (UserClassOfService)(0), // 2: SpaceX.API.Device.UserClassOfService + (HasActuators)(0), // 3: SpaceX.API.Device.HasActuators + (DishState)(0), // 4: SpaceX.API.Device.DishState + (DishOutage_Cause)(0), // 5: SpaceX.API.Device.DishOutage.Cause + (SetTestModeRequest_RfMode)(0), // 6: SpaceX.API.Device.SetTestModeRequest.RfMode + (*DishStowRequest)(nil), // 7: SpaceX.API.Device.DishStowRequest + (*DishStowResponse)(nil), // 8: SpaceX.API.Device.DishStowResponse + (*DishGetContextRequest)(nil), // 9: SpaceX.API.Device.DishGetContextRequest + (*DishGetContextResponse)(nil), // 10: SpaceX.API.Device.DishGetContextResponse + (*DishOutage)(nil), // 11: SpaceX.API.Device.DishOutage + (*DishGetHistoryResponse)(nil), // 12: SpaceX.API.Device.DishGetHistoryResponse + (*DishGetStatusResponse)(nil), // 13: SpaceX.API.Device.DishGetStatusResponse + (*DishGetObstructionMapRequest)(nil), // 14: SpaceX.API.Device.DishGetObstructionMapRequest + (*DishGetObstructionMapResponse)(nil), // 15: SpaceX.API.Device.DishGetObstructionMapResponse + (*DishAlerts)(nil), // 16: SpaceX.API.Device.DishAlerts + (*DishReadyStates)(nil), // 17: SpaceX.API.Device.DishReadyStates + (*DishGpsStats)(nil), // 18: SpaceX.API.Device.DishGpsStats + (*DishObstructionStats)(nil), // 19: SpaceX.API.Device.DishObstructionStats + (*DishAuthenticateResponse)(nil), // 20: SpaceX.API.Device.DishAuthenticateResponse + (*SelfTestRequest)(nil), // 21: SpaceX.API.Device.SelfTestRequest + (*SelfTestResponse)(nil), // 22: SpaceX.API.Device.SelfTestResponse + (*StartDishSelfTestRequest)(nil), // 23: SpaceX.API.Device.StartDishSelfTestRequest + (*StartDishSelfTestResponse)(nil), // 24: SpaceX.API.Device.StartDishSelfTestResponse + (*SetTestModeRequest)(nil), // 25: SpaceX.API.Device.SetTestModeRequest + (*SetTestModeResponse)(nil), // 26: SpaceX.API.Device.SetTestModeResponse + (*DishSetConfigRequest)(nil), // 27: SpaceX.API.Device.DishSetConfigRequest + (*DishSetConfigResponse)(nil), // 28: SpaceX.API.Device.DishSetConfigResponse + (*DishGetConfigRequest)(nil), // 29: SpaceX.API.Device.DishGetConfigRequest + (*DishGetConfigResponse)(nil), // 30: SpaceX.API.Device.DishGetConfigResponse + (*DeviceInfo)(nil), // 31: SpaceX.API.Device.DeviceInfo + (*DeviceState)(nil), // 32: SpaceX.API.Device.DeviceState + (satellites.UtDisablementCode)(0), // 33: SpaceX.API.Satellites.Network.UtDisablementCode + (*ChallengeResponse)(nil), // 34: SpaceX.API.Device.ChallengeResponse + (*DishConfig)(nil), // 35: SpaceX.API.Device.DishConfig } var file_spacex_api_device_dish_proto_depIdxs = []int32{ - 8, // 0: SpaceX.API.Device.DishGetStatusResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo - 9, // 1: SpaceX.API.Device.DishGetStatusResponse.device_state:type_name -> SpaceX.API.Device.DeviceState - 0, // 2: SpaceX.API.Device.DishGetStatusResponse.state:type_name -> SpaceX.API.Device.DishState - 5, // 3: SpaceX.API.Device.DishGetStatusResponse.alerts:type_name -> SpaceX.API.Device.DishAlerts - 6, // 4: SpaceX.API.Device.DishGetStatusResponse.obstruction_stats:type_name -> SpaceX.API.Device.DishObstructionStats - 10, // 5: SpaceX.API.Device.DishAuthenticateResponse.dish:type_name -> SpaceX.API.Device.ChallengeResponse - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 31, // 0: SpaceX.API.Device.DishGetContextResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo + 32, // 1: SpaceX.API.Device.DishGetContextResponse.device_state:type_name -> SpaceX.API.Device.DeviceState + 5, // 2: SpaceX.API.Device.DishOutage.cause:type_name -> SpaceX.API.Device.DishOutage.Cause + 11, // 3: SpaceX.API.Device.DishGetHistoryResponse.outages:type_name -> SpaceX.API.Device.DishOutage + 31, // 4: SpaceX.API.Device.DishGetStatusResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo + 32, // 5: SpaceX.API.Device.DishGetStatusResponse.device_state:type_name -> SpaceX.API.Device.DeviceState + 16, // 6: SpaceX.API.Device.DishGetStatusResponse.alerts:type_name -> SpaceX.API.Device.DishAlerts + 11, // 7: SpaceX.API.Device.DishGetStatusResponse.outage:type_name -> SpaceX.API.Device.DishOutage + 18, // 8: SpaceX.API.Device.DishGetStatusResponse.gps_stats:type_name -> SpaceX.API.Device.DishGpsStats + 19, // 9: SpaceX.API.Device.DishGetStatusResponse.obstruction_stats:type_name -> SpaceX.API.Device.DishObstructionStats + 0, // 10: SpaceX.API.Device.DishGetStatusResponse.mobility_class:type_name -> SpaceX.API.Device.UserMobilityClass + 17, // 11: SpaceX.API.Device.DishGetStatusResponse.ready_states:type_name -> SpaceX.API.Device.DishReadyStates + 2, // 12: SpaceX.API.Device.DishGetStatusResponse.class_of_service:type_name -> SpaceX.API.Device.UserClassOfService + 1, // 13: SpaceX.API.Device.DishGetStatusResponse.software_update_state:type_name -> SpaceX.API.Device.SoftwareUpdateState + 3, // 14: SpaceX.API.Device.DishGetStatusResponse.has_actuators:type_name -> SpaceX.API.Device.HasActuators + 33, // 15: SpaceX.API.Device.DishGetStatusResponse.disablement_code:type_name -> SpaceX.API.Satellites.Network.UtDisablementCode + 34, // 16: SpaceX.API.Device.DishAuthenticateResponse.dish:type_name -> SpaceX.API.Device.ChallengeResponse + 6, // 17: SpaceX.API.Device.SetTestModeRequest.rf_mode:type_name -> SpaceX.API.Device.SetTestModeRequest.RfMode + 35, // 18: SpaceX.API.Device.DishSetConfigRequest.dish_config:type_name -> SpaceX.API.Device.DishConfig + 35, // 19: SpaceX.API.Device.DishSetConfigResponse.updated_dish_config:type_name -> SpaceX.API.Device.DishConfig + 35, // 20: SpaceX.API.Device.DishGetConfigResponse.dish_config:type_name -> SpaceX.API.Device.DishConfig + 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_spacex_api_device_dish_proto_init() } @@ -748,6 +2564,7 @@ func file_spacex_api_device_dish_proto_init() { return } file_spacex_api_device_common_proto_init() + file_spacex_api_device_dish_config_proto_init() if !protoimpl.UnsafeEnabled { file_spacex_api_device_dish_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DishStowRequest); i { @@ -774,7 +2591,7 @@ func file_spacex_api_device_dish_proto_init() { } } file_spacex_api_device_dish_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DishGetHistoryResponse); i { + switch v := v.(*DishGetContextRequest); i { case 0: return &v.state case 1: @@ -786,7 +2603,7 @@ func file_spacex_api_device_dish_proto_init() { } } file_spacex_api_device_dish_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DishGetStatusResponse); i { + switch v := v.(*DishGetContextResponse); i { case 0: return &v.state case 1: @@ -798,7 +2615,7 @@ func file_spacex_api_device_dish_proto_init() { } } file_spacex_api_device_dish_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DishAlerts); i { + switch v := v.(*DishOutage); i { case 0: return &v.state case 1: @@ -810,7 +2627,7 @@ func file_spacex_api_device_dish_proto_init() { } } file_spacex_api_device_dish_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DishObstructionStats); i { + switch v := v.(*DishGetHistoryResponse); i { case 0: return &v.state case 1: @@ -822,6 +2639,90 @@ func file_spacex_api_device_dish_proto_init() { } } file_spacex_api_device_dish_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetObstructionMapRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetObstructionMapResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishAlerts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishReadyStates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGpsStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishObstructionStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DishAuthenticateResponse); i { case 0: return &v.state @@ -833,14 +2734,134 @@ func file_spacex_api_device_dish_proto_init() { return nil } } + file_spacex_api_device_dish_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SelfTestRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SelfTestResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartDishSelfTestRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StartDishSelfTestResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTestModeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetTestModeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishSetConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishSetConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_dish_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishGetConfigResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_dish_proto_rawDesc, - NumEnums: 1, - NumMessages: 7, + NumEnums: 7, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, blob - ca19d45aaaada0254671421c2861689090cff33c blob + 670f69a0081f6f43302f8c94c101faa61f02445e --- device/transceiver.pb.go +++ device/transceiver.pb.go @@ -495,8 +495,325 @@ func (x *TransceiverFaults) GetDcVoltageFault() bool { return x.DcVoltageFault } return false +} + +type TransceiverGetTelemetryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *TransceiverGetTelemetryRequest) Reset() { + *x = TransceiverGetTelemetryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_transceiver_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransceiverGetTelemetryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransceiverGetTelemetryRequest) ProtoMessage() {} + +func (x *TransceiverGetTelemetryRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_transceiver_proto_msgTypes[5] + 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 TransceiverGetTelemetryRequest.ProtoReflect.Descriptor instead. +func (*TransceiverGetTelemetryRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_transceiver_proto_rawDescGZIP(), []int{5} +} + +type TransceiverGetTelemetryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AntennaPointingMode uint32 `protobuf:"varint,1001,opt,name=antenna_pointing_mode,json=antennaPointingMode,proto3" json:"antenna_pointing_mode,omitempty"` + AntennaPitch float32 `protobuf:"fixed32,1002,opt,name=antenna_pitch,json=antennaPitch,proto3" json:"antenna_pitch,omitempty"` + AntennaRoll float32 `protobuf:"fixed32,1003,opt,name=antenna_roll,json=antennaRoll,proto3" json:"antenna_roll,omitempty"` + AntennaRxTheta float32 `protobuf:"fixed32,1004,opt,name=antenna_rx_theta,json=antennaRxTheta,proto3" json:"antenna_rx_theta,omitempty"` + AntennaTrueHeading float32 `protobuf:"fixed32,1005,opt,name=antenna_true_heading,json=antennaTrueHeading,proto3" json:"antenna_true_heading,omitempty"` + RxChannel uint32 `protobuf:"varint,1006,opt,name=rx_channel,json=rxChannel,proto3" json:"rx_channel,omitempty"` + CurrentCellId uint32 `protobuf:"varint,1007,opt,name=current_cell_id,json=currentCellId,proto3" json:"current_cell_id,omitempty"` + SecondsUntilSlotEnd float32 `protobuf:"fixed32,1008,opt,name=seconds_until_slot_end,json=secondsUntilSlotEnd,proto3" json:"seconds_until_slot_end,omitempty"` + WbRssiPeakMagDb float32 `protobuf:"fixed32,1009,opt,name=wb_rssi_peak_mag_db,json=wbRssiPeakMagDb,proto3" json:"wb_rssi_peak_mag_db,omitempty"` + PopPingDropRate float32 `protobuf:"fixed32,1010,opt,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` + SnrDb float32 `protobuf:"fixed32,1011,opt,name=snr_db,json=snrDb,proto3" json:"snr_db,omitempty"` + L1SnrAvgDb float32 `protobuf:"fixed32,1012,opt,name=l1_snr_avg_db,json=l1SnrAvgDb,proto3" json:"l1_snr_avg_db,omitempty"` + L1SnrMinDb float32 `protobuf:"fixed32,1013,opt,name=l1_snr_min_db,json=l1SnrMinDb,proto3" json:"l1_snr_min_db,omitempty"` + L1SnrMaxDb float32 `protobuf:"fixed32,1014,opt,name=l1_snr_max_db,json=l1SnrMaxDb,proto3" json:"l1_snr_max_db,omitempty"` + LmacSatelliteId uint32 `protobuf:"varint,1015,opt,name=lmac_satellite_id,json=lmacSatelliteId,proto3" json:"lmac_satellite_id,omitempty"` + TargetSatelliteId uint32 `protobuf:"varint,1016,opt,name=target_satellite_id,json=targetSatelliteId,proto3" json:"target_satellite_id,omitempty"` + GrantMcs uint32 `protobuf:"varint,1017,opt,name=grant_mcs,json=grantMcs,proto3" json:"grant_mcs,omitempty"` + GrantSymbolsAvg float32 `protobuf:"fixed32,1018,opt,name=grant_symbols_avg,json=grantSymbolsAvg,proto3" json:"grant_symbols_avg,omitempty"` + DedGrant uint32 `protobuf:"varint,1019,opt,name=ded_grant,json=dedGrant,proto3" json:"ded_grant,omitempty"` + MobilityProactiveSlotChange uint32 `protobuf:"varint,1020,opt,name=mobility_proactive_slot_change,json=mobilityProactiveSlotChange,proto3" json:"mobility_proactive_slot_change,omitempty"` + MobilityReactiveSlotChange uint32 `protobuf:"varint,1021,opt,name=mobility_reactive_slot_change,json=mobilityReactiveSlotChange,proto3" json:"mobility_reactive_slot_change,omitempty"` + RfpTotalSynFailed uint32 `protobuf:"varint,1022,opt,name=rfp_total_syn_failed,json=rfpTotalSynFailed,proto3" json:"rfp_total_syn_failed,omitempty"` + NumOutOfSeq uint32 `protobuf:"varint,1023,opt,name=num_out_of_seq,json=numOutOfSeq,proto3" json:"num_out_of_seq,omitempty"` + NumUlmapDrop uint32 `protobuf:"varint,1024,opt,name=num_ulmap_drop,json=numUlmapDrop,proto3" json:"num_ulmap_drop,omitempty"` + CurrentSecondsOfSchedule float32 `protobuf:"fixed32,1025,opt,name=current_seconds_of_schedule,json=currentSecondsOfSchedule,proto3" json:"current_seconds_of_schedule,omitempty"` + SendLabelSwitchToGroundFailedCalls uint32 `protobuf:"varint,1026,opt,name=send_label_switch_to_ground_failed_calls,json=sendLabelSwitchToGroundFailedCalls,proto3" json:"send_label_switch_to_ground_failed_calls,omitempty"` + EmaVelocityX float64 `protobuf:"fixed64,1027,opt,name=ema_velocity_x,json=emaVelocityX,proto3" json:"ema_velocity_x,omitempty"` + EmaVelocityY float64 `protobuf:"fixed64,1028,opt,name=ema_velocity_y,json=emaVelocityY,proto3" json:"ema_velocity_y,omitempty"` + EmaVelocityZ float64 `protobuf:"fixed64,1029,opt,name=ema_velocity_z,json=emaVelocityZ,proto3" json:"ema_velocity_z,omitempty"` + CeRssiDb float32 `protobuf:"fixed32,1030,opt,name=ce_rssi_db,json=ceRssiDb,proto3" json:"ce_rssi_db,omitempty"` } +func (x *TransceiverGetTelemetryResponse) Reset() { + *x = TransceiverGetTelemetryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_transceiver_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransceiverGetTelemetryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransceiverGetTelemetryResponse) ProtoMessage() {} + +func (x *TransceiverGetTelemetryResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_transceiver_proto_msgTypes[6] + 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 TransceiverGetTelemetryResponse.ProtoReflect.Descriptor instead. +func (*TransceiverGetTelemetryResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_transceiver_proto_rawDescGZIP(), []int{6} +} + +func (x *TransceiverGetTelemetryResponse) GetAntennaPointingMode() uint32 { + if x != nil { + return x.AntennaPointingMode + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetAntennaPitch() float32 { + if x != nil { + return x.AntennaPitch + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetAntennaRoll() float32 { + if x != nil { + return x.AntennaRoll + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetAntennaRxTheta() float32 { + if x != nil { + return x.AntennaRxTheta + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetAntennaTrueHeading() float32 { + if x != nil { + return x.AntennaTrueHeading + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetRxChannel() uint32 { + if x != nil { + return x.RxChannel + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetCurrentCellId() uint32 { + if x != nil { + return x.CurrentCellId + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetSecondsUntilSlotEnd() float32 { + if x != nil { + return x.SecondsUntilSlotEnd + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetWbRssiPeakMagDb() float32 { + if x != nil { + return x.WbRssiPeakMagDb + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetPopPingDropRate() float32 { + if x != nil { + return x.PopPingDropRate + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetSnrDb() float32 { + if x != nil { + return x.SnrDb + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetL1SnrAvgDb() float32 { + if x != nil { + return x.L1SnrAvgDb + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetL1SnrMinDb() float32 { + if x != nil { + return x.L1SnrMinDb + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetL1SnrMaxDb() float32 { + if x != nil { + return x.L1SnrMaxDb + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetLmacSatelliteId() uint32 { + if x != nil { + return x.LmacSatelliteId + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetTargetSatelliteId() uint32 { + if x != nil { + return x.TargetSatelliteId + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetGrantMcs() uint32 { + if x != nil { + return x.GrantMcs + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetGrantSymbolsAvg() float32 { + if x != nil { + return x.GrantSymbolsAvg + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetDedGrant() uint32 { + if x != nil { + return x.DedGrant + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetMobilityProactiveSlotChange() uint32 { + if x != nil { + return x.MobilityProactiveSlotChange + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetMobilityReactiveSlotChange() uint32 { + if x != nil { + return x.MobilityReactiveSlotChange + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetRfpTotalSynFailed() uint32 { + if x != nil { + return x.RfpTotalSynFailed + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetNumOutOfSeq() uint32 { + if x != nil { + return x.NumOutOfSeq + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetNumUlmapDrop() uint32 { + if x != nil { + return x.NumUlmapDrop + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetCurrentSecondsOfSchedule() float32 { + if x != nil { + return x.CurrentSecondsOfSchedule + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetSendLabelSwitchToGroundFailedCalls() uint32 { + if x != nil { + return x.SendLabelSwitchToGroundFailedCalls + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetEmaVelocityX() float64 { + if x != nil { + return x.EmaVelocityX + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetEmaVelocityY() float64 { + if x != nil { + return x.EmaVelocityY + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetEmaVelocityZ() float64 { + if x != nil { + return x.EmaVelocityZ + } + return 0 +} + +func (x *TransceiverGetTelemetryResponse) GetCeRssiDb() float32 { + if x != nil { + return x.CeRssiDb + } + return 0 +} + var File_spacex_api_device_transceiver_proto protoreflect.FileDescriptor var file_spacex_api_device_transceiver_proto_rawDesc = []byte{ @@ -576,25 +893,113 @@ var file_spacex_api_device_transceiver_proto_rawDesc = 0x72, 0x54, 0x65, 0x6d, 0x70, 0x50, 0x63, 0x62, 0x61, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x64, 0x63, 0x5f, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x64, 0x63, 0x56, 0x6f, 0x6c, 0x74, - 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x2a, 0x5e, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x53, 0x54, 0x41, 0x54, - 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4d, - 0x4f, 0x44, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x44, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, - 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, - 0x45, 0x44, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x44, 0x49, 0x53, - 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x53, 0x0a, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x6c, - 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, - 0x42, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, - 0x42, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, - 0x42, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x17, 0x5a, 0x15, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x67, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x22, 0x20, 0x0a, 0x1e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, + 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd9, 0x0a, 0x0a, 0x1f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, + 0x0a, 0x15, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, + 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x70, + 0x69, 0x74, 0x63, 0x68, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x6e, 0x74, + 0x65, 0x6e, 0x6e, 0x61, 0x50, 0x69, 0x74, 0x63, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x6e, 0x74, + 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0b, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x52, 0x6f, 0x6c, 0x6c, 0x12, 0x29, 0x0a, + 0x10, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x5f, 0x72, 0x78, 0x5f, 0x74, 0x68, 0x65, 0x74, + 0x61, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, + 0x61, 0x52, 0x78, 0x54, 0x68, 0x65, 0x74, 0x61, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x6e, 0x74, 0x65, + 0x6e, 0x6e, 0x61, 0x5f, 0x74, 0x72, 0x75, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, + 0x54, 0x72, 0x75, 0x65, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x72, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0xef, + 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x65, + 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, + 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0xf0, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x55, 0x6e, + 0x74, 0x69, 0x6c, 0x53, 0x6c, 0x6f, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x2d, 0x0a, 0x13, 0x77, 0x62, + 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x6d, 0x61, 0x67, 0x5f, 0x64, + 0x62, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x77, 0x62, 0x52, 0x73, 0x73, 0x69, + 0x50, 0x65, 0x61, 0x6b, 0x4d, 0x61, 0x67, 0x44, 0x62, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x70, + 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0xf2, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, + 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6e, 0x72, 0x5f, 0x64, + 0x62, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x6e, 0x72, 0x44, 0x62, 0x12, + 0x22, 0x0a, 0x0d, 0x6c, 0x31, 0x5f, 0x73, 0x6e, 0x72, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x64, 0x62, + 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x6c, 0x31, 0x53, 0x6e, 0x72, 0x41, 0x76, + 0x67, 0x44, 0x62, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x31, 0x5f, 0x73, 0x6e, 0x72, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x64, 0x62, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x6c, 0x31, 0x53, + 0x6e, 0x72, 0x4d, 0x69, 0x6e, 0x44, 0x62, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x31, 0x5f, 0x73, 0x6e, + 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x62, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x6c, 0x31, 0x53, 0x6e, 0x72, 0x4d, 0x61, 0x78, 0x44, 0x62, 0x12, 0x2b, 0x0a, 0x11, 0x6c, + 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x6c, 0x6d, 0x61, 0x63, 0x53, 0x61, 0x74, + 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0xf8, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x61, + 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5f, 0x6d, 0x63, 0x73, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x4d, 0x63, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xfa, 0x07, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0f, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x73, 0x41, 0x76, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x64, 0x5f, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x18, 0xfb, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x65, 0x64, 0x47, 0x72, 0x61, + 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x1e, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x70, + 0x72, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x67, 0x65, 0x18, 0xfc, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1b, 0x6d, 0x6f, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x50, 0x72, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x53, 0x6c, + 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x1d, 0x6d, 0x6f, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x6c, + 0x6f, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0xfd, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x1a, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x53, 0x6c, 0x6f, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, + 0x72, 0x66, 0x70, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x18, 0xfe, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x72, 0x66, 0x70, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x79, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x24, + 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x65, 0x71, + 0x18, 0xff, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6e, 0x75, 0x6d, 0x4f, 0x75, 0x74, 0x4f, + 0x66, 0x53, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x6c, 0x6d, 0x61, + 0x70, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x80, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x6e, + 0x75, 0x6d, 0x55, 0x6c, 0x6d, 0x61, 0x70, 0x44, 0x72, 0x6f, 0x70, 0x12, 0x3e, 0x0a, 0x1b, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x6f, + 0x66, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x81, 0x08, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x18, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x4f, 0x66, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x28, 0x73, + 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, + 0x5f, 0x74, 0x6f, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x73, 0x18, 0x82, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x22, + 0x73, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x54, + 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x61, 0x6c, + 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, + 0x74, 0x79, 0x5f, 0x78, 0x18, 0x83, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x65, 0x6d, 0x61, + 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x58, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x61, + 0x5f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x79, 0x18, 0x84, 0x08, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x59, + 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6d, 0x61, 0x5f, 0x76, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, + 0x5f, 0x7a, 0x18, 0x85, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x56, 0x65, + 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x5a, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x65, 0x5f, 0x72, 0x73, + 0x73, 0x69, 0x5f, 0x64, 0x62, 0x18, 0x86, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x63, 0x65, + 0x52, 0x73, 0x73, 0x69, 0x44, 0x62, 0x2a, 0x5e, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x15, 0x0a, 0x11, 0x4d, 0x4f, 0x44, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x4d, 0x0a, 0x14, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x72, 0x54, 0x78, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, + 0x0a, 0x0c, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x58, 0x52, 0x58, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, + 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x53, 0x0a, 0x20, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x6c, 0x61, 0x6e, + 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x42, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x42, 0x5f, + 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x42, 0x5f, + 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -610,7 +1015,7 @@ func file_spacex_api_device_transceiver_proto_rawDescG } var file_spacex_api_device_transceiver_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_spacex_api_device_transceiver_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_spacex_api_device_transceiver_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_spacex_api_device_transceiver_proto_goTypes = []interface{}{ (TransceiverModulatorState)(0), // 0: SpaceX.API.Device.TransceiverModulatorState (TransceiverTxRxState)(0), // 1: SpaceX.API.Device.TransceiverTxRxState @@ -620,21 +1025,23 @@ var file_spacex_api_device_transceiver_proto_goTypes = (*TransceiverGetStatusRequest)(nil), // 5: SpaceX.API.Device.TransceiverGetStatusRequest (*TransceiverGetStatusResponse)(nil), // 6: SpaceX.API.Device.TransceiverGetStatusResponse (*TransceiverFaults)(nil), // 7: SpaceX.API.Device.TransceiverFaults - (DishState)(0), // 8: SpaceX.API.Device.DishState + (*TransceiverGetTelemetryRequest)(nil), // 8: SpaceX.API.Device.TransceiverGetTelemetryRequest + (*TransceiverGetTelemetryResponse)(nil), // 9: SpaceX.API.Device.TransceiverGetTelemetryResponse + (DishState)(0), // 10: SpaceX.API.Device.DishState } var file_spacex_api_device_transceiver_proto_depIdxs = []int32{ - 0, // 0: SpaceX.API.Device.TransceiverGetStatusResponse.mod_state:type_name -> SpaceX.API.Device.TransceiverModulatorState - 0, // 1: SpaceX.API.Device.TransceiverGetStatusResponse.demod_state:type_name -> SpaceX.API.Device.TransceiverModulatorState - 1, // 2: SpaceX.API.Device.TransceiverGetStatusResponse.tx_state:type_name -> SpaceX.API.Device.TransceiverTxRxState - 1, // 3: SpaceX.API.Device.TransceiverGetStatusResponse.rx_state:type_name -> SpaceX.API.Device.TransceiverTxRxState - 8, // 4: SpaceX.API.Device.TransceiverGetStatusResponse.state:type_name -> SpaceX.API.Device.DishState - 7, // 5: SpaceX.API.Device.TransceiverGetStatusResponse.faults:type_name -> SpaceX.API.Device.TransceiverFaults - 2, // 6: SpaceX.API.Device.TransceiverGetStatusResponse.transmit_blanking_state:type_name -> SpaceX.API.Device.TransceiverTransmitBlankingState - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 0, // 0: SpaceX.API.Device.TransceiverGetStatusResponse.mod_state:type_name -> SpaceX.API.Device.TransceiverModulatorState + 0, // 1: SpaceX.API.Device.TransceiverGetStatusResponse.demod_state:type_name -> SpaceX.API.Device.TransceiverModulatorState + 1, // 2: SpaceX.API.Device.TransceiverGetStatusResponse.tx_state:type_name -> SpaceX.API.Device.TransceiverTxRxState + 1, // 3: SpaceX.API.Device.TransceiverGetStatusResponse.rx_state:type_name -> SpaceX.API.Device.TransceiverTxRxState + 10, // 4: SpaceX.API.Device.TransceiverGetStatusResponse.state:type_name -> SpaceX.API.Device.DishState + 7, // 5: SpaceX.API.Device.TransceiverGetStatusResponse.faults:type_name -> SpaceX.API.Device.TransceiverFaults + 2, // 6: SpaceX.API.Device.TransceiverGetStatusResponse.transmit_blanking_state:type_name -> SpaceX.API.Device.TransceiverTransmitBlankingState + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_spacex_api_device_transceiver_proto_init() } @@ -705,6 +1112,30 @@ func file_spacex_api_device_transceiver_proto_init() { return nil } } + file_spacex_api_device_transceiver_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransceiverGetTelemetryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_transceiver_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransceiverGetTelemetryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -712,7 +1143,7 @@ func file_spacex_api_device_transceiver_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_transceiver_proto_rawDesc, NumEnums: 3, - NumMessages: 5, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, blob - /dev/null blob + c21311d26cc6627cd5275bef417e3abb966d041d (mode 644) --- /dev/null +++ device/dish_config.pb.go @@ -0,0 +1,369 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.6 +// source: spacex/api/device/dish_config.proto + +package device + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DishConfig_SnowMeltMode int32 + +const ( + DishConfig_AUTO DishConfig_SnowMeltMode = 0 + DishConfig_ALWAYS_ON DishConfig_SnowMeltMode = 1 + DishConfig_ALWAYS_OFF DishConfig_SnowMeltMode = 2 +) + +// Enum value maps for DishConfig_SnowMeltMode. +var ( + DishConfig_SnowMeltMode_name = map[int32]string{ + 0: "AUTO", + 1: "ALWAYS_ON", + 2: "ALWAYS_OFF", + } + DishConfig_SnowMeltMode_value = map[string]int32{ + "AUTO": 0, + "ALWAYS_ON": 1, + "ALWAYS_OFF": 2, + } +) + +func (x DishConfig_SnowMeltMode) Enum() *DishConfig_SnowMeltMode { + p := new(DishConfig_SnowMeltMode) + *p = x + return p +} + +func (x DishConfig_SnowMeltMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DishConfig_SnowMeltMode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_config_proto_enumTypes[0].Descriptor() +} + +func (DishConfig_SnowMeltMode) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_config_proto_enumTypes[0] +} + +func (x DishConfig_SnowMeltMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DishConfig_SnowMeltMode.Descriptor instead. +func (DishConfig_SnowMeltMode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_config_proto_rawDescGZIP(), []int{0, 0} +} + +type DishConfig_LocationRequestMode int32 + +const ( + DishConfig_NONE DishConfig_LocationRequestMode = 0 + DishConfig_LOCAL DishConfig_LocationRequestMode = 1 +) + +// Enum value maps for DishConfig_LocationRequestMode. +var ( + DishConfig_LocationRequestMode_name = map[int32]string{ + 0: "NONE", + 1: "LOCAL", + } + DishConfig_LocationRequestMode_value = map[string]int32{ + "NONE": 0, + "LOCAL": 1, + } +) + +func (x DishConfig_LocationRequestMode) Enum() *DishConfig_LocationRequestMode { + p := new(DishConfig_LocationRequestMode) + *p = x + return p +} + +func (x DishConfig_LocationRequestMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DishConfig_LocationRequestMode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_config_proto_enumTypes[1].Descriptor() +} + +func (DishConfig_LocationRequestMode) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_config_proto_enumTypes[1] +} + +func (x DishConfig_LocationRequestMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DishConfig_LocationRequestMode.Descriptor instead. +func (DishConfig_LocationRequestMode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_config_proto_rawDescGZIP(), []int{0, 1} +} + +type DishConfig_LevelDishMode int32 + +const ( + DishConfig_TILT_LIKE_NORMAL DishConfig_LevelDishMode = 0 + DishConfig_FORCE_LEVEL DishConfig_LevelDishMode = 1 +) + +// Enum value maps for DishConfig_LevelDishMode. +var ( + DishConfig_LevelDishMode_name = map[int32]string{ + 0: "TILT_LIKE_NORMAL", + 1: "FORCE_LEVEL", + } + DishConfig_LevelDishMode_value = map[string]int32{ + "TILT_LIKE_NORMAL": 0, + "FORCE_LEVEL": 1, + } +) + +func (x DishConfig_LevelDishMode) Enum() *DishConfig_LevelDishMode { + p := new(DishConfig_LevelDishMode) + *p = x + return p +} + +func (x DishConfig_LevelDishMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DishConfig_LevelDishMode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_dish_config_proto_enumTypes[2].Descriptor() +} + +func (DishConfig_LevelDishMode) Type() protoreflect.EnumType { + return &file_spacex_api_device_dish_config_proto_enumTypes[2] +} + +func (x DishConfig_LevelDishMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DishConfig_LevelDishMode.Descriptor instead. +func (DishConfig_LevelDishMode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_dish_config_proto_rawDescGZIP(), []int{0, 2} +} + +type DishConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SnowMeltMode DishConfig_SnowMeltMode `protobuf:"varint,1,opt,name=snow_melt_mode,json=snowMeltMode,proto3,enum=SpaceX.API.Device.DishConfig_SnowMeltMode" json:"snow_melt_mode,omitempty"` + ApplySnowMeltMode bool `protobuf:"varint,1001,opt,name=apply_snow_melt_mode,json=applySnowMeltMode,proto3" json:"apply_snow_melt_mode,omitempty"` + LocationRequestMode DishConfig_LocationRequestMode `protobuf:"varint,2,opt,name=location_request_mode,json=locationRequestMode,proto3,enum=SpaceX.API.Device.DishConfig_LocationRequestMode" json:"location_request_mode,omitempty"` + ApplyLocationRequestMode bool `protobuf:"varint,2001,opt,name=apply_location_request_mode,json=applyLocationRequestMode,proto3" json:"apply_location_request_mode,omitempty"` + LevelDishMode DishConfig_LevelDishMode `protobuf:"varint,3,opt,name=level_dish_mode,json=levelDishMode,proto3,enum=SpaceX.API.Device.DishConfig_LevelDishMode" json:"level_dish_mode,omitempty"` + ApplyLevelDishMode bool `protobuf:"varint,3001,opt,name=apply_level_dish_mode,json=applyLevelDishMode,proto3" json:"apply_level_dish_mode,omitempty"` +} + +func (x *DishConfig) Reset() { + *x = DishConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_dish_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DishConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DishConfig) ProtoMessage() {} + +func (x *DishConfig) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_dish_config_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DishConfig.ProtoReflect.Descriptor instead. +func (*DishConfig) Descriptor() ([]byte, []int) { + return file_spacex_api_device_dish_config_proto_rawDescGZIP(), []int{0} +} + +func (x *DishConfig) GetSnowMeltMode() DishConfig_SnowMeltMode { + if x != nil { + return x.SnowMeltMode + } + return DishConfig_AUTO +} + +func (x *DishConfig) GetApplySnowMeltMode() bool { + if x != nil { + return x.ApplySnowMeltMode + } + return false +} + +func (x *DishConfig) GetLocationRequestMode() DishConfig_LocationRequestMode { + if x != nil { + return x.LocationRequestMode + } + return DishConfig_NONE +} + +func (x *DishConfig) GetApplyLocationRequestMode() bool { + if x != nil { + return x.ApplyLocationRequestMode + } + return false +} + +func (x *DishConfig) GetLevelDishMode() DishConfig_LevelDishMode { + if x != nil { + return x.LevelDishMode + } + return DishConfig_TILT_LIKE_NORMAL +} + +func (x *DishConfig) GetApplyLevelDishMode() bool { + if x != nil { + return x.ApplyLevelDishMode + } + return false +} + +var File_spacex_api_device_dish_config_proto protoreflect.FileDescriptor + +var file_spacex_api_device_dish_config_proto_rawDesc = []byte{ + 0x0a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xdd, 0x04, 0x0a, 0x0a, 0x44, 0x69, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x6e, 0x6f, 0x77, 0x5f, + 0x6d, 0x65, 0x6c, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, + 0x6e, 0x6f, 0x77, 0x4d, 0x65, 0x6c, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0c, 0x73, 0x6e, 0x6f, + 0x77, 0x4d, 0x65, 0x6c, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x5f, 0x73, 0x6e, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x6c, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x53, + 0x6e, 0x6f, 0x77, 0x4d, 0x65, 0x6c, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x65, 0x0a, 0x15, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, + 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x13, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x1b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0xd1, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x53, 0x0a, 0x0f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x68, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x44, 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x44, + 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x37, 0x0a, 0x0c, 0x53, + 0x6e, 0x6f, 0x77, 0x4d, 0x65, 0x6c, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x41, + 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, + 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x41, 0x4c, 0x57, 0x41, 0x59, 0x53, 0x5f, 0x4f, + 0x46, 0x46, 0x10, 0x02, 0x22, 0x2a, 0x0a, 0x13, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x10, 0x01, + 0x22, 0x36, 0x0a, 0x0d, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x68, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x4c, 0x54, 0x5f, 0x4c, 0x49, 0x4b, 0x45, 0x5f, 0x4e, + 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x4f, 0x52, 0x43, 0x45, + 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x01, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spacex_api_device_dish_config_proto_rawDescOnce sync.Once + file_spacex_api_device_dish_config_proto_rawDescData = file_spacex_api_device_dish_config_proto_rawDesc +) + +func file_spacex_api_device_dish_config_proto_rawDescGZIP() []byte { + file_spacex_api_device_dish_config_proto_rawDescOnce.Do(func() { + file_spacex_api_device_dish_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_spacex_api_device_dish_config_proto_rawDescData) + }) + return file_spacex_api_device_dish_config_proto_rawDescData +} + +var file_spacex_api_device_dish_config_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_spacex_api_device_dish_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_spacex_api_device_dish_config_proto_goTypes = []interface{}{ + (DishConfig_SnowMeltMode)(0), // 0: SpaceX.API.Device.DishConfig.SnowMeltMode + (DishConfig_LocationRequestMode)(0), // 1: SpaceX.API.Device.DishConfig.LocationRequestMode + (DishConfig_LevelDishMode)(0), // 2: SpaceX.API.Device.DishConfig.LevelDishMode + (*DishConfig)(nil), // 3: SpaceX.API.Device.DishConfig +} +var file_spacex_api_device_dish_config_proto_depIdxs = []int32{ + 0, // 0: SpaceX.API.Device.DishConfig.snow_melt_mode:type_name -> SpaceX.API.Device.DishConfig.SnowMeltMode + 1, // 1: SpaceX.API.Device.DishConfig.location_request_mode:type_name -> SpaceX.API.Device.DishConfig.LocationRequestMode + 2, // 2: SpaceX.API.Device.DishConfig.level_dish_mode:type_name -> SpaceX.API.Device.DishConfig.LevelDishMode + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_spacex_api_device_dish_config_proto_init() } +func file_spacex_api_device_dish_config_proto_init() { + if File_spacex_api_device_dish_config_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_spacex_api_device_dish_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DishConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spacex_api_device_dish_config_proto_rawDesc, + NumEnums: 3, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spacex_api_device_dish_config_proto_goTypes, + DependencyIndexes: file_spacex_api_device_dish_config_proto_depIdxs, + EnumInfos: file_spacex_api_device_dish_config_proto_enumTypes, + MessageInfos: file_spacex_api_device_dish_config_proto_msgTypes, + }.Build() + File_spacex_api_device_dish_config_proto = out.File + file_spacex_api_device_dish_config_proto_rawDesc = nil + file_spacex_api_device_dish_config_proto_goTypes = nil + file_spacex_api_device_dish_config_proto_depIdxs = nil +} blob - c1bc22e5cc29d7bde4a7f59ab0af05015b5b844a blob + 8e7ea5a08838c6ba1afc8dbe5a0496808a6e3d07 --- device/wifi.pb.go +++ device/wifi.pb.go @@ -9,6 +9,8 @@ package device import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + telemetron "olowe.co/dishy/telemetron" reflect "reflect" sync "sync" ) @@ -20,6 +22,58 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type WifiGetClientHistoryResponse_WifiLimitedReason int32 + +const ( + WifiGetClientHistoryResponse_LIMIT_UNKNOWN WifiGetClientHistoryResponse_WifiLimitedReason = 0 + WifiGetClientHistoryResponse_LIMIT_NONE WifiGetClientHistoryResponse_WifiLimitedReason = 1 + WifiGetClientHistoryResponse_LIMIT_UNCLASSIFIED WifiGetClientHistoryResponse_WifiLimitedReason = 2 + WifiGetClientHistoryResponse_LIMIT_DROPPED_PACKETS WifiGetClientHistoryResponse_WifiLimitedReason = 3 +) + +// Enum value maps for WifiGetClientHistoryResponse_WifiLimitedReason. +var ( + WifiGetClientHistoryResponse_WifiLimitedReason_name = map[int32]string{ + 0: "LIMIT_UNKNOWN", + 1: "LIMIT_NONE", + 2: "LIMIT_UNCLASSIFIED", + 3: "LIMIT_DROPPED_PACKETS", + } + WifiGetClientHistoryResponse_WifiLimitedReason_value = map[string]int32{ + "LIMIT_UNKNOWN": 0, + "LIMIT_NONE": 1, + "LIMIT_UNCLASSIFIED": 2, + "LIMIT_DROPPED_PACKETS": 3, + } +) + +func (x WifiGetClientHistoryResponse_WifiLimitedReason) Enum() *WifiGetClientHistoryResponse_WifiLimitedReason { + p := new(WifiGetClientHistoryResponse_WifiLimitedReason) + *p = x + return p +} + +func (x WifiGetClientHistoryResponse_WifiLimitedReason) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiGetClientHistoryResponse_WifiLimitedReason) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_proto_enumTypes[0].Descriptor() +} + +func (WifiGetClientHistoryResponse_WifiLimitedReason) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_proto_enumTypes[0] +} + +func (x WifiGetClientHistoryResponse_WifiLimitedReason) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiGetClientHistoryResponse_WifiLimitedReason.Descriptor instead. +func (WifiGetClientHistoryResponse_WifiLimitedReason) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{15, 0} +} + type WifiClient_Interface int32 const ( @@ -56,11 +110,11 @@ func (x WifiClient_Interface) String() string { } func (WifiClient_Interface) Descriptor() protoreflect.EnumDescriptor { - return file_spacex_api_device_wifi_proto_enumTypes[0].Descriptor() + return file_spacex_api_device_wifi_proto_enumTypes[1].Descriptor() } func (WifiClient_Interface) Type() protoreflect.EnumType { - return &file_spacex_api_device_wifi_proto_enumTypes[0] + return &file_spacex_api_device_wifi_proto_enumTypes[1] } func (x WifiClient_Interface) Number() protoreflect.EnumNumber { @@ -69,19 +123,169 @@ func (x WifiClient_Interface) Number() protoreflect.En // Deprecated: Use WifiClient_Interface.Descriptor instead. func (WifiClient_Interface) EnumDescriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{6, 0} + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{18, 0} } -type WifiSetConfigRequest struct { +type WifiClient_Role int32 + +const ( + WifiClient_ROLE_UNKNOWN WifiClient_Role = 0 + WifiClient_CLIENT WifiClient_Role = 1 + WifiClient_REPEATER WifiClient_Role = 2 + WifiClient_CONTROLLER WifiClient_Role = 3 +) + +// Enum value maps for WifiClient_Role. +var ( + WifiClient_Role_name = map[int32]string{ + 0: "ROLE_UNKNOWN", + 1: "CLIENT", + 2: "REPEATER", + 3: "CONTROLLER", + } + WifiClient_Role_value = map[string]int32{ + "ROLE_UNKNOWN": 0, + "CLIENT": 1, + "REPEATER": 2, + "CONTROLLER": 3, + } +) + +func (x WifiClient_Role) Enum() *WifiClient_Role { + p := new(WifiClient_Role) + *p = x + return p +} + +func (x WifiClient_Role) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiClient_Role) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_proto_enumTypes[2].Descriptor() +} + +func (WifiClient_Role) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_proto_enumTypes[2] +} + +func (x WifiClient_Role) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiClient_Role.Descriptor instead. +func (WifiClient_Role) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{18, 1} +} + +type WifiScanResults_Network_Source int32 + +const ( + WifiScanResults_Network_UNKNOWN WifiScanResults_Network_Source = 0 + WifiScanResults_Network_SCAN_2_4GHZ WifiScanResults_Network_Source = 1 + WifiScanResults_Network_SCAN_5GHZ WifiScanResults_Network_Source = 2 +) + +// Enum value maps for WifiScanResults_Network_Source. +var ( + WifiScanResults_Network_Source_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SCAN_2_4GHZ", + 2: "SCAN_5GHZ", + } + WifiScanResults_Network_Source_value = map[string]int32{ + "UNKNOWN": 0, + "SCAN_2_4GHZ": 1, + "SCAN_5GHZ": 2, + } +) + +func (x WifiScanResults_Network_Source) Enum() *WifiScanResults_Network_Source { + p := new(WifiScanResults_Network_Source) + *p = x + return p +} + +func (x WifiScanResults_Network_Source) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiScanResults_Network_Source) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_proto_enumTypes[3].Descriptor() +} + +func (WifiScanResults_Network_Source) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_proto_enumTypes[3] +} + +func (x WifiScanResults_Network_Source) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiScanResults_Network_Source.Descriptor instead. +func (WifiScanResults_Network_Source) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{33, 0, 0} +} + +type WifiNetwork_Band int32 + +const ( + WifiNetwork_WIFI_UNKNOWN WifiNetwork_Band = 0 + WifiNetwork_WIFI_2_4GHZ WifiNetwork_Band = 1 + WifiNetwork_WIFI_5GHZ WifiNetwork_Band = 2 +) + +// Enum value maps for WifiNetwork_Band. +var ( + WifiNetwork_Band_name = map[int32]string{ + 0: "WIFI_UNKNOWN", + 1: "WIFI_2_4GHZ", + 2: "WIFI_5GHZ", + } + WifiNetwork_Band_value = map[string]int32{ + "WIFI_UNKNOWN": 0, + "WIFI_2_4GHZ": 1, + "WIFI_5GHZ": 2, + } +) + +func (x WifiNetwork_Band) Enum() *WifiNetwork_Band { + p := new(WifiNetwork_Band) + *p = x + return p +} + +func (x WifiNetwork_Band) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiNetwork_Band) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_proto_enumTypes[4].Descriptor() +} + +func (WifiNetwork_Band) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_proto_enumTypes[4] +} + +func (x WifiNetwork_Band) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiNetwork_Band.Descriptor instead. +func (WifiNetwork_Band) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{34, 0} +} + +type WifiClients struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - WifiConfig *WifiConfig `protobuf:"bytes,1,opt,name=wifi_config,json=wifiConfig,proto3" json:"wifi_config,omitempty"` + Clients []*WifiClient `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` } -func (x *WifiSetConfigRequest) Reset() { - *x = WifiSetConfigRequest{} +func (x *WifiClients) Reset() { + *x = WifiClients{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -89,13 +293,13 @@ func (x *WifiSetConfigRequest) Reset() { } } -func (x *WifiSetConfigRequest) String() string { +func (x *WifiClients) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiSetConfigRequest) ProtoMessage() {} +func (*WifiClients) ProtoMessage() {} -func (x *WifiSetConfigRequest) ProtoReflect() protoreflect.Message { +func (x *WifiClients) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -107,26 +311,32 @@ func (x *WifiSetConfigRequest) ProtoReflect() protoref return mi.MessageOf(x) } -// Deprecated: Use WifiSetConfigRequest.ProtoReflect.Descriptor instead. -func (*WifiSetConfigRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use WifiClients.ProtoReflect.Descriptor instead. +func (*WifiClients) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{0} } -func (x *WifiSetConfigRequest) GetWifiConfig() *WifiConfig { +func (x *WifiClients) GetClients() []*WifiClient { if x != nil { - return x.WifiConfig + return x.Clients } return nil } -type WifiSetConfigResponse struct { +type ToController struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // Types that are assignable to Message: + // + // *ToController_Clients + // *ToController_MeshJoin + Message isToController_Message `protobuf_oneof:"message"` } -func (x *WifiSetConfigResponse) Reset() { - *x = WifiSetConfigResponse{} +func (x *ToController) Reset() { + *x = ToController{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -134,13 +344,13 @@ func (x *WifiSetConfigResponse) Reset() { } } -func (x *WifiSetConfigResponse) String() string { +func (x *ToController) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiSetConfigResponse) ProtoMessage() {} +func (*ToController) ProtoMessage() {} -func (x *WifiSetConfigResponse) ProtoReflect() protoreflect.Message { +func (x *ToController) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -152,19 +362,58 @@ func (x *WifiSetConfigResponse) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use WifiSetConfigResponse.ProtoReflect.Descriptor instead. -func (*WifiSetConfigResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use ToController.ProtoReflect.Descriptor instead. +func (*ToController) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{1} } -type WifiGetClientsRequest struct { +func (m *ToController) GetMessage() isToController_Message { + if m != nil { + return m.Message + } + return nil +} + +func (x *ToController) GetClients() *WifiClients { + if x, ok := x.GetMessage().(*ToController_Clients); ok { + return x.Clients + } + return nil +} + +func (x *ToController) GetMeshJoin() *WifiMeshJoin { + if x, ok := x.GetMessage().(*ToController_MeshJoin); ok { + return x.MeshJoin + } + return nil +} + +type isToController_Message interface { + isToController_Message() +} + +type ToController_Clients struct { + Clients *WifiClients `protobuf:"bytes,1,opt,name=clients,proto3,oneof"` +} + +type ToController_MeshJoin struct { + MeshJoin *WifiMeshJoin `protobuf:"bytes,2,opt,name=mesh_join,json=meshJoin,proto3,oneof"` +} + +func (*ToController_Clients) isToController_Message() {} + +func (*ToController_MeshJoin) isToController_Message() {} + +type WifiMeshJoin struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Incarnation uint64 `protobuf:"varint,1,opt,name=incarnation,proto3" json:"incarnation,omitempty"` } -func (x *WifiGetClientsRequest) Reset() { - *x = WifiGetClientsRequest{} +func (x *WifiMeshJoin) Reset() { + *x = WifiMeshJoin{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -172,13 +421,13 @@ func (x *WifiGetClientsRequest) Reset() { } } -func (x *WifiGetClientsRequest) String() string { +func (x *WifiMeshJoin) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetClientsRequest) ProtoMessage() {} +func (*WifiMeshJoin) ProtoMessage() {} -func (x *WifiGetClientsRequest) ProtoReflect() protoreflect.Message { +func (x *WifiMeshJoin) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -190,21 +439,31 @@ func (x *WifiGetClientsRequest) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use WifiGetClientsRequest.ProtoReflect.Descriptor instead. -func (*WifiGetClientsRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use WifiMeshJoin.ProtoReflect.Descriptor instead. +func (*WifiMeshJoin) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{2} } -type WifiGetClientsResponse struct { +func (x *WifiMeshJoin) GetIncarnation() uint64 { + if x != nil { + return x.Incarnation + } + return 0 +} + +type FromController struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Clients []*WifiClient `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` + // Types that are assignable to Message: + // + // *FromController_WifiConfig + Message isFromController_Message `protobuf_oneof:"message"` } -func (x *WifiGetClientsResponse) Reset() { - *x = WifiGetClientsResponse{} +func (x *FromController) Reset() { + *x = FromController{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -212,13 +471,13 @@ func (x *WifiGetClientsResponse) Reset() { } } -func (x *WifiGetClientsResponse) String() string { +func (x *FromController) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetClientsResponse) ProtoMessage() {} +func (*FromController) ProtoMessage() {} -func (x *WifiGetClientsResponse) ProtoReflect() protoreflect.Message { +func (x *FromController) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -230,30 +489,45 @@ func (x *WifiGetClientsResponse) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use WifiGetClientsResponse.ProtoReflect.Descriptor instead. -func (*WifiGetClientsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use FromController.ProtoReflect.Descriptor instead. +func (*FromController) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{3} } -func (x *WifiGetClientsResponse) GetClients() []*WifiClient { - if x != nil { - return x.Clients +func (m *FromController) GetMessage() isFromController_Message { + if m != nil { + return m.Message } return nil } -type WifiGetHistoryResponse struct { +func (x *FromController) GetWifiConfig() *WifiConfig { + if x, ok := x.GetMessage().(*FromController_WifiConfig); ok { + return x.WifiConfig + } + return nil +} + +type isFromController_Message interface { + isFromController_Message() +} + +type FromController_WifiConfig struct { + WifiConfig *WifiConfig `protobuf:"bytes,1,opt,name=wifi_config,json=wifiConfig,proto3,oneof"` +} + +func (*FromController_WifiConfig) isFromController_Message() {} + +type WifiSetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` - PingDropRate []float32 `protobuf:"fixed32,1001,rep,packed,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` - PingLatencyMs []float32 `protobuf:"fixed32,1002,rep,packed,name=ping_latency_ms,json=pingLatencyMs,proto3" json:"ping_latency_ms,omitempty"` + WifiConfig *WifiConfig `protobuf:"bytes,1,opt,name=wifi_config,json=wifiConfig,proto3" json:"wifi_config,omitempty"` } -func (x *WifiGetHistoryResponse) Reset() { - *x = WifiGetHistoryResponse{} +func (x *WifiSetConfigRequest) Reset() { + *x = WifiSetConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -261,13 +535,13 @@ func (x *WifiGetHistoryResponse) Reset() { } } -func (x *WifiGetHistoryResponse) String() string { +func (x *WifiSetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetHistoryResponse) ProtoMessage() {} +func (*WifiSetConfigRequest) ProtoMessage() {} -func (x *WifiGetHistoryResponse) ProtoReflect() protoreflect.Message { +func (x *WifiSetConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -279,42 +553,28 @@ func (x *WifiGetHistoryResponse) ProtoReflect() protor return mi.MessageOf(x) } -// Deprecated: Use WifiGetHistoryResponse.ProtoReflect.Descriptor instead. -func (*WifiGetHistoryResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use WifiSetConfigRequest.ProtoReflect.Descriptor instead. +func (*WifiSetConfigRequest) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{4} } -func (x *WifiGetHistoryResponse) GetCurrent() uint64 { +func (x *WifiSetConfigRequest) GetWifiConfig() *WifiConfig { if x != nil { - return x.Current + return x.WifiConfig } - return 0 -} - -func (x *WifiGetHistoryResponse) GetPingDropRate() []float32 { - if x != nil { - return x.PingDropRate - } return nil } -func (x *WifiGetHistoryResponse) GetPingLatencyMs() []float32 { - if x != nil { - return x.PingLatencyMs - } - return nil -} - -type WifiNewClientConnectedEvent struct { +type WifiSetConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Client *WifiClient `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"` + UpdatedWifiConfig *WifiConfig `protobuf:"bytes,1,opt,name=updated_wifi_config,json=updatedWifiConfig,proto3" json:"updated_wifi_config,omitempty"` } -func (x *WifiNewClientConnectedEvent) Reset() { - *x = WifiNewClientConnectedEvent{} +func (x *WifiSetConfigResponse) Reset() { + *x = WifiSetConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -322,13 +582,13 @@ func (x *WifiNewClientConnectedEvent) Reset() { } } -func (x *WifiNewClientConnectedEvent) String() string { +func (x *WifiSetConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiNewClientConnectedEvent) ProtoMessage() {} +func (*WifiSetConfigResponse) ProtoMessage() {} -func (x *WifiNewClientConnectedEvent) ProtoReflect() protoreflect.Message { +func (x *WifiSetConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -340,36 +600,26 @@ func (x *WifiNewClientConnectedEvent) ProtoReflect() p return mi.MessageOf(x) } -// Deprecated: Use WifiNewClientConnectedEvent.ProtoReflect.Descriptor instead. -func (*WifiNewClientConnectedEvent) Descriptor() ([]byte, []int) { +// Deprecated: Use WifiSetConfigResponse.ProtoReflect.Descriptor instead. +func (*WifiSetConfigResponse) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{5} } -func (x *WifiNewClientConnectedEvent) GetClient() *WifiClient { +func (x *WifiSetConfigResponse) GetUpdatedWifiConfig() *WifiConfig { if x != nil { - return x.Client + return x.UpdatedWifiConfig } return nil } -type WifiClient struct { +type WifiGetConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - MacAddress string `protobuf:"bytes,2,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` - IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` - SignalStrength float32 `protobuf:"fixed32,4,opt,name=signal_strength,json=signalStrength,proto3" json:"signal_strength,omitempty"` - RxStats *WifiClient_RxStats `protobuf:"bytes,5,opt,name=rx_stats,json=rxStats,proto3" json:"rx_stats,omitempty"` - TxStats *WifiClient_TxStats `protobuf:"bytes,6,opt,name=tx_stats,json=txStats,proto3" json:"tx_stats,omitempty"` - AssociatedTimeS uint32 `protobuf:"varint,7,opt,name=associated_time_s,json=associatedTimeS,proto3" json:"associated_time_s,omitempty"` - ModeStr string `protobuf:"bytes,8,opt,name=mode_str,json=modeStr,proto3" json:"mode_str,omitempty"` - Iface WifiClient_Interface `protobuf:"varint,9,opt,name=iface,proto3,enum=SpaceX.API.Device.WifiClient_Interface" json:"iface,omitempty"` } -func (x *WifiClient) Reset() { - *x = WifiClient{} +func (x *WifiGetConfigRequest) Reset() { + *x = WifiGetConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_spacex_api_device_wifi_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -377,13 +627,13 @@ func (x *WifiClient) Reset() { } } -func (x *WifiClient) String() string { +func (x *WifiGetConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiClient) ProtoMessage() {} +func (*WifiGetConfigRequest) ProtoMessage() {} -func (x *WifiClient) ProtoReflect() protoreflect.Message { +func (x *WifiGetConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_spacex_api_device_wifi_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -395,101 +645,136 @@ func (x *WifiClient) ProtoReflect() protoreflect.Messa return mi.MessageOf(x) } -// Deprecated: Use WifiClient.ProtoReflect.Descriptor instead. -func (*WifiClient) Descriptor() ([]byte, []int) { +// Deprecated: Use WifiGetConfigRequest.ProtoReflect.Descriptor instead. +func (*WifiGetConfigRequest) Descriptor() ([]byte, []int) { return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{6} } -func (x *WifiClient) GetName() string { - if x != nil { - return x.Name - } - return "" -} +type WifiGetConfigResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *WifiClient) GetMacAddress() string { - if x != nil { - return x.MacAddress - } - return "" + WifiConfig *WifiConfig `protobuf:"bytes,1,opt,name=wifi_config,json=wifiConfig,proto3" json:"wifi_config,omitempty"` } -func (x *WifiClient) GetIpAddress() string { - if x != nil { - return x.IpAddress +func (x *WifiGetConfigResponse) Reset() { + *x = WifiGetConfigResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *WifiClient) GetSignalStrength() float32 { - if x != nil { - return x.SignalStrength - } - return 0 +func (x *WifiGetConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *WifiClient) GetRxStats() *WifiClient_RxStats { - if x != nil { - return x.RxStats +func (*WifiGetConfigResponse) ProtoMessage() {} + +func (x *WifiGetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *WifiClient) GetTxStats() *WifiClient_TxStats { +// Deprecated: Use WifiGetConfigResponse.ProtoReflect.Descriptor instead. +func (*WifiGetConfigResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{7} +} + +func (x *WifiGetConfigResponse) GetWifiConfig() *WifiConfig { if x != nil { - return x.TxStats + return x.WifiConfig } return nil } -func (x *WifiClient) GetAssociatedTimeS() uint32 { - if x != nil { - return x.AssociatedTimeS +type WifiSetMeshDeviceTrustRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` + Auth MeshAuth `protobuf:"varint,2,opt,name=auth,proto3,enum=SpaceX.API.Device.MeshAuth" json:"auth,omitempty"` +} + +func (x *WifiSetMeshDeviceTrustRequest) Reset() { + *x = WifiSetMeshDeviceTrustRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *WifiClient) GetModeStr() string { +func (x *WifiSetMeshDeviceTrustRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiSetMeshDeviceTrustRequest) ProtoMessage() {} + +func (x *WifiSetMeshDeviceTrustRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[8] + 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 WifiSetMeshDeviceTrustRequest.ProtoReflect.Descriptor instead. +func (*WifiSetMeshDeviceTrustRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{8} +} + +func (x *WifiSetMeshDeviceTrustRequest) GetDeviceId() string { if x != nil { - return x.ModeStr + return x.DeviceId } return "" } -func (x *WifiClient) GetIface() WifiClient_Interface { +func (x *WifiSetMeshDeviceTrustRequest) GetAuth() MeshAuth { if x != nil { - return x.Iface + return x.Auth } - return WifiClient_UNKNOWN + return MeshAuth_MESH_AUTH_UNKNOWN } -type WifiSetupRequest struct { +type WifiSetMeshDeviceTrustResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Skip bool `protobuf:"varint,1,opt,name=skip,proto3" json:"skip,omitempty"` - NetworkName string `protobuf:"bytes,2,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` - NetworkPassword string `protobuf:"bytes,3,opt,name=network_password,json=networkPassword,proto3" json:"network_password,omitempty"` } -func (x *WifiSetupRequest) Reset() { - *x = WifiSetupRequest{} +func (x *WifiSetMeshDeviceTrustResponse) Reset() { + *x = WifiSetMeshDeviceTrustResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[7] + mi := &file_spacex_api_device_wifi_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiSetupRequest) String() string { +func (x *WifiSetMeshDeviceTrustResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiSetupRequest) ProtoMessage() {} +func (*WifiSetMeshDeviceTrustResponse) ProtoMessage() {} -func (x *WifiSetupRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[7] +func (x *WifiSetMeshDeviceTrustResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -500,55 +785,89 @@ func (x *WifiSetupRequest) ProtoReflect() protoreflect return mi.MessageOf(x) } -// Deprecated: Use WifiSetupRequest.ProtoReflect.Descriptor instead. -func (*WifiSetupRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{7} +// Deprecated: Use WifiSetMeshDeviceTrustResponse.ProtoReflect.Descriptor instead. +func (*WifiSetMeshDeviceTrustResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{9} } -func (x *WifiSetupRequest) GetSkip() bool { - if x != nil { - return x.Skip +type WifiSetMeshConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MeshConfig *MeshConfig `protobuf:"bytes,1,opt,name=mesh_config,json=meshConfig,proto3" json:"mesh_config,omitempty"` + DeviceId string `protobuf:"bytes,2,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` +} + +func (x *WifiSetMeshConfigRequest) Reset() { + *x = WifiSetMeshConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return false } -func (x *WifiSetupRequest) GetNetworkName() string { +func (x *WifiSetMeshConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiSetMeshConfigRequest) ProtoMessage() {} + +func (x *WifiSetMeshConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiSetMeshConfigRequest.ProtoReflect.Descriptor instead. +func (*WifiSetMeshConfigRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{10} +} + +func (x *WifiSetMeshConfigRequest) GetMeshConfig() *MeshConfig { if x != nil { - return x.NetworkName + return x.MeshConfig } - return "" + return nil } -func (x *WifiSetupRequest) GetNetworkPassword() string { +func (x *WifiSetMeshConfigRequest) GetDeviceId() string { if x != nil { - return x.NetworkPassword + return x.DeviceId } return "" } -type WifiSetupResponse struct { +type WifiSetMeshConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *WifiSetupResponse) Reset() { - *x = WifiSetupResponse{} +func (x *WifiSetMeshConfigResponse) Reset() { + *x = WifiSetMeshConfigResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[8] + mi := &file_spacex_api_device_wifi_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiSetupResponse) String() string { +func (x *WifiSetMeshConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiSetupResponse) ProtoMessage() {} +func (*WifiSetMeshConfigResponse) ProtoMessage() {} -func (x *WifiSetupResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[8] +func (x *WifiSetMeshConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -559,45 +878,34 @@ func (x *WifiSetupResponse) ProtoReflect() protoreflec return mi.MessageOf(x) } -// Deprecated: Use WifiSetupResponse.ProtoReflect.Descriptor instead. -func (*WifiSetupResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{8} +// Deprecated: Use WifiSetMeshConfigResponse.ProtoReflect.Descriptor instead. +func (*WifiSetMeshConfigResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{11} } -type WifiGetStatusResponse struct { +type WifiGetClientsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - DeviceInfo *DeviceInfo `protobuf:"bytes,3,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"` - DeviceState *DeviceState `protobuf:"bytes,4,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"` - CaptivePortalEnabled bool `protobuf:"varint,1,opt,name=captive_portal_enabled,json=captivePortalEnabled,proto3" json:"captive_portal_enabled,omitempty"` - // Deprecated: Do not use. - Clients []*WifiClient `protobuf:"bytes,2,rep,name=clients,proto3" json:"clients,omitempty"` - SerialNumber string `protobuf:"bytes,1001,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"` - Sku string `protobuf:"bytes,1002,opt,name=sku,proto3" json:"sku,omitempty"` - Ipv4WanAddress string `protobuf:"bytes,1003,opt,name=ipv4_wan_address,json=ipv4WanAddress,proto3" json:"ipv4_wan_address,omitempty"` - PingDropRate float32 `protobuf:"fixed32,1004,opt,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` - PingLatencyMs float32 `protobuf:"fixed32,1005,opt,name=ping_latency_ms,json=pingLatencyMs,proto3" json:"ping_latency_ms,omitempty"` } -func (x *WifiGetStatusResponse) Reset() { - *x = WifiGetStatusResponse{} +func (x *WifiGetClientsRequest) Reset() { + *x = WifiGetClientsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[9] + mi := &file_spacex_api_device_wifi_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiGetStatusResponse) String() string { +func (x *WifiGetClientsRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetStatusResponse) ProtoMessage() {} +func (*WifiGetClientsRequest) ProtoMessage() {} -func (x *WifiGetStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[9] +func (x *WifiGetClientsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -608,100 +916,99 @@ func (x *WifiGetStatusResponse) ProtoReflect() protore return mi.MessageOf(x) } -// Deprecated: Use WifiGetStatusResponse.ProtoReflect.Descriptor instead. -func (*WifiGetStatusResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{9} +// Deprecated: Use WifiGetClientsRequest.ProtoReflect.Descriptor instead. +func (*WifiGetClientsRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{12} } -func (x *WifiGetStatusResponse) GetDeviceInfo() *DeviceInfo { - if x != nil { - return x.DeviceInfo - } - return nil +type WifiGetClientsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Clients []*WifiClient `protobuf:"bytes,1,rep,name=clients,proto3" json:"clients,omitempty"` + HasClientIndex bool `protobuf:"varint,2,opt,name=has_client_index,json=hasClientIndex,proto3" json:"has_client_index,omitempty"` + ClientIndex int32 `protobuf:"varint,3,opt,name=client_index,json=clientIndex,proto3" json:"client_index,omitempty"` } -func (x *WifiGetStatusResponse) GetDeviceState() *DeviceState { - if x != nil { - return x.DeviceState +func (x *WifiGetClientsResponse) Reset() { + *x = WifiGetClientsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (x *WifiGetStatusResponse) GetCaptivePortalEnabled() bool { - if x != nil { - return x.CaptivePortalEnabled - } - return false +func (x *WifiGetClientsResponse) String() string { + return protoimpl.X.MessageStringOf(x) } -// Deprecated: Do not use. -func (x *WifiGetStatusResponse) GetClients() []*WifiClient { - if x != nil { - return x.Clients +func (*WifiGetClientsResponse) ProtoMessage() {} + +func (x *WifiGetClientsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (x *WifiGetStatusResponse) GetSerialNumber() string { - if x != nil { - return x.SerialNumber - } - return "" +// Deprecated: Use WifiGetClientsResponse.ProtoReflect.Descriptor instead. +func (*WifiGetClientsResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{13} } -func (x *WifiGetStatusResponse) GetSku() string { +func (x *WifiGetClientsResponse) GetClients() []*WifiClient { if x != nil { - return x.Sku + return x.Clients } - return "" + return nil } -func (x *WifiGetStatusResponse) GetIpv4WanAddress() string { +func (x *WifiGetClientsResponse) GetHasClientIndex() bool { if x != nil { - return x.Ipv4WanAddress + return x.HasClientIndex } - return "" + return false } -func (x *WifiGetStatusResponse) GetPingDropRate() float32 { +func (x *WifiGetClientsResponse) GetClientIndex() int32 { if x != nil { - return x.PingDropRate + return x.ClientIndex } return 0 } -func (x *WifiGetStatusResponse) GetPingLatencyMs() float32 { - if x != nil { - return x.PingLatencyMs - } - return 0 -} - -type WifiAuthenticateRequest struct { +type WifiGetClientHistoryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Challenge *SignedData `protobuf:"bytes,1,opt,name=challenge,proto3" json:"challenge,omitempty"` + MacAddress string `protobuf:"bytes,1,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` } -func (x *WifiAuthenticateRequest) Reset() { - *x = WifiAuthenticateRequest{} +func (x *WifiGetClientHistoryRequest) Reset() { + *x = WifiGetClientHistoryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[10] + mi := &file_spacex_api_device_wifi_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiAuthenticateRequest) String() string { +func (x *WifiGetClientHistoryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiAuthenticateRequest) ProtoMessage() {} +func (*WifiGetClientHistoryRequest) ProtoMessage() {} -func (x *WifiAuthenticateRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[10] +func (x *WifiGetClientHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -712,44 +1019,48 @@ func (x *WifiAuthenticateRequest) ProtoReflect() proto return mi.MessageOf(x) } -// Deprecated: Use WifiAuthenticateRequest.ProtoReflect.Descriptor instead. -func (*WifiAuthenticateRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{10} +// Deprecated: Use WifiGetClientHistoryRequest.ProtoReflect.Descriptor instead. +func (*WifiGetClientHistoryRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{14} } -func (x *WifiAuthenticateRequest) GetChallenge() *SignedData { +func (x *WifiGetClientHistoryRequest) GetMacAddress() string { if x != nil { - return x.Challenge + return x.MacAddress } - return nil + return "" } -type WifiAuthenticateResponse struct { +type WifiGetClientHistoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Wifi *ChallengeResponse `protobuf:"bytes,1,opt,name=wifi,proto3" json:"wifi,omitempty"` - Dish *ChallengeResponse `protobuf:"bytes,2,opt,name=dish,proto3" json:"dish,omitempty"` + Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` + TxThroughputMbps []float32 `protobuf:"fixed32,2,rep,packed,name=tx_throughput_mbps,json=txThroughputMbps,proto3" json:"tx_throughput_mbps,omitempty"` + RxThroughputMbps []float32 `protobuf:"fixed32,3,rep,packed,name=rx_throughput_mbps,json=rxThroughputMbps,proto3" json:"rx_throughput_mbps,omitempty"` + ThroughputLimited []WifiGetClientHistoryResponse_WifiLimitedReason `protobuf:"varint,4,rep,packed,name=throughput_limited,json=throughputLimited,proto3,enum=SpaceX.API.Device.WifiGetClientHistoryResponse_WifiLimitedReason" json:"throughput_limited,omitempty"` + RxRateMbps []float32 `protobuf:"fixed32,5,rep,packed,name=rx_rate_mbps,json=rxRateMbps,proto3" json:"rx_rate_mbps,omitempty"` + Rssi []byte `protobuf:"bytes,6,opt,name=rssi,proto3" json:"rssi,omitempty"` } -func (x *WifiAuthenticateResponse) Reset() { - *x = WifiAuthenticateResponse{} +func (x *WifiGetClientHistoryResponse) Reset() { + *x = WifiGetClientHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[11] + mi := &file_spacex_api_device_wifi_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiAuthenticateResponse) String() string { +func (x *WifiGetClientHistoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiAuthenticateResponse) ProtoMessage() {} +func (*WifiGetClientHistoryResponse) ProtoMessage() {} -func (x *WifiAuthenticateResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[11] +func (x *WifiGetClientHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -760,110 +1071,80 @@ func (x *WifiAuthenticateResponse) ProtoReflect() prot return mi.MessageOf(x) } -// Deprecated: Use WifiAuthenticateResponse.ProtoReflect.Descriptor instead. -func (*WifiAuthenticateResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{11} +// Deprecated: Use WifiGetClientHistoryResponse.ProtoReflect.Descriptor instead. +func (*WifiGetClientHistoryResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{15} } -func (x *WifiAuthenticateResponse) GetWifi() *ChallengeResponse { +func (x *WifiGetClientHistoryResponse) GetCurrent() uint64 { if x != nil { - return x.Wifi + return x.Current } - return nil + return 0 } -func (x *WifiAuthenticateResponse) GetDish() *ChallengeResponse { +func (x *WifiGetClientHistoryResponse) GetTxThroughputMbps() []float32 { if x != nil { - return x.Dish + return x.TxThroughputMbps } return nil } -type WifiAccountBondingEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DishId string `protobuf:"bytes,1,opt,name=dish_id,json=dishId,proto3" json:"dish_id,omitempty"` -} - -func (x *WifiAccountBondingEvent) Reset() { - *x = WifiAccountBondingEvent{} - if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *WifiGetClientHistoryResponse) GetRxThroughputMbps() []float32 { + if x != nil { + return x.RxThroughputMbps } + return nil } -func (x *WifiAccountBondingEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WifiAccountBondingEvent) ProtoMessage() {} - -func (x *WifiAccountBondingEvent) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms +func (x *WifiGetClientHistoryResponse) GetThroughputLimited() []WifiGetClientHistoryResponse_WifiLimitedReason { + if x != nil { + return x.ThroughputLimited } - return mi.MessageOf(x) + return nil } -// Deprecated: Use WifiAccountBondingEvent.ProtoReflect.Descriptor instead. -func (*WifiAccountBondingEvent) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{12} +func (x *WifiGetClientHistoryResponse) GetRxRateMbps() []float32 { + if x != nil { + return x.RxRateMbps + } + return nil } -func (x *WifiAccountBondingEvent) GetDishId() string { +func (x *WifiGetClientHistoryResponse) GetRssi() []byte { if x != nil { - return x.DishId + return x.Rssi } - return "" + return nil } -type PingMetrics struct { +type WifiGetHistoryResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - LatencyMeanMs float32 `protobuf:"fixed32,1,opt,name=latency_mean_ms,json=latencyMeanMs,proto3" json:"latency_mean_ms,omitempty"` - LatencyStddevMs float32 `protobuf:"fixed32,2,opt,name=latency_stddev_ms,json=latencyStddevMs,proto3" json:"latency_stddev_ms,omitempty"` - LatencyMeanMs_5M float32 `protobuf:"fixed32,3,opt,name=latency_mean_ms_5m,json=latencyMeanMs5m,proto3" json:"latency_mean_ms_5m,omitempty"` - LatencyMeanMs_1H float32 `protobuf:"fixed32,4,opt,name=latency_mean_ms_1h,json=latencyMeanMs1h,proto3" json:"latency_mean_ms_1h,omitempty"` - LatencyMeanMs_1D float32 `protobuf:"fixed32,5,opt,name=latency_mean_ms_1d,json=latencyMeanMs1d,proto3" json:"latency_mean_ms_1d,omitempty"` - DropRate float32 `protobuf:"fixed32,6,opt,name=drop_rate,json=dropRate,proto3" json:"drop_rate,omitempty"` - DropRate_5M float32 `protobuf:"fixed32,7,opt,name=drop_rate_5m,json=dropRate5m,proto3" json:"drop_rate_5m,omitempty"` - DropRate_1H float32 `protobuf:"fixed32,8,opt,name=drop_rate_1h,json=dropRate1h,proto3" json:"drop_rate_1h,omitempty"` - DropRate_1D float32 `protobuf:"fixed32,9,opt,name=drop_rate_1d,json=dropRate1d,proto3" json:"drop_rate_1d,omitempty"` - SecondsSinceLastSuccess float32 `protobuf:"fixed32,10,opt,name=seconds_since_last_success,json=secondsSinceLastSuccess,proto3" json:"seconds_since_last_success,omitempty"` - SecondsSinceLast_1SOutage float32 `protobuf:"fixed32,11,opt,name=seconds_since_last_1s_outage,json=secondsSinceLast1sOutage,proto3" json:"seconds_since_last_1s_outage,omitempty"` - SecondsSinceLast_5SOutage float32 `protobuf:"fixed32,12,opt,name=seconds_since_last_5s_outage,json=secondsSinceLast5sOutage,proto3" json:"seconds_since_last_5s_outage,omitempty"` - HappyHours_1S_1D float32 `protobuf:"fixed32,13,opt,name=happy_hours_1s_1d,json=happyHours1s1d,proto3" json:"happy_hours_1s_1d,omitempty"` - HappyHours_5S_1D float32 `protobuf:"fixed32,14,opt,name=happy_hours_5s_1d,json=happyHours5s1d,proto3" json:"happy_hours_5s_1d,omitempty"` + Current uint64 `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"` + PingDropRate []float32 `protobuf:"fixed32,1001,rep,packed,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` + PingLatencyMs []float32 `protobuf:"fixed32,1002,rep,packed,name=ping_latency_ms,json=pingLatencyMs,proto3" json:"ping_latency_ms,omitempty"` } -func (x *PingMetrics) Reset() { - *x = PingMetrics{} +func (x *WifiGetHistoryResponse) Reset() { + *x = WifiGetHistoryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[13] + mi := &file_spacex_api_device_wifi_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PingMetrics) String() string { +func (x *WifiGetHistoryResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PingMetrics) ProtoMessage() {} +func (*WifiGetHistoryResponse) ProtoMessage() {} -func (x *PingMetrics) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[13] +func (x *WifiGetHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -874,132 +1155,57 @@ func (x *PingMetrics) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use PingMetrics.ProtoReflect.Descriptor instead. -func (*PingMetrics) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{13} +// Deprecated: Use WifiGetHistoryResponse.ProtoReflect.Descriptor instead. +func (*WifiGetHistoryResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{16} } -func (x *PingMetrics) GetLatencyMeanMs() float32 { +func (x *WifiGetHistoryResponse) GetCurrent() uint64 { if x != nil { - return x.LatencyMeanMs + return x.Current } return 0 } -func (x *PingMetrics) GetLatencyStddevMs() float32 { +func (x *WifiGetHistoryResponse) GetPingDropRate() []float32 { if x != nil { - return x.LatencyStddevMs + return x.PingDropRate } - return 0 + return nil } -func (x *PingMetrics) GetLatencyMeanMs_5M() float32 { +func (x *WifiGetHistoryResponse) GetPingLatencyMs() []float32 { if x != nil { - return x.LatencyMeanMs_5M + return x.PingLatencyMs } - return 0 + return nil } -func (x *PingMetrics) GetLatencyMeanMs_1H() float32 { - if x != nil { - return x.LatencyMeanMs_1H - } - return 0 -} - -func (x *PingMetrics) GetLatencyMeanMs_1D() float32 { - if x != nil { - return x.LatencyMeanMs_1D - } - return 0 -} - -func (x *PingMetrics) GetDropRate() float32 { - if x != nil { - return x.DropRate - } - return 0 -} - -func (x *PingMetrics) GetDropRate_5M() float32 { - if x != nil { - return x.DropRate_5M - } - return 0 -} - -func (x *PingMetrics) GetDropRate_1H() float32 { - if x != nil { - return x.DropRate_1H - } - return 0 -} - -func (x *PingMetrics) GetDropRate_1D() float32 { - if x != nil { - return x.DropRate_1D - } - return 0 -} - -func (x *PingMetrics) GetSecondsSinceLastSuccess() float32 { - if x != nil { - return x.SecondsSinceLastSuccess - } - return 0 -} - -func (x *PingMetrics) GetSecondsSinceLast_1SOutage() float32 { - if x != nil { - return x.SecondsSinceLast_1SOutage - } - return 0 -} - -func (x *PingMetrics) GetSecondsSinceLast_5SOutage() float32 { - if x != nil { - return x.SecondsSinceLast_5SOutage - } - return 0 -} - -func (x *PingMetrics) GetHappyHours_1S_1D() float32 { - if x != nil { - return x.HappyHours_1S_1D - } - return 0 -} - -func (x *PingMetrics) GetHappyHours_5S_1D() float32 { - if x != nil { - return x.HappyHours_5S_1D - } - return 0 -} - -type WifiGetPingMetricsRequest struct { +type WifiNewClientConnectedEvent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Client *WifiClient `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"` } -func (x *WifiGetPingMetricsRequest) Reset() { - *x = WifiGetPingMetricsRequest{} +func (x *WifiNewClientConnectedEvent) Reset() { + *x = WifiNewClientConnectedEvent{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[14] + mi := &file_spacex_api_device_wifi_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiGetPingMetricsRequest) String() string { +func (x *WifiNewClientConnectedEvent) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetPingMetricsRequest) ProtoMessage() {} +func (*WifiNewClientConnectedEvent) ProtoMessage() {} -func (x *WifiGetPingMetricsRequest) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[14] +func (x *WifiNewClientConnectedEvent) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1010,36 +1216,64 @@ func (x *WifiGetPingMetricsRequest) ProtoReflect() pro return mi.MessageOf(x) } -// Deprecated: Use WifiGetPingMetricsRequest.ProtoReflect.Descriptor instead. -func (*WifiGetPingMetricsRequest) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{14} +// Deprecated: Use WifiNewClientConnectedEvent.ProtoReflect.Descriptor instead. +func (*WifiNewClientConnectedEvent) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{17} } -type WifiGetPingMetricsResponse struct { +func (x *WifiNewClientConnectedEvent) GetClient() *WifiClient { + if x != nil { + return x.Client + } + return nil +} + +type WifiClient struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Internet *PingMetrics `protobuf:"bytes,1,opt,name=internet,proto3" json:"internet,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Domain string `protobuf:"bytes,22,opt,name=domain,proto3" json:"domain,omitempty"` + MacAddress string `protobuf:"bytes,2,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"` + IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` + SignalStrength float32 `protobuf:"fixed32,4,opt,name=signal_strength,json=signalStrength,proto3" json:"signal_strength,omitempty"` + ChannelWidth uint32 `protobuf:"varint,12,opt,name=channel_width,json=channelWidth,proto3" json:"channel_width,omitempty"` + RxStats *WifiClient_RxStats `protobuf:"bytes,5,opt,name=rx_stats,json=rxStats,proto3" json:"rx_stats,omitempty"` + TxStats *WifiClient_TxStats `protobuf:"bytes,6,opt,name=tx_stats,json=txStats,proto3" json:"tx_stats,omitempty"` + AssociatedTimeS uint32 `protobuf:"varint,7,opt,name=associated_time_s,json=associatedTimeS,proto3" json:"associated_time_s,omitempty"` + ModeStr string `protobuf:"bytes,8,opt,name=mode_str,json=modeStr,proto3" json:"mode_str,omitempty"` + Iface WifiClient_Interface `protobuf:"varint,9,opt,name=iface,proto3,enum=SpaceX.API.Device.WifiClient_Interface" json:"iface,omitempty"` + Snr float32 `protobuf:"fixed32,10,opt,name=snr,proto3" json:"snr,omitempty"` + Psmode int32 `protobuf:"varint,11,opt,name=psmode,proto3" json:"psmode,omitempty"` + UpstreamMacAddress string `protobuf:"bytes,13,opt,name=upstream_mac_address,json=upstreamMacAddress,proto3" json:"upstream_mac_address,omitempty"` + Role WifiClient_Role `protobuf:"varint,14,opt,name=role,proto3,enum=SpaceX.API.Device.WifiClient_Role" json:"role,omitempty"` + DeviceId string `protobuf:"bytes,15,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"` + SwqChecks uint32 `protobuf:"varint,16,opt,name=swq_checks,json=swqChecks,proto3" json:"swq_checks,omitempty"` + SwqChecksNonEmpty uint32 `protobuf:"varint,17,opt,name=swq_checks_non_empty,json=swqChecksNonEmpty,proto3" json:"swq_checks_non_empty,omitempty"` + MibSteerState uint32 `protobuf:"varint,18,opt,name=mib_steer_state,json=mibSteerState,proto3" json:"mib_steer_state,omitempty"` + MibSteerMethod uint32 `protobuf:"varint,19,opt,name=mib_steer_method,json=mibSteerMethod,proto3" json:"mib_steer_method,omitempty"` + BtmRequests uint32 `protobuf:"varint,20,opt,name=btm_requests,json=btmRequests,proto3" json:"btm_requests,omitempty"` + BtmRequestsSuccess uint32 `protobuf:"varint,21,opt,name=btm_requests_success,json=btmRequestsSuccess,proto3" json:"btm_requests_success,omitempty"` } -func (x *WifiGetPingMetricsResponse) Reset() { - *x = WifiGetPingMetricsResponse{} +func (x *WifiClient) Reset() { + *x = WifiClient{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[15] + mi := &file_spacex_api_device_wifi_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *WifiGetPingMetricsResponse) String() string { +func (x *WifiClient) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WifiGetPingMetricsResponse) ProtoMessage() {} +func (*WifiClient) ProtoMessage() {} -func (x *WifiGetPingMetricsResponse) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[15] +func (x *WifiClient) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1050,310 +1284,6170 @@ func (x *WifiGetPingMetricsResponse) ProtoReflect() pr return mi.MessageOf(x) } -// Deprecated: Use WifiGetPingMetricsResponse.ProtoReflect.Descriptor instead. -func (*WifiGetPingMetricsResponse) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{15} +// Deprecated: Use WifiClient.ProtoReflect.Descriptor instead. +func (*WifiClient) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{18} } -func (x *WifiGetPingMetricsResponse) GetInternet() *PingMetrics { +func (x *WifiClient) GetName() string { if x != nil { - return x.Internet + return x.Name } - return nil + return "" } -type WifiClient_RxStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Bytes uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"` - CountErrors uint64 `protobuf:"varint,2,opt,name=count_errors,json=countErrors,proto3" json:"count_errors,omitempty"` -} - -func (x *WifiClient_RxStats) Reset() { - *x = WifiClient_RxStats{} - if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WifiClient_RxStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WifiClient_RxStats) ProtoMessage() {} - -func (x *WifiClient_RxStats) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[16] - 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 WifiClient_RxStats.ProtoReflect.Descriptor instead. -func (*WifiClient_RxStats) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{6, 0} -} - -func (x *WifiClient_RxStats) GetBytes() uint64 { - if x != nil { - return x.Bytes - } - return 0 -} - -func (x *WifiClient_RxStats) GetCountErrors() uint64 { - if x != nil { - return x.CountErrors - } - return 0 +func (x *WifiClient) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *WifiClient) GetMacAddress() string { + if x != nil { + return x.MacAddress + } + return "" +} + +func (x *WifiClient) GetIpAddress() string { + if x != nil { + return x.IpAddress + } + return "" +} + +func (x *WifiClient) GetSignalStrength() float32 { + if x != nil { + return x.SignalStrength + } + return 0 +} + +func (x *WifiClient) GetChannelWidth() uint32 { + if x != nil { + return x.ChannelWidth + } + return 0 +} + +func (x *WifiClient) GetRxStats() *WifiClient_RxStats { + if x != nil { + return x.RxStats + } + return nil +} + +func (x *WifiClient) GetTxStats() *WifiClient_TxStats { + if x != nil { + return x.TxStats + } + return nil +} + +func (x *WifiClient) GetAssociatedTimeS() uint32 { + if x != nil { + return x.AssociatedTimeS + } + return 0 +} + +func (x *WifiClient) GetModeStr() string { + if x != nil { + return x.ModeStr + } + return "" +} + +func (x *WifiClient) GetIface() WifiClient_Interface { + if x != nil { + return x.Iface + } + return WifiClient_UNKNOWN +} + +func (x *WifiClient) GetSnr() float32 { + if x != nil { + return x.Snr + } + return 0 +} + +func (x *WifiClient) GetPsmode() int32 { + if x != nil { + return x.Psmode + } + return 0 +} + +func (x *WifiClient) GetUpstreamMacAddress() string { + if x != nil { + return x.UpstreamMacAddress + } + return "" +} + +func (x *WifiClient) GetRole() WifiClient_Role { + if x != nil { + return x.Role + } + return WifiClient_ROLE_UNKNOWN +} + +func (x *WifiClient) GetDeviceId() string { + if x != nil { + return x.DeviceId + } + return "" +} + +func (x *WifiClient) GetSwqChecks() uint32 { + if x != nil { + return x.SwqChecks + } + return 0 +} + +func (x *WifiClient) GetSwqChecksNonEmpty() uint32 { + if x != nil { + return x.SwqChecksNonEmpty + } + return 0 +} + +func (x *WifiClient) GetMibSteerState() uint32 { + if x != nil { + return x.MibSteerState + } + return 0 +} + +func (x *WifiClient) GetMibSteerMethod() uint32 { + if x != nil { + return x.MibSteerMethod + } + return 0 +} + +func (x *WifiClient) GetBtmRequests() uint32 { + if x != nil { + return x.BtmRequests + } + return 0 +} + +func (x *WifiClient) GetBtmRequestsSuccess() uint32 { + if x != nil { + return x.BtmRequestsSuccess + } + return 0 +} + +type WifiSetupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Skip bool `protobuf:"varint,1,opt,name=skip,proto3" json:"skip,omitempty"` + NetworkName string `protobuf:"bytes,2,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + NetworkPassword string `protobuf:"bytes,3,opt,name=network_password,json=networkPassword,proto3" json:"network_password,omitempty"` +} + +func (x *WifiSetupRequest) Reset() { + *x = WifiSetupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiSetupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiSetupRequest) ProtoMessage() {} + +func (x *WifiSetupRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[19] + 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 WifiSetupRequest.ProtoReflect.Descriptor instead. +func (*WifiSetupRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{19} +} + +func (x *WifiSetupRequest) GetSkip() bool { + if x != nil { + return x.Skip + } + return false +} + +func (x *WifiSetupRequest) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +func (x *WifiSetupRequest) GetNetworkPassword() string { + if x != nil { + return x.NetworkPassword + } + return "" +} + +type WifiSetupResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WifiSetupResponse) Reset() { + *x = WifiSetupResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiSetupResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiSetupResponse) ProtoMessage() {} + +func (x *WifiSetupResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[20] + 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 WifiSetupResponse.ProtoReflect.Descriptor instead. +func (*WifiSetupResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{20} +} + +type WifiBandStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChanBusyTimeFraction float32 `protobuf:"fixed32,1,opt,name=chan_busy_time_fraction,json=chanBusyTimeFraction,proto3" json:"chan_busy_time_fraction,omitempty"` + TxAirTimeFraction float32 `protobuf:"fixed32,2,opt,name=tx_air_time_fraction,json=txAirTimeFraction,proto3" json:"tx_air_time_fraction,omitempty"` + RxAirTimeFraction float32 `protobuf:"fixed32,3,opt,name=rx_air_time_fraction,json=rxAirTimeFraction,proto3" json:"rx_air_time_fraction,omitempty"` + ObssAirTimeFraction float32 `protobuf:"fixed32,4,opt,name=obss_air_time_fraction,json=obssAirTimeFraction,proto3" json:"obss_air_time_fraction,omitempty"` + EdccaAirTimeFraction float32 `protobuf:"fixed32,5,opt,name=edcca_air_time_fraction,json=edccaAirTimeFraction,proto3" json:"edcca_air_time_fraction,omitempty"` +} + +func (x *WifiBandStatus) Reset() { + *x = WifiBandStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiBandStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiBandStatus) ProtoMessage() {} + +func (x *WifiBandStatus) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[21] + 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 WifiBandStatus.ProtoReflect.Descriptor instead. +func (*WifiBandStatus) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{21} +} + +func (x *WifiBandStatus) GetChanBusyTimeFraction() float32 { + if x != nil { + return x.ChanBusyTimeFraction + } + return 0 +} + +func (x *WifiBandStatus) GetTxAirTimeFraction() float32 { + if x != nil { + return x.TxAirTimeFraction + } + return 0 +} + +func (x *WifiBandStatus) GetRxAirTimeFraction() float32 { + if x != nil { + return x.RxAirTimeFraction + } + return 0 +} + +func (x *WifiBandStatus) GetObssAirTimeFraction() float32 { + if x != nil { + return x.ObssAirTimeFraction + } + return 0 +} + +func (x *WifiBandStatus) GetEdccaAirTimeFraction() float32 { + if x != nil { + return x.EdccaAirTimeFraction + } + return 0 +} + +type WifiAlerts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ThermalThrottle bool `protobuf:"varint,1,opt,name=thermal_throttle,json=thermalThrottle,proto3" json:"thermal_throttle,omitempty"` + InstallPending bool `protobuf:"varint,2,opt,name=install_pending,json=installPending,proto3" json:"install_pending,omitempty"` + FreshlyFused bool `protobuf:"varint,3,opt,name=freshly_fused,json=freshlyFused,proto3" json:"freshly_fused,omitempty"` + LanEthSlowLink_10 bool `protobuf:"varint,4,opt,name=lan_eth_slow_link_10,json=lanEthSlowLink10,proto3" json:"lan_eth_slow_link_10,omitempty"` + LanEthSlowLink_100 bool `protobuf:"varint,5,opt,name=lan_eth_slow_link_100,json=lanEthSlowLink100,proto3" json:"lan_eth_slow_link_100,omitempty"` + WanEthPoorConnection bool `protobuf:"varint,10,opt,name=wan_eth_poor_connection,json=wanEthPoorConnection,proto3" json:"wan_eth_poor_connection,omitempty"` +} + +func (x *WifiAlerts) Reset() { + *x = WifiAlerts{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiAlerts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiAlerts) ProtoMessage() {} + +func (x *WifiAlerts) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[22] + 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 WifiAlerts.ProtoReflect.Descriptor instead. +func (*WifiAlerts) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{22} +} + +func (x *WifiAlerts) GetThermalThrottle() bool { + if x != nil { + return x.ThermalThrottle + } + return false +} + +func (x *WifiAlerts) GetInstallPending() bool { + if x != nil { + return x.InstallPending + } + return false +} + +func (x *WifiAlerts) GetFreshlyFused() bool { + if x != nil { + return x.FreshlyFused + } + return false +} + +func (x *WifiAlerts) GetLanEthSlowLink_10() bool { + if x != nil { + return x.LanEthSlowLink_10 + } + return false +} + +func (x *WifiAlerts) GetLanEthSlowLink_100() bool { + if x != nil { + return x.LanEthSlowLink_100 + } + return false +} + +func (x *WifiAlerts) GetWanEthPoorConnection() bool { + if x != nil { + return x.WanEthPoorConnection + } + return false +} + +type WifiGetStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeviceInfo *DeviceInfo `protobuf:"bytes,3,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"` + DeviceState *DeviceState `protobuf:"bytes,4,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"` + CaptivePortalEnabled bool `protobuf:"varint,1,opt,name=captive_portal_enabled,json=captivePortalEnabled,proto3" json:"captive_portal_enabled,omitempty"` + Ipv4WanAddress string `protobuf:"bytes,1003,opt,name=ipv4_wan_address,json=ipv4WanAddress,proto3" json:"ipv4_wan_address,omitempty"` + PingDropRate float32 `protobuf:"fixed32,1004,opt,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` + PingLatencyMs float32 `protobuf:"fixed32,1005,opt,name=ping_latency_ms,json=pingLatencyMs,proto3" json:"ping_latency_ms,omitempty"` + DishPingDropRate float32 `protobuf:"fixed32,1012,opt,name=dish_ping_drop_rate,json=dishPingDropRate,proto3" json:"dish_ping_drop_rate,omitempty"` + DishPingLatencyMs float32 `protobuf:"fixed32,1013,opt,name=dish_ping_latency_ms,json=dishPingLatencyMs,proto3" json:"dish_ping_latency_ms,omitempty"` + PopPingDropRate float32 `protobuf:"fixed32,1014,opt,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"` + PopPingLatencyMs float32 `protobuf:"fixed32,1015,opt,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"` + // Deprecated: Do not use. + Rf_2GhzStatus *WifiBandStatus `protobuf:"bytes,1008,opt,name=rf_2ghz_status,json=rf2ghzStatus,proto3" json:"rf_2ghz_status,omitempty"` + // Deprecated: Do not use. + Rf_5GhzStatus *WifiBandStatus `protobuf:"bytes,1009,opt,name=rf_5ghz_status,json=rf5ghzStatus,proto3" json:"rf_5ghz_status,omitempty"` + Alerts *WifiAlerts `protobuf:"bytes,1010,opt,name=alerts,proto3" json:"alerts,omitempty"` + IsAviation bool `protobuf:"varint,1011,opt,name=is_aviation,json=isAviation,proto3" json:"is_aviation,omitempty"` +} + +func (x *WifiGetStatusResponse) Reset() { + *x = WifiGetStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetStatusResponse) ProtoMessage() {} + +func (x *WifiGetStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_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 WifiGetStatusResponse.ProtoReflect.Descriptor instead. +func (*WifiGetStatusResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{23} +} + +func (x *WifiGetStatusResponse) GetDeviceInfo() *DeviceInfo { + if x != nil { + return x.DeviceInfo + } + return nil +} + +func (x *WifiGetStatusResponse) GetDeviceState() *DeviceState { + if x != nil { + return x.DeviceState + } + return nil +} + +func (x *WifiGetStatusResponse) GetCaptivePortalEnabled() bool { + if x != nil { + return x.CaptivePortalEnabled + } + return false +} + +func (x *WifiGetStatusResponse) GetIpv4WanAddress() string { + if x != nil { + return x.Ipv4WanAddress + } + return "" +} + +func (x *WifiGetStatusResponse) GetPingDropRate() float32 { + if x != nil { + return x.PingDropRate + } + return 0 +} + +func (x *WifiGetStatusResponse) GetPingLatencyMs() float32 { + if x != nil { + return x.PingLatencyMs + } + return 0 +} + +func (x *WifiGetStatusResponse) GetDishPingDropRate() float32 { + if x != nil { + return x.DishPingDropRate + } + return 0 +} + +func (x *WifiGetStatusResponse) GetDishPingLatencyMs() float32 { + if x != nil { + return x.DishPingLatencyMs + } + return 0 +} + +func (x *WifiGetStatusResponse) GetPopPingDropRate() float32 { + if x != nil { + return x.PopPingDropRate + } + return 0 +} + +func (x *WifiGetStatusResponse) GetPopPingLatencyMs() float32 { + if x != nil { + return x.PopPingLatencyMs + } + return 0 +} + +// Deprecated: Do not use. +func (x *WifiGetStatusResponse) GetRf_2GhzStatus() *WifiBandStatus { + if x != nil { + return x.Rf_2GhzStatus + } + return nil +} + +// Deprecated: Do not use. +func (x *WifiGetStatusResponse) GetRf_5GhzStatus() *WifiBandStatus { + if x != nil { + return x.Rf_5GhzStatus + } + return nil +} + +func (x *WifiGetStatusResponse) GetAlerts() *WifiAlerts { + if x != nil { + return x.Alerts + } + return nil +} + +func (x *WifiGetStatusResponse) GetIsAviation() bool { + if x != nil { + return x.IsAviation + } + return false +} + +type WifiAuthenticateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Challenge *SignedData `protobuf:"bytes,1,opt,name=challenge,proto3" json:"challenge,omitempty"` +} + +func (x *WifiAuthenticateRequest) Reset() { + *x = WifiAuthenticateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiAuthenticateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiAuthenticateRequest) ProtoMessage() {} + +func (x *WifiAuthenticateRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_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 WifiAuthenticateRequest.ProtoReflect.Descriptor instead. +func (*WifiAuthenticateRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{24} +} + +func (x *WifiAuthenticateRequest) GetChallenge() *SignedData { + if x != nil { + return x.Challenge + } + return nil +} + +type WifiAuthenticateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Wifi *ChallengeResponse `protobuf:"bytes,1,opt,name=wifi,proto3" json:"wifi,omitempty"` + Dish *ChallengeResponse `protobuf:"bytes,2,opt,name=dish,proto3" json:"dish,omitempty"` +} + +func (x *WifiAuthenticateResponse) Reset() { + *x = WifiAuthenticateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiAuthenticateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiAuthenticateResponse) ProtoMessage() {} + +func (x *WifiAuthenticateResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[25] + 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 WifiAuthenticateResponse.ProtoReflect.Descriptor instead. +func (*WifiAuthenticateResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{25} +} + +func (x *WifiAuthenticateResponse) GetWifi() *ChallengeResponse { + if x != nil { + return x.Wifi + } + return nil +} + +func (x *WifiAuthenticateResponse) GetDish() *ChallengeResponse { + if x != nil { + return x.Dish + } + return nil +} + +type WifiAccountBondingEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DishId string `protobuf:"bytes,1,opt,name=dish_id,json=dishId,proto3" json:"dish_id,omitempty"` +} + +func (x *WifiAccountBondingEvent) Reset() { + *x = WifiAccountBondingEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiAccountBondingEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiAccountBondingEvent) ProtoMessage() {} + +func (x *WifiAccountBondingEvent) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[26] + 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 WifiAccountBondingEvent.ProtoReflect.Descriptor instead. +func (*WifiAccountBondingEvent) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{26} +} + +func (x *WifiAccountBondingEvent) GetDishId() string { + if x != nil { + return x.DishId + } + return "" +} + +type WifiNewPeerEvent struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` +} + +func (x *WifiNewPeerEvent) Reset() { + *x = WifiNewPeerEvent{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNewPeerEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNewPeerEvent) ProtoMessage() {} + +func (x *WifiNewPeerEvent) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiNewPeerEvent.ProtoReflect.Descriptor instead. +func (*WifiNewPeerEvent) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{27} +} + +func (x *WifiNewPeerEvent) GetPeerId() string { + if x != nil { + return x.PeerId + } + return "" +} + +type PingMetrics struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + LatencyMeanMs float32 `protobuf:"fixed32,1,opt,name=latency_mean_ms,json=latencyMeanMs,proto3" json:"latency_mean_ms,omitempty"` + LatencyStddevMs float32 `protobuf:"fixed32,2,opt,name=latency_stddev_ms,json=latencyStddevMs,proto3" json:"latency_stddev_ms,omitempty"` + LatencyMeanMs_5M float32 `protobuf:"fixed32,3,opt,name=latency_mean_ms_5m,json=latencyMeanMs5m,proto3" json:"latency_mean_ms_5m,omitempty"` + LatencyMeanMs_1H float32 `protobuf:"fixed32,4,opt,name=latency_mean_ms_1h,json=latencyMeanMs1h,proto3" json:"latency_mean_ms_1h,omitempty"` + LatencyMeanMs_1D float32 `protobuf:"fixed32,5,opt,name=latency_mean_ms_1d,json=latencyMeanMs1d,proto3" json:"latency_mean_ms_1d,omitempty"` + DropRate float32 `protobuf:"fixed32,6,opt,name=drop_rate,json=dropRate,proto3" json:"drop_rate,omitempty"` + DropRate_5M float32 `protobuf:"fixed32,7,opt,name=drop_rate_5m,json=dropRate5m,proto3" json:"drop_rate_5m,omitempty"` + DropRate_1H float32 `protobuf:"fixed32,8,opt,name=drop_rate_1h,json=dropRate1h,proto3" json:"drop_rate_1h,omitempty"` + DropRate_1D float32 `protobuf:"fixed32,9,opt,name=drop_rate_1d,json=dropRate1d,proto3" json:"drop_rate_1d,omitempty"` + SecondsSinceLastSuccess float32 `protobuf:"fixed32,10,opt,name=seconds_since_last_success,json=secondsSinceLastSuccess,proto3" json:"seconds_since_last_success,omitempty"` + SecondsSinceLast_1SOutage float32 `protobuf:"fixed32,11,opt,name=seconds_since_last_1s_outage,json=secondsSinceLast1sOutage,proto3" json:"seconds_since_last_1s_outage,omitempty"` + SecondsSinceLast_2SOutage float32 `protobuf:"fixed32,15,opt,name=seconds_since_last_2s_outage,json=secondsSinceLast2sOutage,proto3" json:"seconds_since_last_2s_outage,omitempty"` + SecondsSinceLast_5SOutage float32 `protobuf:"fixed32,12,opt,name=seconds_since_last_5s_outage,json=secondsSinceLast5sOutage,proto3" json:"seconds_since_last_5s_outage,omitempty"` + SecondsSinceLast_15SOutage float32 `protobuf:"fixed32,18,opt,name=seconds_since_last_15s_outage,json=secondsSinceLast15sOutage,proto3" json:"seconds_since_last_15s_outage,omitempty"` + SecondsSinceLast_60SOutage float32 `protobuf:"fixed32,19,opt,name=seconds_since_last_60s_outage,json=secondsSinceLast60sOutage,proto3" json:"seconds_since_last_60s_outage,omitempty"` + SecondsSinceLast_300SOutage float32 `protobuf:"fixed32,20,opt,name=seconds_since_last_300s_outage,json=secondsSinceLast300sOutage,proto3" json:"seconds_since_last_300s_outage,omitempty"` + HappyHours_1S_1D float32 `protobuf:"fixed32,13,opt,name=happy_hours_1s_1d,json=happyHours1s1d,proto3" json:"happy_hours_1s_1d,omitempty"` + HappyHours_2S_1D float32 `protobuf:"fixed32,16,opt,name=happy_hours_2s_1d,json=happyHours2s1d,proto3" json:"happy_hours_2s_1d,omitempty"` + HappyHours_5S_1D float32 `protobuf:"fixed32,14,opt,name=happy_hours_5s_1d,json=happyHours5s1d,proto3" json:"happy_hours_5s_1d,omitempty"` +} + +func (x *PingMetrics) Reset() { + *x = PingMetrics{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingMetrics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingMetrics) ProtoMessage() {} + +func (x *PingMetrics) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[28] + 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 PingMetrics.ProtoReflect.Descriptor instead. +func (*PingMetrics) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{28} +} + +func (x *PingMetrics) GetLatencyMeanMs() float32 { + if x != nil { + return x.LatencyMeanMs + } + return 0 +} + +func (x *PingMetrics) GetLatencyStddevMs() float32 { + if x != nil { + return x.LatencyStddevMs + } + return 0 +} + +func (x *PingMetrics) GetLatencyMeanMs_5M() float32 { + if x != nil { + return x.LatencyMeanMs_5M + } + return 0 +} + +func (x *PingMetrics) GetLatencyMeanMs_1H() float32 { + if x != nil { + return x.LatencyMeanMs_1H + } + return 0 +} + +func (x *PingMetrics) GetLatencyMeanMs_1D() float32 { + if x != nil { + return x.LatencyMeanMs_1D + } + return 0 +} + +func (x *PingMetrics) GetDropRate() float32 { + if x != nil { + return x.DropRate + } + return 0 +} + +func (x *PingMetrics) GetDropRate_5M() float32 { + if x != nil { + return x.DropRate_5M + } + return 0 +} + +func (x *PingMetrics) GetDropRate_1H() float32 { + if x != nil { + return x.DropRate_1H + } + return 0 +} + +func (x *PingMetrics) GetDropRate_1D() float32 { + if x != nil { + return x.DropRate_1D + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLastSuccess() float32 { + if x != nil { + return x.SecondsSinceLastSuccess + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_1SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_1SOutage + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_2SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_2SOutage + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_5SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_5SOutage + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_15SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_15SOutage + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_60SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_60SOutage + } + return 0 +} + +func (x *PingMetrics) GetSecondsSinceLast_300SOutage() float32 { + if x != nil { + return x.SecondsSinceLast_300SOutage + } + return 0 +} + +func (x *PingMetrics) GetHappyHours_1S_1D() float32 { + if x != nil { + return x.HappyHours_1S_1D + } + return 0 +} + +func (x *PingMetrics) GetHappyHours_2S_1D() float32 { + if x != nil { + return x.HappyHours_2S_1D + } + return 0 +} + +func (x *PingMetrics) GetHappyHours_5S_1D() float32 { + if x != nil { + return x.HappyHours_5S_1D + } + return 0 +} + +type WifiGetPingMetricsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WifiGetPingMetricsRequest) Reset() { + *x = WifiGetPingMetricsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetPingMetricsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetPingMetricsRequest) ProtoMessage() {} + +func (x *WifiGetPingMetricsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[29] + 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 WifiGetPingMetricsRequest.ProtoReflect.Descriptor instead. +func (*WifiGetPingMetricsRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{29} +} + +type WifiGetPingMetricsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Internet *PingMetrics `protobuf:"bytes,1,opt,name=internet,proto3" json:"internet,omitempty"` +} + +func (x *WifiGetPingMetricsResponse) Reset() { + *x = WifiGetPingMetricsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetPingMetricsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetPingMetricsResponse) ProtoMessage() {} + +func (x *WifiGetPingMetricsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[30] + 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 WifiGetPingMetricsResponse.ProtoReflect.Descriptor instead. +func (*WifiGetPingMetricsResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{30} +} + +func (x *WifiGetPingMetricsResponse) GetInternet() *PingMetrics { + if x != nil { + return x.Internet + } + return nil +} + +type WifiGetDiagnosticsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WifiGetDiagnosticsRequest) Reset() { + *x = WifiGetDiagnosticsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetDiagnosticsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetDiagnosticsRequest) ProtoMessage() {} + +func (x *WifiGetDiagnosticsRequest) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[31] + 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 WifiGetDiagnosticsRequest.ProtoReflect.Descriptor instead. +func (*WifiGetDiagnosticsRequest) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{31} +} + +type WifiGetDiagnosticsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NetworkScan *WifiScanResults `protobuf:"bytes,1,opt,name=network_scan,json=networkScan,proto3" json:"network_scan,omitempty"` + WifiNetworks []*WifiNetwork `protobuf:"bytes,2,rep,name=wifi_networks,json=wifiNetworks,proto3" json:"wifi_networks,omitempty"` +} + +func (x *WifiGetDiagnosticsResponse) Reset() { + *x = WifiGetDiagnosticsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetDiagnosticsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetDiagnosticsResponse) ProtoMessage() {} + +func (x *WifiGetDiagnosticsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[32] + 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 WifiGetDiagnosticsResponse.ProtoReflect.Descriptor instead. +func (*WifiGetDiagnosticsResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{32} +} + +func (x *WifiGetDiagnosticsResponse) GetNetworkScan() *WifiScanResults { + if x != nil { + return x.NetworkScan + } + return nil +} + +func (x *WifiGetDiagnosticsResponse) GetWifiNetworks() []*WifiNetwork { + if x != nil { + return x.WifiNetworks + } + return nil +} + +type WifiScanResults struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Networks []*WifiScanResults_Network `protobuf:"bytes,1,rep,name=networks,proto3" json:"networks,omitempty"` +} + +func (x *WifiScanResults) Reset() { + *x = WifiScanResults{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiScanResults) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiScanResults) ProtoMessage() {} + +func (x *WifiScanResults) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[33] + 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 WifiScanResults.ProtoReflect.Descriptor instead. +func (*WifiScanResults) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{33} +} + +func (x *WifiScanResults) GetNetworks() []*WifiScanResults_Network { + if x != nil { + return x.Networks + } + return nil +} + +type WifiNetwork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Band WifiNetwork_Band `protobuf:"varint,1,opt,name=band,proto3,enum=SpaceX.API.Device.WifiNetwork_Band" json:"band,omitempty"` + Ssid string `protobuf:"bytes,2,opt,name=ssid,proto3" json:"ssid,omitempty"` + Channel uint32 `protobuf:"varint,3,opt,name=channel,proto3" json:"channel,omitempty"` + EncryptionTypeStr string `protobuf:"bytes,4,opt,name=encryption_type_str,json=encryptionTypeStr,proto3" json:"encryption_type_str,omitempty"` +} + +func (x *WifiNetwork) Reset() { + *x = WifiNetwork{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiNetwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiNetwork) ProtoMessage() {} + +func (x *WifiNetwork) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiNetwork.ProtoReflect.Descriptor instead. +func (*WifiNetwork) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{34} +} + +func (x *WifiNetwork) GetBand() WifiNetwork_Band { + if x != nil { + return x.Band + } + return WifiNetwork_WIFI_UNKNOWN +} + +func (x *WifiNetwork) GetSsid() string { + if x != nil { + return x.Ssid + } + return "" +} + +func (x *WifiNetwork) GetChannel() uint32 { + if x != nil { + return x.Channel + } + return 0 +} + +func (x *WifiNetwork) GetEncryptionTypeStr() string { + if x != nil { + return x.EncryptionTypeStr + } + return "" +} + +type WifiPersistentStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FactoryResetButton *WifiPersistentStats_Event `protobuf:"bytes,1,opt,name=factory_reset_button,json=factoryResetButton,proto3" json:"factory_reset_button,omitempty"` + FactoryResetPlugUnplug *WifiPersistentStats_Event `protobuf:"bytes,2,opt,name=factory_reset_plug_unplug,json=factoryResetPlugUnplug,proto3" json:"factory_reset_plug_unplug,omitempty"` + FactoryResetCommand *WifiPersistentStats_Event `protobuf:"bytes,3,opt,name=factory_reset_command,json=factoryResetCommand,proto3" json:"factory_reset_command,omitempty"` + FactoryResetFailedLoadWifiConfig *WifiPersistentStats_Event `protobuf:"bytes,4,opt,name=factory_reset_failed_load_wifi_config,json=factoryResetFailedLoadWifiConfig,proto3" json:"factory_reset_failed_load_wifi_config,omitempty"` + RebootFromSoftwareUpdate *WifiPersistentStats_Event `protobuf:"bytes,5,opt,name=reboot_from_software_update,json=rebootFromSoftwareUpdate,proto3" json:"reboot_from_software_update,omitempty"` +} + +func (x *WifiPersistentStats) Reset() { + *x = WifiPersistentStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiPersistentStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiPersistentStats) ProtoMessage() {} + +func (x *WifiPersistentStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[35] + 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 WifiPersistentStats.ProtoReflect.Descriptor instead. +func (*WifiPersistentStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{35} +} + +func (x *WifiPersistentStats) GetFactoryResetButton() *WifiPersistentStats_Event { + if x != nil { + return x.FactoryResetButton + } + return nil +} + +func (x *WifiPersistentStats) GetFactoryResetPlugUnplug() *WifiPersistentStats_Event { + if x != nil { + return x.FactoryResetPlugUnplug + } + return nil +} + +func (x *WifiPersistentStats) GetFactoryResetCommand() *WifiPersistentStats_Event { + if x != nil { + return x.FactoryResetCommand + } + return nil +} + +func (x *WifiPersistentStats) GetFactoryResetFailedLoadWifiConfig() *WifiPersistentStats_Event { + if x != nil { + return x.FactoryResetFailedLoadWifiConfig + } + return nil +} + +func (x *WifiPersistentStats) GetRebootFromSoftwareUpdate() *WifiPersistentStats_Event { + if x != nil { + return x.RebootFromSoftwareUpdate + } + return nil +} + +type WifiGetPersistentStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stats *WifiPersistentStats `protobuf:"bytes,1,opt,name=stats,proto3" json:"stats,omitempty"` +} + +func (x *WifiGetPersistentStatsResponse) Reset() { + *x = WifiGetPersistentStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiGetPersistentStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiGetPersistentStatsResponse) ProtoMessage() {} + +func (x *WifiGetPersistentStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[36] + 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 WifiGetPersistentStatsResponse.ProtoReflect.Descriptor instead. +func (*WifiGetPersistentStatsResponse) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{36} +} + +func (x *WifiGetPersistentStatsResponse) GetStats() *WifiPersistentStats { + if x != nil { + return x.Stats + } + return nil +} + +type StarlinkRouterHourlyMetricsV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + TimestampDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=timestamp_date,json=timestampDate,proto3" json:"timestamp_date,omitempty"` + TimestampHour *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=timestamp_hour,json=timestampHour,proto3" json:"timestamp_hour,omitempty"` + SysHwGen *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=sys_hw_gen,json=sysHwGen,proto3" json:"sys_hw_gen,omitempty"` + SysSw *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=sys_sw,json=sysSw,proto3" json:"sys_sw,omitempty"` + SysCountry *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=sys_country,json=sysCountry,proto3" json:"sys_country,omitempty"` + SysIsDev *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=sys_is_dev,json=sysIsDev,proto3" json:"sys_is_dev,omitempty"` + SysAllocFds *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=sys_alloc_fds,json=sysAllocFds,proto3" json:"sys_alloc_fds,omitempty"` + SysCpuUsage *wrapperspb.FloatValue `protobuf:"bytes,9,opt,name=sys_cpu_usage,json=sysCpuUsage,proto3" json:"sys_cpu_usage,omitempty"` + SysMemFreeKb *wrapperspb.FloatValue `protobuf:"bytes,10,opt,name=sys_mem_free_kb,json=sysMemFreeKb,proto3" json:"sys_mem_free_kb,omitempty"` + SysBootcount *wrapperspb.Int32Value `protobuf:"bytes,11,opt,name=sys_bootcount,json=sysBootcount,proto3" json:"sys_bootcount,omitempty"` + SysPartitionsEqual *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=sys_partitions_equal,json=sysPartitionsEqual,proto3" json:"sys_partitions_equal,omitempty"` + SysUptimeSeconds *wrapperspb.UInt32Value `protobuf:"bytes,13,opt,name=sys_uptime_seconds,json=sysUptimeSeconds,proto3" json:"sys_uptime_seconds,omitempty"` + SysAntiRollbackVersion *wrapperspb.Int32Value `protobuf:"bytes,14,opt,name=sys_anti_rollback_version,json=sysAntiRollbackVersion,proto3" json:"sys_anti_rollback_version,omitempty"` + Radios_2GhzChannel *wrapperspb.UInt32Value `protobuf:"bytes,100,opt,name=radios_2ghz_channel,json=radios2ghzChannel,proto3" json:"radios_2ghz_channel,omitempty"` + Radios_2GhzAntenna1Rssi *wrapperspb.FloatValue `protobuf:"bytes,101,opt,name=radios_2ghz_antenna1_rssi,json=radios2ghzAntenna1Rssi,proto3" json:"radios_2ghz_antenna1_rssi,omitempty"` + Radios_2GhzAntenna2Rssi *wrapperspb.FloatValue `protobuf:"bytes,102,opt,name=radios_2ghz_antenna2_rssi,json=radios2ghzAntenna2Rssi,proto3" json:"radios_2ghz_antenna2_rssi,omitempty"` + Radios_2GhzAntenna3Rssi *wrapperspb.FloatValue `protobuf:"bytes,103,opt,name=radios_2ghz_antenna3_rssi,json=radios2ghzAntenna3Rssi,proto3" json:"radios_2ghz_antenna3_rssi,omitempty"` + Radios_2GhzIfaceCount *wrapperspb.UInt32Value `protobuf:"bytes,104,opt,name=radios_2ghz_iface_count,json=radios2ghzIfaceCount,proto3" json:"radios_2ghz_iface_count,omitempty"` + Radios_2GhzChanBusyFraction *wrapperspb.FloatValue `protobuf:"bytes,105,opt,name=radios_2ghz_chan_busy_fraction,json=radios2ghzChanBusyFraction,proto3" json:"radios_2ghz_chan_busy_fraction,omitempty"` + Radios_2GhzEdccaFraction *wrapperspb.FloatValue `protobuf:"bytes,106,opt,name=radios_2ghz_edcca_fraction,json=radios2ghzEdccaFraction,proto3" json:"radios_2ghz_edcca_fraction,omitempty"` + Radios_2GhzOverlappingBssFraction *wrapperspb.FloatValue `protobuf:"bytes,107,opt,name=radios_2ghz_overlapping_bss_fraction,json=radios2ghzOverlappingBssFraction,proto3" json:"radios_2ghz_overlapping_bss_fraction,omitempty"` + Radios_2GhzRxBytes *wrapperspb.UInt32Value `protobuf:"bytes,108,opt,name=radios_2ghz_rx_bytes,json=radios2ghzRxBytes,proto3" json:"radios_2ghz_rx_bytes,omitempty"` + Radios_2GhzRxPackets *wrapperspb.UInt32Value `protobuf:"bytes,109,opt,name=radios_2ghz_rx_packets,json=radios2ghzRxPackets,proto3" json:"radios_2ghz_rx_packets,omitempty"` + Radios_2GhzRxErrors *wrapperspb.UInt32Value `protobuf:"bytes,110,opt,name=radios_2ghz_rx_errors,json=radios2ghzRxErrors,proto3" json:"radios_2ghz_rx_errors,omitempty"` + Radios_2GhzRxFrameErrors *wrapperspb.UInt32Value `protobuf:"bytes,111,opt,name=radios_2ghz_rx_frame_errors,json=radios2ghzRxFrameErrors,proto3" json:"radios_2ghz_rx_frame_errors,omitempty"` + Radios_2GhzRxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,112,opt,name=radios_2ghz_rx_packet_error_rate,json=radios2ghzRxPacketErrorRate,proto3" json:"radios_2ghz_rx_packet_error_rate,omitempty"` + Radios_2GhzRxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,113,opt,name=radios_2ghz_rx_airtime_fraction,json=radios2ghzRxAirtimeFraction,proto3" json:"radios_2ghz_rx_airtime_fraction,omitempty"` + Radios_2GhzTxBytes *wrapperspb.UInt32Value `protobuf:"bytes,114,opt,name=radios_2ghz_tx_bytes,json=radios2ghzTxBytes,proto3" json:"radios_2ghz_tx_bytes,omitempty"` + Radios_2GhzTxPackets *wrapperspb.UInt32Value `protobuf:"bytes,115,opt,name=radios_2ghz_tx_packets,json=radios2ghzTxPackets,proto3" json:"radios_2ghz_tx_packets,omitempty"` + Radios_2GhzTxErrors *wrapperspb.UInt32Value `protobuf:"bytes,116,opt,name=radios_2ghz_tx_errors,json=radios2ghzTxErrors,proto3" json:"radios_2ghz_tx_errors,omitempty"` + Radios_2GhzTxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,117,opt,name=radios_2ghz_tx_packet_error_rate,json=radios2ghzTxPacketErrorRate,proto3" json:"radios_2ghz_tx_packet_error_rate,omitempty"` + Radios_2GhzTxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,118,opt,name=radios_2ghz_tx_airtime_fraction,json=radios2ghzTxAirtimeFraction,proto3" json:"radios_2ghz_tx_airtime_fraction,omitempty"` + Radios_5GhzChannel *wrapperspb.UInt32Value `protobuf:"bytes,119,opt,name=radios_5ghz_channel,json=radios5ghzChannel,proto3" json:"radios_5ghz_channel,omitempty"` + Radios_5GhzAntenna1Rssi *wrapperspb.FloatValue `protobuf:"bytes,120,opt,name=radios_5ghz_antenna1_rssi,json=radios5ghzAntenna1Rssi,proto3" json:"radios_5ghz_antenna1_rssi,omitempty"` + Radios_5GhzAntenna2Rssi *wrapperspb.FloatValue `protobuf:"bytes,121,opt,name=radios_5ghz_antenna2_rssi,json=radios5ghzAntenna2Rssi,proto3" json:"radios_5ghz_antenna2_rssi,omitempty"` + Radios_5GhzAntenna3Rssi *wrapperspb.FloatValue `protobuf:"bytes,122,opt,name=radios_5ghz_antenna3_rssi,json=radios5ghzAntenna3Rssi,proto3" json:"radios_5ghz_antenna3_rssi,omitempty"` + Radios_5GhzIfaceCount *wrapperspb.UInt32Value `protobuf:"bytes,123,opt,name=radios_5ghz_iface_count,json=radios5ghzIfaceCount,proto3" json:"radios_5ghz_iface_count,omitempty"` + Radios_5GhzChanBusyFraction *wrapperspb.FloatValue `protobuf:"bytes,124,opt,name=radios_5ghz_chan_busy_fraction,json=radios5ghzChanBusyFraction,proto3" json:"radios_5ghz_chan_busy_fraction,omitempty"` + Radios_5GhzEdccaFraction *wrapperspb.FloatValue `protobuf:"bytes,125,opt,name=radios_5ghz_edcca_fraction,json=radios5ghzEdccaFraction,proto3" json:"radios_5ghz_edcca_fraction,omitempty"` + Radios_5GhzOverlappingBssFraction *wrapperspb.FloatValue `protobuf:"bytes,126,opt,name=radios_5ghz_overlapping_bss_fraction,json=radios5ghzOverlappingBssFraction,proto3" json:"radios_5ghz_overlapping_bss_fraction,omitempty"` + Radios_5GhzRxBytes *wrapperspb.UInt32Value `protobuf:"bytes,127,opt,name=radios_5ghz_rx_bytes,json=radios5ghzRxBytes,proto3" json:"radios_5ghz_rx_bytes,omitempty"` + Radios_5GhzRxPackets *wrapperspb.UInt32Value `protobuf:"bytes,128,opt,name=radios_5ghz_rx_packets,json=radios5ghzRxPackets,proto3" json:"radios_5ghz_rx_packets,omitempty"` + Radios_5GhzRxErrors *wrapperspb.UInt32Value `protobuf:"bytes,129,opt,name=radios_5ghz_rx_errors,json=radios5ghzRxErrors,proto3" json:"radios_5ghz_rx_errors,omitempty"` + Radios_5GhzRxFrameErrors *wrapperspb.UInt32Value `protobuf:"bytes,130,opt,name=radios_5ghz_rx_frame_errors,json=radios5ghzRxFrameErrors,proto3" json:"radios_5ghz_rx_frame_errors,omitempty"` + Radios_5GhzRxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,131,opt,name=radios_5ghz_rx_packet_error_rate,json=radios5ghzRxPacketErrorRate,proto3" json:"radios_5ghz_rx_packet_error_rate,omitempty"` + Radios_5GhzRxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,132,opt,name=radios_5ghz_rx_airtime_fraction,json=radios5ghzRxAirtimeFraction,proto3" json:"radios_5ghz_rx_airtime_fraction,omitempty"` + Radios_5GhzTxBytes *wrapperspb.UInt32Value `protobuf:"bytes,133,opt,name=radios_5ghz_tx_bytes,json=radios5ghzTxBytes,proto3" json:"radios_5ghz_tx_bytes,omitempty"` + Radios_5GhzTxPackets *wrapperspb.UInt32Value `protobuf:"bytes,134,opt,name=radios_5ghz_tx_packets,json=radios5ghzTxPackets,proto3" json:"radios_5ghz_tx_packets,omitempty"` + Radios_5GhzTxErrors *wrapperspb.UInt32Value `protobuf:"bytes,135,opt,name=radios_5ghz_tx_errors,json=radios5ghzTxErrors,proto3" json:"radios_5ghz_tx_errors,omitempty"` + Radios_5GhzTxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,136,opt,name=radios_5ghz_tx_packet_error_rate,json=radios5ghzTxPacketErrorRate,proto3" json:"radios_5ghz_tx_packet_error_rate,omitempty"` + Radios_5GhzTxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,137,opt,name=radios_5ghz_tx_airtime_fraction,json=radios5ghzTxAirtimeFraction,proto3" json:"radios_5ghz_tx_airtime_fraction,omitempty"` + Radios_2GhzThermalTemp *wrapperspb.FloatValue `protobuf:"bytes,200,opt,name=radios_2ghz_thermal_temp,json=radios2ghzThermalTemp,proto3" json:"radios_2ghz_thermal_temp,omitempty"` + Radios_5GhzThermalTemp *wrapperspb.FloatValue `protobuf:"bytes,201,opt,name=radios_5ghz_thermal_temp,json=radios5ghzThermalTemp,proto3" json:"radios_5ghz_thermal_temp,omitempty"` + Radios_2GhzThermalDutyCycle *wrapperspb.FloatValue `protobuf:"bytes,202,opt,name=radios_2ghz_thermal_duty_cycle,json=radios2ghzThermalDutyCycle,proto3" json:"radios_2ghz_thermal_duty_cycle,omitempty"` + Radios_5GhzThermalDutyCycle *wrapperspb.FloatValue `protobuf:"bytes,203,opt,name=radios_5ghz_thermal_duty_cycle,json=radios5ghzThermalDutyCycle,proto3" json:"radios_5ghz_thermal_duty_cycle,omitempty"` + Radios_2GhzThermalThrottledSeconds *wrapperspb.UInt32Value `protobuf:"bytes,204,opt,name=radios_2ghz_thermal_throttled_seconds,json=radios2ghzThermalThrottledSeconds,proto3" json:"radios_2ghz_thermal_throttled_seconds,omitempty"` + Radios_5GhzThermalThrottledSeconds *wrapperspb.UInt32Value `protobuf:"bytes,205,opt,name=radios_5ghz_thermal_throttled_seconds,json=radios5ghzThermalThrottledSeconds,proto3" json:"radios_5ghz_thermal_throttled_seconds,omitempty"` + IfacesLanEthRxBytes *wrapperspb.UInt32Value `protobuf:"bytes,300,opt,name=ifaces_lan_eth_rx_bytes,json=ifacesLanEthRxBytes,proto3" json:"ifaces_lan_eth_rx_bytes,omitempty"` + IfacesLanEthRxPackets *wrapperspb.UInt32Value `protobuf:"bytes,301,opt,name=ifaces_lan_eth_rx_packets,json=ifacesLanEthRxPackets,proto3" json:"ifaces_lan_eth_rx_packets,omitempty"` + IfacesLanEthRxErrors *wrapperspb.UInt32Value `protobuf:"bytes,302,opt,name=ifaces_lan_eth_rx_errors,json=ifacesLanEthRxErrors,proto3" json:"ifaces_lan_eth_rx_errors,omitempty"` + IfacesLanEthRxFrameErrors *wrapperspb.UInt32Value `protobuf:"bytes,303,opt,name=ifaces_lan_eth_rx_frame_errors,json=ifacesLanEthRxFrameErrors,proto3" json:"ifaces_lan_eth_rx_frame_errors,omitempty"` + IfacesLanEthTxBytes *wrapperspb.UInt32Value `protobuf:"bytes,304,opt,name=ifaces_lan_eth_tx_bytes,json=ifacesLanEthTxBytes,proto3" json:"ifaces_lan_eth_tx_bytes,omitempty"` + IfacesLanEthTxPackets *wrapperspb.UInt32Value `protobuf:"bytes,305,opt,name=ifaces_lan_eth_tx_packets,json=ifacesLanEthTxPackets,proto3" json:"ifaces_lan_eth_tx_packets,omitempty"` + IfacesLanEthTxErrors *wrapperspb.UInt32Value `protobuf:"bytes,306,opt,name=ifaces_lan_eth_tx_errors,json=ifacesLanEthTxErrors,proto3" json:"ifaces_lan_eth_tx_errors,omitempty"` + IfacesWanEthRxBytes *wrapperspb.UInt32Value `protobuf:"bytes,307,opt,name=ifaces_wan_eth_rx_bytes,json=ifacesWanEthRxBytes,proto3" json:"ifaces_wan_eth_rx_bytes,omitempty"` + IfacesWanEthRxPackets *wrapperspb.UInt32Value `protobuf:"bytes,308,opt,name=ifaces_wan_eth_rx_packets,json=ifacesWanEthRxPackets,proto3" json:"ifaces_wan_eth_rx_packets,omitempty"` + IfacesWanEthRxErrors *wrapperspb.UInt32Value `protobuf:"bytes,309,opt,name=ifaces_wan_eth_rx_errors,json=ifacesWanEthRxErrors,proto3" json:"ifaces_wan_eth_rx_errors,omitempty"` + IfacesWanEthRxFrameErrors *wrapperspb.UInt32Value `protobuf:"bytes,310,opt,name=ifaces_wan_eth_rx_frame_errors,json=ifacesWanEthRxFrameErrors,proto3" json:"ifaces_wan_eth_rx_frame_errors,omitempty"` + IfacesWanEthTxBytes *wrapperspb.UInt32Value `protobuf:"bytes,311,opt,name=ifaces_wan_eth_tx_bytes,json=ifacesWanEthTxBytes,proto3" json:"ifaces_wan_eth_tx_bytes,omitempty"` + IfacesWanEthTxPackets *wrapperspb.UInt32Value `protobuf:"bytes,312,opt,name=ifaces_wan_eth_tx_packets,json=ifacesWanEthTxPackets,proto3" json:"ifaces_wan_eth_tx_packets,omitempty"` + IfacesWanEthTxErrors *wrapperspb.UInt32Value `protobuf:"bytes,313,opt,name=ifaces_wan_eth_tx_errors,json=ifacesWanEthTxErrors,proto3" json:"ifaces_wan_eth_tx_errors,omitempty"` + Clients *wrapperspb.UInt32Value `protobuf:"bytes,400,opt,name=clients,proto3" json:"clients,omitempty"` + Clients_2Ghz *wrapperspb.UInt32Value `protobuf:"bytes,401,opt,name=clients_2ghz,json=clients2ghz,proto3" json:"clients_2ghz,omitempty"` + Clients_5Ghz *wrapperspb.UInt32Value `protobuf:"bytes,402,opt,name=clients_5ghz,json=clients5ghz,proto3" json:"clients_5ghz,omitempty"` + ClientsEth *wrapperspb.UInt32Value `protobuf:"bytes,403,opt,name=clients_eth,json=clientsEth,proto3" json:"clients_eth,omitempty"` + ClientsRepeater *wrapperspb.UInt32Value `protobuf:"bytes,404,opt,name=clients_repeater,json=clientsRepeater,proto3" json:"clients_repeater,omitempty"` + ClientsRepeater_2Ghz *wrapperspb.UInt32Value `protobuf:"bytes,405,opt,name=clients_repeater_2ghz,json=clientsRepeater2ghz,proto3" json:"clients_repeater_2ghz,omitempty"` + ClientsRepeater_5Ghz *wrapperspb.UInt32Value `protobuf:"bytes,406,opt,name=clients_repeater_5ghz,json=clientsRepeater5ghz,proto3" json:"clients_repeater_5ghz,omitempty"` + ClientsRepeaterEth *wrapperspb.UInt32Value `protobuf:"bytes,407,opt,name=clients_repeater_eth,json=clientsRepeaterEth,proto3" json:"clients_repeater_eth,omitempty"` + MeshHops *wrapperspb.UInt32Value `protobuf:"bytes,408,opt,name=mesh_hops,json=meshHops,proto3" json:"mesh_hops,omitempty"` + MeshOneHopRssiAvg_2Ghz *wrapperspb.FloatValue `protobuf:"bytes,409,opt,name=mesh_one_hop_rssi_avg_2ghz,json=meshOneHopRssiAvg2ghz,proto3" json:"mesh_one_hop_rssi_avg_2ghz,omitempty"` + MeshOneHopRssiAvg_5Ghz *wrapperspb.FloatValue `protobuf:"bytes,410,opt,name=mesh_one_hop_rssi_avg_5ghz,json=meshOneHopRssiAvg5ghz,proto3" json:"mesh_one_hop_rssi_avg_5ghz,omitempty"` + MeshTwoHopRssiAvg_2Ghz *wrapperspb.FloatValue `protobuf:"bytes,411,opt,name=mesh_two_hop_rssi_avg_2ghz,json=meshTwoHopRssiAvg2ghz,proto3" json:"mesh_two_hop_rssi_avg_2ghz,omitempty"` + MeshTwoHopRssiAvg_5Ghz *wrapperspb.FloatValue `protobuf:"bytes,412,opt,name=mesh_two_hop_rssi_avg_5ghz,json=meshTwoHopRssiAvg5ghz,proto3" json:"mesh_two_hop_rssi_avg_5ghz,omitempty"` + PingSecondsSinceLast_1SOutage *wrapperspb.FloatValue `protobuf:"bytes,600,opt,name=ping_seconds_since_last_1s_outage,json=pingSecondsSinceLast1sOutage,proto3" json:"ping_seconds_since_last_1s_outage,omitempty"` + PingSecondsSinceLast_2SOutage *wrapperspb.FloatValue `protobuf:"bytes,601,opt,name=ping_seconds_since_last_2s_outage,json=pingSecondsSinceLast2sOutage,proto3" json:"ping_seconds_since_last_2s_outage,omitempty"` + PingSecondsSinceLast_5SOutage *wrapperspb.FloatValue `protobuf:"bytes,602,opt,name=ping_seconds_since_last_5s_outage,json=pingSecondsSinceLast5sOutage,proto3" json:"ping_seconds_since_last_5s_outage,omitempty"` + PingSecondsSinceLast_60SOutage *wrapperspb.FloatValue `protobuf:"bytes,603,opt,name=ping_seconds_since_last_60s_outage,json=pingSecondsSinceLast60sOutage,proto3" json:"ping_seconds_since_last_60s_outage,omitempty"` + PingSecondsSinceLast_300SOutage *wrapperspb.FloatValue `protobuf:"bytes,604,opt,name=ping_seconds_since_last_300s_outage,json=pingSecondsSinceLast300sOutage,proto3" json:"ping_seconds_since_last_300s_outage,omitempty"` + PingDropRate *wrapperspb.FloatValue `protobuf:"bytes,605,opt,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` + PingDropRateLast_1H *wrapperspb.FloatValue `protobuf:"bytes,606,opt,name=ping_drop_rate_last_1h,json=pingDropRateLast1h,proto3" json:"ping_drop_rate_last_1h,omitempty"` + PingLatency *wrapperspb.FloatValue `protobuf:"bytes,607,opt,name=ping_latency,json=pingLatency,proto3" json:"ping_latency,omitempty"` + PingDishSecondsSinceLast_1SOutage *wrapperspb.FloatValue `protobuf:"bytes,610,opt,name=ping_dish_seconds_since_last_1s_outage,json=pingDishSecondsSinceLast1sOutage,proto3" json:"ping_dish_seconds_since_last_1s_outage,omitempty"` + PingDishSecondsSinceLast_2SOutage *wrapperspb.FloatValue `protobuf:"bytes,611,opt,name=ping_dish_seconds_since_last_2s_outage,json=pingDishSecondsSinceLast2sOutage,proto3" json:"ping_dish_seconds_since_last_2s_outage,omitempty"` + PingDishSecondsSinceLast_5SOutage *wrapperspb.FloatValue `protobuf:"bytes,612,opt,name=ping_dish_seconds_since_last_5s_outage,json=pingDishSecondsSinceLast5sOutage,proto3" json:"ping_dish_seconds_since_last_5s_outage,omitempty"` + PingDishSecondsSinceLast_60SOutage *wrapperspb.FloatValue `protobuf:"bytes,613,opt,name=ping_dish_seconds_since_last_60s_outage,json=pingDishSecondsSinceLast60sOutage,proto3" json:"ping_dish_seconds_since_last_60s_outage,omitempty"` + PingDishSecondsSinceLast_300SOutage *wrapperspb.FloatValue `protobuf:"bytes,614,opt,name=ping_dish_seconds_since_last_300s_outage,json=pingDishSecondsSinceLast300sOutage,proto3" json:"ping_dish_seconds_since_last_300s_outage,omitempty"` + PingDishDropRate *wrapperspb.FloatValue `protobuf:"bytes,615,opt,name=ping_dish_drop_rate,json=pingDishDropRate,proto3" json:"ping_dish_drop_rate,omitempty"` + PingDishDropRateLast_1H *wrapperspb.FloatValue `protobuf:"bytes,616,opt,name=ping_dish_drop_rate_last_1h,json=pingDishDropRateLast1h,proto3" json:"ping_dish_drop_rate_last_1h,omitempty"` + PingDishLatency *wrapperspb.FloatValue `protobuf:"bytes,617,opt,name=ping_dish_latency,json=pingDishLatency,proto3" json:"ping_dish_latency,omitempty"` + ClientSpeedtestRouterDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,700,opt,name=client_speedtest_router_download_mbps,json=clientSpeedtestRouterDownloadMbps,proto3" json:"client_speedtest_router_download_mbps,omitempty"` + ClientSpeedtestRouterUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,701,opt,name=client_speedtest_router_upload_mbps,json=clientSpeedtestRouterUploadMbps,proto3" json:"client_speedtest_router_upload_mbps,omitempty"` + ClientSpeedtestRouterRssi *wrapperspb.FloatValue `protobuf:"bytes,702,opt,name=client_speedtest_router_rssi,json=clientSpeedtestRouterRssi,proto3" json:"client_speedtest_router_rssi,omitempty"` + ClientSpeedtestWifiDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,703,opt,name=client_speedtest_wifi_download_mbps,json=clientSpeedtestWifiDownloadMbps,proto3" json:"client_speedtest_wifi_download_mbps,omitempty"` + ClientSpeedtestWifiUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,704,opt,name=client_speedtest_wifi_upload_mbps,json=clientSpeedtestWifiUploadMbps,proto3" json:"client_speedtest_wifi_upload_mbps,omitempty"` + ClientSpeedtestClientDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,705,opt,name=client_speedtest_client_download_mbps,json=clientSpeedtestClientDownloadMbps,proto3" json:"client_speedtest_client_download_mbps,omitempty"` + ClientSpeedtestClientUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,706,opt,name=client_speedtest_client_upload_mbps,json=clientSpeedtestClientUploadMbps,proto3" json:"client_speedtest_client_upload_mbps,omitempty"` + ClientSpeedtestClientRssi *wrapperspb.FloatValue `protobuf:"bytes,707,opt,name=client_speedtest_client_rssi,json=clientSpeedtestClientRssi,proto3" json:"client_speedtest_client_rssi,omitempty"` + ClientSpeedtestClientIface *wrapperspb.UInt32Value `protobuf:"bytes,708,opt,name=client_speedtest_client_iface,json=clientSpeedtestClientIface,proto3" json:"client_speedtest_client_iface,omitempty"` + ClientSpeedtestClientOui *wrapperspb.StringValue `protobuf:"bytes,709,opt,name=client_speedtest_client_oui,json=clientSpeedtestClientOui,proto3" json:"client_speedtest_client_oui,omitempty"` + ClientSpeedtestClientTxRate *wrapperspb.UInt32Value `protobuf:"bytes,710,opt,name=client_speedtest_client_tx_rate,json=clientSpeedtestClientTxRate,proto3" json:"client_speedtest_client_tx_rate,omitempty"` + ClientSpeedtestClientRxRate *wrapperspb.UInt32Value `protobuf:"bytes,711,opt,name=client_speedtest_client_rx_rate,json=clientSpeedtestClientRxRate,proto3" json:"client_speedtest_client_rx_rate,omitempty"` + ClientSpeedtestClientPlatformType *wrapperspb.UInt32Value `protobuf:"bytes,712,opt,name=client_speedtest_client_platform_type,json=clientSpeedtestClientPlatformType,proto3" json:"client_speedtest_client_platform_type,omitempty"` + SpeedtestTcp_8DownloadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,800,opt,name=speedtest_tcp_8_download_mbps_avg,json=speedtestTcp8DownloadMbpsAvg,proto3" json:"speedtest_tcp_8_download_mbps_avg,omitempty"` + SpeedtestTcp_8DownloadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,801,opt,name=speedtest_tcp_8_download_mbps_max,json=speedtestTcp8DownloadMbpsMax,proto3" json:"speedtest_tcp_8_download_mbps_max,omitempty"` + SpeedtestTcp_8UploadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,802,opt,name=speedtest_tcp_8_upload_mbps_avg,json=speedtestTcp8UploadMbpsAvg,proto3" json:"speedtest_tcp_8_upload_mbps_avg,omitempty"` + SpeedtestTcp_8UploadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,803,opt,name=speedtest_tcp_8_upload_mbps_max,json=speedtestTcp8UploadMbpsMax,proto3" json:"speedtest_tcp_8_upload_mbps_max,omitempty"` + SpeedtestTcp_64DownloadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,804,opt,name=speedtest_tcp_64_download_mbps_avg,json=speedtestTcp64DownloadMbpsAvg,proto3" json:"speedtest_tcp_64_download_mbps_avg,omitempty"` + SpeedtestTcp_64DownloadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,805,opt,name=speedtest_tcp_64_download_mbps_max,json=speedtestTcp64DownloadMbpsMax,proto3" json:"speedtest_tcp_64_download_mbps_max,omitempty"` + SpeedtestTcp_64UploadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,806,opt,name=speedtest_tcp_64_upload_mbps_avg,json=speedtestTcp64UploadMbpsAvg,proto3" json:"speedtest_tcp_64_upload_mbps_avg,omitempty"` + SpeedtestTcp_64UploadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,807,opt,name=speedtest_tcp_64_upload_mbps_max,json=speedtestTcp64UploadMbpsMax,proto3" json:"speedtest_tcp_64_upload_mbps_max,omitempty"` + DishCellId *wrapperspb.UInt32Value `protobuf:"bytes,900,opt,name=dish_cell_id,json=dishCellId,proto3" json:"dish_cell_id,omitempty"` + ConfigSetupComplete *wrapperspb.BoolValue `protobuf:"bytes,1000,opt,name=config_setup_complete,json=configSetupComplete,proto3" json:"config_setup_complete,omitempty"` + ConfigBandsSplit *wrapperspb.BoolValue `protobuf:"bytes,1001,opt,name=config_bands_split,json=configBandsSplit,proto3" json:"config_bands_split,omitempty"` + ConfigIsRepeater *wrapperspb.BoolValue `protobuf:"bytes,1002,opt,name=config_is_repeater,json=configIsRepeater,proto3" json:"config_is_repeater,omitempty"` + ConfigOpenNetwork *wrapperspb.BoolValue `protobuf:"bytes,1003,opt,name=config_open_network,json=configOpenNetwork,proto3" json:"config_open_network,omitempty"` + ConfigIsAviation *wrapperspb.BoolValue `protobuf:"bytes,1004,opt,name=config_is_aviation,json=configIsAviation,proto3" json:"config_is_aviation,omitempty"` + ConfigSecureDns *wrapperspb.BoolValue `protobuf:"bytes,1005,opt,name=config_secure_dns,json=configSecureDns,proto3" json:"config_secure_dns,omitempty"` + ConfigLegacy *wrapperspb.BoolValue `protobuf:"bytes,1006,opt,name=config_legacy,json=configLegacy,proto3" json:"config_legacy,omitempty"` + ConfigApMode *wrapperspb.BoolValue `protobuf:"bytes,1007,opt,name=config_ap_mode,json=configApMode,proto3" json:"config_ap_mode,omitempty"` + ConfigDfsEnabled *wrapperspb.BoolValue `protobuf:"bytes,1008,opt,name=config_dfs_enabled,json=configDfsEnabled,proto3" json:"config_dfs_enabled,omitempty"` + ConfigNetworkNameIsDefault *wrapperspb.BoolValue `protobuf:"bytes,1009,opt,name=config_network_name_is_default,json=configNetworkNameIsDefault,proto3" json:"config_network_name_is_default,omitempty"` + ConfigRemoteSshEnabled *wrapperspb.BoolValue `protobuf:"bytes,1010,opt,name=config_remote_ssh_enabled,json=configRemoteSshEnabled,proto3" json:"config_remote_ssh_enabled,omitempty"` +} + +func (x *StarlinkRouterHourlyMetricsV2) Reset() { + *x = StarlinkRouterHourlyMetricsV2{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StarlinkRouterHourlyMetricsV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StarlinkRouterHourlyMetricsV2) ProtoMessage() {} + +func (x *StarlinkRouterHourlyMetricsV2) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[37] + 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 StarlinkRouterHourlyMetricsV2.ProtoReflect.Descriptor instead. +func (*StarlinkRouterHourlyMetricsV2) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{37} +} + +func (x *StarlinkRouterHourlyMetricsV2) GetId() *wrapperspb.StringValue { + if x != nil { + return x.Id + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetTimestampDate() *wrapperspb.StringValue { + if x != nil { + return x.TimestampDate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetTimestampHour() *wrapperspb.UInt32Value { + if x != nil { + return x.TimestampHour + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysHwGen() *wrapperspb.UInt32Value { + if x != nil { + return x.SysHwGen + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysSw() *wrapperspb.StringValue { + if x != nil { + return x.SysSw + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysCountry() *wrapperspb.StringValue { + if x != nil { + return x.SysCountry + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysIsDev() *wrapperspb.BoolValue { + if x != nil { + return x.SysIsDev + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysAllocFds() *wrapperspb.UInt32Value { + if x != nil { + return x.SysAllocFds + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysCpuUsage() *wrapperspb.FloatValue { + if x != nil { + return x.SysCpuUsage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysMemFreeKb() *wrapperspb.FloatValue { + if x != nil { + return x.SysMemFreeKb + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysBootcount() *wrapperspb.Int32Value { + if x != nil { + return x.SysBootcount + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysPartitionsEqual() *wrapperspb.BoolValue { + if x != nil { + return x.SysPartitionsEqual + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysUptimeSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.SysUptimeSeconds + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSysAntiRollbackVersion() *wrapperspb.Int32Value { + if x != nil { + return x.SysAntiRollbackVersion + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzChannel() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzChannel + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzAntenna1Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna1Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzAntenna2Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna2Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzAntenna3Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna3Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzIfaceCount() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzIfaceCount + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzChanBusyFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzChanBusyFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzEdccaFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzEdccaFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzOverlappingBssFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzOverlappingBssFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzRxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzRxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzRxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxFrameErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzRxFrameErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzRxPacketErrorRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzRxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzRxAirtimeFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzTxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzTxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzTxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzTxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzTxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzTxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzTxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzTxPacketErrorRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzTxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzTxAirtimeFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzChannel() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzChannel + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzAntenna1Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna1Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzAntenna2Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna2Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzAntenna3Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna3Rssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzIfaceCount() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzIfaceCount + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzChanBusyFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzChanBusyFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzEdccaFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzEdccaFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzOverlappingBssFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzOverlappingBssFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzRxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzRxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzRxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxFrameErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzRxFrameErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzRxPacketErrorRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzRxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzRxAirtimeFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzTxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzTxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzTxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzTxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzTxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzTxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzTxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzTxPacketErrorRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzTxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzTxAirtimeFraction + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzThermalTemp() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzThermalTemp + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzThermalTemp() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzThermalTemp + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzThermalDutyCycle() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzThermalDutyCycle + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzThermalDutyCycle() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzThermalDutyCycle + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_2GhzThermalThrottledSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzThermalThrottledSeconds + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetRadios_5GhzThermalThrottledSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzThermalThrottledSeconds + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthRxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthRxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthRxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthRxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthRxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthRxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthRxFrameErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthRxFrameErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthTxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthTxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthTxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthTxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesLanEthTxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesLanEthTxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthRxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthRxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthRxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthRxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthRxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthRxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthRxFrameErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthRxFrameErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthTxBytes() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthTxBytes + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthTxPackets() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthTxPackets + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetIfacesWanEthTxErrors() *wrapperspb.UInt32Value { + if x != nil { + return x.IfacesWanEthTxErrors + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClients() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClients_2Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients_2Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClients_5Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients_5Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientsEth() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsEth + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientsRepeater() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientsRepeater_2Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater_2Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientsRepeater_5Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater_5Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientsRepeaterEth() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeaterEth + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetMeshHops() *wrapperspb.UInt32Value { + if x != nil { + return x.MeshHops + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetMeshOneHopRssiAvg_2Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshOneHopRssiAvg_2Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetMeshOneHopRssiAvg_5Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshOneHopRssiAvg_5Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetMeshTwoHopRssiAvg_2Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshTwoHopRssiAvg_2Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetMeshTwoHopRssiAvg_5Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshTwoHopRssiAvg_5Ghz + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingSecondsSinceLast_1SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_1SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingSecondsSinceLast_2SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_2SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingSecondsSinceLast_5SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_5SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingSecondsSinceLast_60SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_60SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingSecondsSinceLast_300SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_300SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDropRate() *wrapperspb.FloatValue { + if x != nil { + return x.PingDropRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDropRateLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingDropRateLast_1H + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingLatency() *wrapperspb.FloatValue { + if x != nil { + return x.PingLatency + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishSecondsSinceLast_1SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_1SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishSecondsSinceLast_2SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_2SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishSecondsSinceLast_5SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_5SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishSecondsSinceLast_60SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_60SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishSecondsSinceLast_300SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_300SOutage + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishDropRate() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishDropRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishDropRateLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishDropRateLast_1H + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetPingDishLatency() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishLatency + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestRouterDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterDownloadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestRouterUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterUploadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestRouterRssi() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterRssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestWifiDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestWifiDownloadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestWifiUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestWifiUploadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientDownloadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientUploadMbps + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientRssi() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientRssi + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientIface() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientIface + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientOui() *wrapperspb.StringValue { + if x != nil { + return x.ClientSpeedtestClientOui + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientTxRate() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientTxRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientRxRate() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientRxRate + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetClientSpeedtestClientPlatformType() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientPlatformType + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_8DownloadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8DownloadMbpsAvg + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_8DownloadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8DownloadMbpsMax + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_8UploadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8UploadMbpsAvg + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_8UploadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8UploadMbpsMax + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_64DownloadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64DownloadMbpsAvg + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_64DownloadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64DownloadMbpsMax + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_64UploadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64UploadMbpsAvg + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetSpeedtestTcp_64UploadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64UploadMbpsMax + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetDishCellId() *wrapperspb.UInt32Value { + if x != nil { + return x.DishCellId + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigSetupComplete() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigSetupComplete + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigBandsSplit() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigBandsSplit + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigIsRepeater() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigIsRepeater + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigOpenNetwork() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigOpenNetwork + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigIsAviation() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigIsAviation + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigSecureDns() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigSecureDns + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigLegacy() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigLegacy + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigApMode() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigApMode + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigDfsEnabled() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigDfsEnabled + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigNetworkNameIsDefault() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigNetworkNameIsDefault + } + return nil +} + +func (x *StarlinkRouterHourlyMetricsV2) GetConfigRemoteSshEnabled() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigRemoteSshEnabled + } + return nil +} + +type StarlinkRoutersHourlyMetricsV2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Id *wrapperspb.StringValue `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + TimestampDate *wrapperspb.StringValue `protobuf:"bytes,2,opt,name=timestamp_date,json=timestampDate,proto3" json:"timestamp_date,omitempty"` + TimestampHour *wrapperspb.UInt32Value `protobuf:"bytes,3,opt,name=timestamp_hour,json=timestampHour,proto3" json:"timestamp_hour,omitempty"` + Timestamp *telemetron.TimestampInfo `protobuf:"bytes,10000,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + SysHwGen *wrapperspb.UInt32Value `protobuf:"bytes,4,opt,name=sys_hw_gen,json=sysHwGen,proto3" json:"sys_hw_gen,omitempty"` + SysSw *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=sys_sw,json=sysSw,proto3" json:"sys_sw,omitempty"` + SysCountry *wrapperspb.StringValue `protobuf:"bytes,6,opt,name=sys_country,json=sysCountry,proto3" json:"sys_country,omitempty"` + SysIsDev *wrapperspb.BoolValue `protobuf:"bytes,7,opt,name=sys_is_dev,json=sysIsDev,proto3" json:"sys_is_dev,omitempty"` + SysAllocFds *wrapperspb.UInt32Value `protobuf:"bytes,8,opt,name=sys_alloc_fds,json=sysAllocFds,proto3" json:"sys_alloc_fds,omitempty"` + SysCpuUsage *wrapperspb.FloatValue `protobuf:"bytes,9,opt,name=sys_cpu_usage,json=sysCpuUsage,proto3" json:"sys_cpu_usage,omitempty"` + SysMemFreeKb *wrapperspb.FloatValue `protobuf:"bytes,10,opt,name=sys_mem_free_kb,json=sysMemFreeKb,proto3" json:"sys_mem_free_kb,omitempty"` + SysBootcount *wrapperspb.Int32Value `protobuf:"bytes,11,opt,name=sys_bootcount,json=sysBootcount,proto3" json:"sys_bootcount,omitempty"` + SysPartitionsEqual *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=sys_partitions_equal,json=sysPartitionsEqual,proto3" json:"sys_partitions_equal,omitempty"` + SysUptimeSeconds *wrapperspb.UInt32Value `protobuf:"bytes,13,opt,name=sys_uptime_seconds,json=sysUptimeSeconds,proto3" json:"sys_uptime_seconds,omitempty"` + SysAntiRollbackVersion *wrapperspb.Int32Value `protobuf:"bytes,14,opt,name=sys_anti_rollback_version,json=sysAntiRollbackVersion,proto3" json:"sys_anti_rollback_version,omitempty"` + Radios_2GhzChannel *wrapperspb.UInt32Value `protobuf:"bytes,100,opt,name=radios_2ghz_channel,json=radios2ghzChannel,proto3" json:"radios_2ghz_channel,omitempty"` + Radios_2GhzAntenna1Rssi *wrapperspb.FloatValue `protobuf:"bytes,101,opt,name=radios_2ghz_antenna1_rssi,json=radios2ghzAntenna1Rssi,proto3" json:"radios_2ghz_antenna1_rssi,omitempty"` + Radios_2GhzAntenna2Rssi *wrapperspb.FloatValue `protobuf:"bytes,102,opt,name=radios_2ghz_antenna2_rssi,json=radios2ghzAntenna2Rssi,proto3" json:"radios_2ghz_antenna2_rssi,omitempty"` + Radios_2GhzAntenna3Rssi *wrapperspb.FloatValue `protobuf:"bytes,103,opt,name=radios_2ghz_antenna3_rssi,json=radios2ghzAntenna3Rssi,proto3" json:"radios_2ghz_antenna3_rssi,omitempty"` + Radios_2GhzIfaceCount *wrapperspb.UInt32Value `protobuf:"bytes,104,opt,name=radios_2ghz_iface_count,json=radios2ghzIfaceCount,proto3" json:"radios_2ghz_iface_count,omitempty"` + Radios_2GhzChanBusyFraction *wrapperspb.FloatValue `protobuf:"bytes,105,opt,name=radios_2ghz_chan_busy_fraction,json=radios2ghzChanBusyFraction,proto3" json:"radios_2ghz_chan_busy_fraction,omitempty"` + Radios_2GhzEdccaFraction *wrapperspb.FloatValue `protobuf:"bytes,106,opt,name=radios_2ghz_edcca_fraction,json=radios2ghzEdccaFraction,proto3" json:"radios_2ghz_edcca_fraction,omitempty"` + Radios_2GhzOverlappingBssFraction *wrapperspb.FloatValue `protobuf:"bytes,107,opt,name=radios_2ghz_overlapping_bss_fraction,json=radios2ghzOverlappingBssFraction,proto3" json:"radios_2ghz_overlapping_bss_fraction,omitempty"` + Radios_2GhzRxBytes *wrapperspb.Int64Value `protobuf:"bytes,108,opt,name=radios_2ghz_rx_bytes,json=radios2ghzRxBytes,proto3" json:"radios_2ghz_rx_bytes,omitempty"` + Radios_2GhzRxPackets *wrapperspb.Int64Value `protobuf:"bytes,109,opt,name=radios_2ghz_rx_packets,json=radios2ghzRxPackets,proto3" json:"radios_2ghz_rx_packets,omitempty"` + Radios_2GhzRxErrors *wrapperspb.Int64Value `protobuf:"bytes,110,opt,name=radios_2ghz_rx_errors,json=radios2ghzRxErrors,proto3" json:"radios_2ghz_rx_errors,omitempty"` + Radios_2GhzRxFrameErrors *wrapperspb.Int64Value `protobuf:"bytes,111,opt,name=radios_2ghz_rx_frame_errors,json=radios2ghzRxFrameErrors,proto3" json:"radios_2ghz_rx_frame_errors,omitempty"` + Radios_2GhzRxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,112,opt,name=radios_2ghz_rx_packet_error_rate,json=radios2ghzRxPacketErrorRate,proto3" json:"radios_2ghz_rx_packet_error_rate,omitempty"` + Radios_2GhzRxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,113,opt,name=radios_2ghz_rx_airtime_fraction,json=radios2ghzRxAirtimeFraction,proto3" json:"radios_2ghz_rx_airtime_fraction,omitempty"` + Radios_2GhzTxBytes *wrapperspb.Int64Value `protobuf:"bytes,114,opt,name=radios_2ghz_tx_bytes,json=radios2ghzTxBytes,proto3" json:"radios_2ghz_tx_bytes,omitempty"` + Radios_2GhzTxPackets *wrapperspb.Int64Value `protobuf:"bytes,115,opt,name=radios_2ghz_tx_packets,json=radios2ghzTxPackets,proto3" json:"radios_2ghz_tx_packets,omitempty"` + Radios_2GhzTxErrors *wrapperspb.Int64Value `protobuf:"bytes,116,opt,name=radios_2ghz_tx_errors,json=radios2ghzTxErrors,proto3" json:"radios_2ghz_tx_errors,omitempty"` + Radios_2GhzTxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,117,opt,name=radios_2ghz_tx_packet_error_rate,json=radios2ghzTxPacketErrorRate,proto3" json:"radios_2ghz_tx_packet_error_rate,omitempty"` + Radios_2GhzTxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,118,opt,name=radios_2ghz_tx_airtime_fraction,json=radios2ghzTxAirtimeFraction,proto3" json:"radios_2ghz_tx_airtime_fraction,omitempty"` + Radios_5GhzChannel *wrapperspb.UInt32Value `protobuf:"bytes,119,opt,name=radios_5ghz_channel,json=radios5ghzChannel,proto3" json:"radios_5ghz_channel,omitempty"` + Radios_5GhzAntenna1Rssi *wrapperspb.FloatValue `protobuf:"bytes,120,opt,name=radios_5ghz_antenna1_rssi,json=radios5ghzAntenna1Rssi,proto3" json:"radios_5ghz_antenna1_rssi,omitempty"` + Radios_5GhzAntenna2Rssi *wrapperspb.FloatValue `protobuf:"bytes,121,opt,name=radios_5ghz_antenna2_rssi,json=radios5ghzAntenna2Rssi,proto3" json:"radios_5ghz_antenna2_rssi,omitempty"` + Radios_5GhzAntenna3Rssi *wrapperspb.FloatValue `protobuf:"bytes,122,opt,name=radios_5ghz_antenna3_rssi,json=radios5ghzAntenna3Rssi,proto3" json:"radios_5ghz_antenna3_rssi,omitempty"` + Radios_5GhzIfaceCount *wrapperspb.UInt32Value `protobuf:"bytes,123,opt,name=radios_5ghz_iface_count,json=radios5ghzIfaceCount,proto3" json:"radios_5ghz_iface_count,omitempty"` + Radios_5GhzChanBusyFraction *wrapperspb.FloatValue `protobuf:"bytes,124,opt,name=radios_5ghz_chan_busy_fraction,json=radios5ghzChanBusyFraction,proto3" json:"radios_5ghz_chan_busy_fraction,omitempty"` + Radios_5GhzEdccaFraction *wrapperspb.FloatValue `protobuf:"bytes,125,opt,name=radios_5ghz_edcca_fraction,json=radios5ghzEdccaFraction,proto3" json:"radios_5ghz_edcca_fraction,omitempty"` + Radios_5GhzOverlappingBssFraction *wrapperspb.FloatValue `protobuf:"bytes,126,opt,name=radios_5ghz_overlapping_bss_fraction,json=radios5ghzOverlappingBssFraction,proto3" json:"radios_5ghz_overlapping_bss_fraction,omitempty"` + Radios_5GhzRxBytes *wrapperspb.Int64Value `protobuf:"bytes,127,opt,name=radios_5ghz_rx_bytes,json=radios5ghzRxBytes,proto3" json:"radios_5ghz_rx_bytes,omitempty"` + Radios_5GhzRxPackets *wrapperspb.Int64Value `protobuf:"bytes,128,opt,name=radios_5ghz_rx_packets,json=radios5ghzRxPackets,proto3" json:"radios_5ghz_rx_packets,omitempty"` + Radios_5GhzRxErrors *wrapperspb.Int64Value `protobuf:"bytes,129,opt,name=radios_5ghz_rx_errors,json=radios5ghzRxErrors,proto3" json:"radios_5ghz_rx_errors,omitempty"` + Radios_5GhzRxFrameErrors *wrapperspb.Int64Value `protobuf:"bytes,130,opt,name=radios_5ghz_rx_frame_errors,json=radios5ghzRxFrameErrors,proto3" json:"radios_5ghz_rx_frame_errors,omitempty"` + Radios_5GhzRxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,131,opt,name=radios_5ghz_rx_packet_error_rate,json=radios5ghzRxPacketErrorRate,proto3" json:"radios_5ghz_rx_packet_error_rate,omitempty"` + Radios_5GhzRxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,132,opt,name=radios_5ghz_rx_airtime_fraction,json=radios5ghzRxAirtimeFraction,proto3" json:"radios_5ghz_rx_airtime_fraction,omitempty"` + Radios_5GhzTxBytes *wrapperspb.Int64Value `protobuf:"bytes,133,opt,name=radios_5ghz_tx_bytes,json=radios5ghzTxBytes,proto3" json:"radios_5ghz_tx_bytes,omitempty"` + Radios_5GhzTxPackets *wrapperspb.Int64Value `protobuf:"bytes,134,opt,name=radios_5ghz_tx_packets,json=radios5ghzTxPackets,proto3" json:"radios_5ghz_tx_packets,omitempty"` + Radios_5GhzTxErrors *wrapperspb.Int64Value `protobuf:"bytes,135,opt,name=radios_5ghz_tx_errors,json=radios5ghzTxErrors,proto3" json:"radios_5ghz_tx_errors,omitempty"` + Radios_5GhzTxPacketErrorRate *wrapperspb.FloatValue `protobuf:"bytes,136,opt,name=radios_5ghz_tx_packet_error_rate,json=radios5ghzTxPacketErrorRate,proto3" json:"radios_5ghz_tx_packet_error_rate,omitempty"` + Radios_5GhzTxAirtimeFraction *wrapperspb.FloatValue `protobuf:"bytes,137,opt,name=radios_5ghz_tx_airtime_fraction,json=radios5ghzTxAirtimeFraction,proto3" json:"radios_5ghz_tx_airtime_fraction,omitempty"` + Radios_2GhzThermalTemp *wrapperspb.FloatValue `protobuf:"bytes,200,opt,name=radios_2ghz_thermal_temp,json=radios2ghzThermalTemp,proto3" json:"radios_2ghz_thermal_temp,omitempty"` + Radios_5GhzThermalTemp *wrapperspb.FloatValue `protobuf:"bytes,201,opt,name=radios_5ghz_thermal_temp,json=radios5ghzThermalTemp,proto3" json:"radios_5ghz_thermal_temp,omitempty"` + Radios_2GhzThermalDutyCycle *wrapperspb.FloatValue `protobuf:"bytes,202,opt,name=radios_2ghz_thermal_duty_cycle,json=radios2ghzThermalDutyCycle,proto3" json:"radios_2ghz_thermal_duty_cycle,omitempty"` + Radios_5GhzThermalDutyCycle *wrapperspb.FloatValue `protobuf:"bytes,203,opt,name=radios_5ghz_thermal_duty_cycle,json=radios5ghzThermalDutyCycle,proto3" json:"radios_5ghz_thermal_duty_cycle,omitempty"` + Radios_2GhzThermalThrottledSeconds *wrapperspb.UInt32Value `protobuf:"bytes,204,opt,name=radios_2ghz_thermal_throttled_seconds,json=radios2ghzThermalThrottledSeconds,proto3" json:"radios_2ghz_thermal_throttled_seconds,omitempty"` + Radios_5GhzThermalThrottledSeconds *wrapperspb.UInt32Value `protobuf:"bytes,205,opt,name=radios_5ghz_thermal_throttled_seconds,json=radios5ghzThermalThrottledSeconds,proto3" json:"radios_5ghz_thermal_throttled_seconds,omitempty"` + IfacesLanEthRxBytes *wrapperspb.Int64Value `protobuf:"bytes,300,opt,name=ifaces_lan_eth_rx_bytes,json=ifacesLanEthRxBytes,proto3" json:"ifaces_lan_eth_rx_bytes,omitempty"` + IfacesLanEthRxPackets *wrapperspb.Int64Value `protobuf:"bytes,301,opt,name=ifaces_lan_eth_rx_packets,json=ifacesLanEthRxPackets,proto3" json:"ifaces_lan_eth_rx_packets,omitempty"` + IfacesLanEthRxErrors *wrapperspb.Int64Value `protobuf:"bytes,302,opt,name=ifaces_lan_eth_rx_errors,json=ifacesLanEthRxErrors,proto3" json:"ifaces_lan_eth_rx_errors,omitempty"` + IfacesLanEthRxFrameErrors *wrapperspb.Int64Value `protobuf:"bytes,303,opt,name=ifaces_lan_eth_rx_frame_errors,json=ifacesLanEthRxFrameErrors,proto3" json:"ifaces_lan_eth_rx_frame_errors,omitempty"` + IfacesLanEthTxBytes *wrapperspb.Int64Value `protobuf:"bytes,304,opt,name=ifaces_lan_eth_tx_bytes,json=ifacesLanEthTxBytes,proto3" json:"ifaces_lan_eth_tx_bytes,omitempty"` + IfacesLanEthTxPackets *wrapperspb.Int64Value `protobuf:"bytes,305,opt,name=ifaces_lan_eth_tx_packets,json=ifacesLanEthTxPackets,proto3" json:"ifaces_lan_eth_tx_packets,omitempty"` + IfacesLanEthTxErrors *wrapperspb.Int64Value `protobuf:"bytes,306,opt,name=ifaces_lan_eth_tx_errors,json=ifacesLanEthTxErrors,proto3" json:"ifaces_lan_eth_tx_errors,omitempty"` + IfacesWanEthRxBytes *wrapperspb.Int64Value `protobuf:"bytes,307,opt,name=ifaces_wan_eth_rx_bytes,json=ifacesWanEthRxBytes,proto3" json:"ifaces_wan_eth_rx_bytes,omitempty"` + IfacesWanEthRxPackets *wrapperspb.Int64Value `protobuf:"bytes,308,opt,name=ifaces_wan_eth_rx_packets,json=ifacesWanEthRxPackets,proto3" json:"ifaces_wan_eth_rx_packets,omitempty"` + IfacesWanEthRxErrors *wrapperspb.Int64Value `protobuf:"bytes,309,opt,name=ifaces_wan_eth_rx_errors,json=ifacesWanEthRxErrors,proto3" json:"ifaces_wan_eth_rx_errors,omitempty"` + IfacesWanEthRxFrameErrors *wrapperspb.Int64Value `protobuf:"bytes,310,opt,name=ifaces_wan_eth_rx_frame_errors,json=ifacesWanEthRxFrameErrors,proto3" json:"ifaces_wan_eth_rx_frame_errors,omitempty"` + IfacesWanEthTxBytes *wrapperspb.Int64Value `protobuf:"bytes,311,opt,name=ifaces_wan_eth_tx_bytes,json=ifacesWanEthTxBytes,proto3" json:"ifaces_wan_eth_tx_bytes,omitempty"` + IfacesWanEthTxPackets *wrapperspb.Int64Value `protobuf:"bytes,312,opt,name=ifaces_wan_eth_tx_packets,json=ifacesWanEthTxPackets,proto3" json:"ifaces_wan_eth_tx_packets,omitempty"` + IfacesWanEthTxErrors *wrapperspb.Int64Value `protobuf:"bytes,313,opt,name=ifaces_wan_eth_tx_errors,json=ifacesWanEthTxErrors,proto3" json:"ifaces_wan_eth_tx_errors,omitempty"` + Clients *wrapperspb.UInt32Value `protobuf:"bytes,400,opt,name=clients,proto3" json:"clients,omitempty"` + Clients_2Ghz *wrapperspb.UInt32Value `protobuf:"bytes,401,opt,name=clients_2ghz,json=clients2ghz,proto3" json:"clients_2ghz,omitempty"` + Clients_5Ghz *wrapperspb.UInt32Value `protobuf:"bytes,402,opt,name=clients_5ghz,json=clients5ghz,proto3" json:"clients_5ghz,omitempty"` + ClientsEth *wrapperspb.UInt32Value `protobuf:"bytes,403,opt,name=clients_eth,json=clientsEth,proto3" json:"clients_eth,omitempty"` + ClientsRepeater *wrapperspb.UInt32Value `protobuf:"bytes,404,opt,name=clients_repeater,json=clientsRepeater,proto3" json:"clients_repeater,omitempty"` + ClientsRepeater_2Ghz *wrapperspb.UInt32Value `protobuf:"bytes,405,opt,name=clients_repeater_2ghz,json=clientsRepeater2ghz,proto3" json:"clients_repeater_2ghz,omitempty"` + ClientsRepeater_5Ghz *wrapperspb.UInt32Value `protobuf:"bytes,406,opt,name=clients_repeater_5ghz,json=clientsRepeater5ghz,proto3" json:"clients_repeater_5ghz,omitempty"` + ClientsRepeaterEth *wrapperspb.UInt32Value `protobuf:"bytes,407,opt,name=clients_repeater_eth,json=clientsRepeaterEth,proto3" json:"clients_repeater_eth,omitempty"` + MeshHops *wrapperspb.UInt32Value `protobuf:"bytes,408,opt,name=mesh_hops,json=meshHops,proto3" json:"mesh_hops,omitempty"` + MeshOneHopRssiAvg_2Ghz *wrapperspb.FloatValue `protobuf:"bytes,409,opt,name=mesh_one_hop_rssi_avg_2ghz,json=meshOneHopRssiAvg2ghz,proto3" json:"mesh_one_hop_rssi_avg_2ghz,omitempty"` + MeshOneHopRssiAvg_5Ghz *wrapperspb.FloatValue `protobuf:"bytes,410,opt,name=mesh_one_hop_rssi_avg_5ghz,json=meshOneHopRssiAvg5ghz,proto3" json:"mesh_one_hop_rssi_avg_5ghz,omitempty"` + MeshTwoHopRssiAvg_2Ghz *wrapperspb.FloatValue `protobuf:"bytes,411,opt,name=mesh_two_hop_rssi_avg_2ghz,json=meshTwoHopRssiAvg2ghz,proto3" json:"mesh_two_hop_rssi_avg_2ghz,omitempty"` + MeshTwoHopRssiAvg_5Ghz *wrapperspb.FloatValue `protobuf:"bytes,412,opt,name=mesh_two_hop_rssi_avg_5ghz,json=meshTwoHopRssiAvg5ghz,proto3" json:"mesh_two_hop_rssi_avg_5ghz,omitempty"` + PingSecondsSinceLast_1SOutage *wrapperspb.FloatValue `protobuf:"bytes,600,opt,name=ping_seconds_since_last_1s_outage,json=pingSecondsSinceLast1sOutage,proto3" json:"ping_seconds_since_last_1s_outage,omitempty"` + PingSecondsSinceLast_2SOutage *wrapperspb.FloatValue `protobuf:"bytes,601,opt,name=ping_seconds_since_last_2s_outage,json=pingSecondsSinceLast2sOutage,proto3" json:"ping_seconds_since_last_2s_outage,omitempty"` + PingSecondsSinceLast_5SOutage *wrapperspb.FloatValue `protobuf:"bytes,602,opt,name=ping_seconds_since_last_5s_outage,json=pingSecondsSinceLast5sOutage,proto3" json:"ping_seconds_since_last_5s_outage,omitempty"` + PingSecondsSinceLast_60SOutage *wrapperspb.FloatValue `protobuf:"bytes,603,opt,name=ping_seconds_since_last_60s_outage,json=pingSecondsSinceLast60sOutage,proto3" json:"ping_seconds_since_last_60s_outage,omitempty"` + PingSecondsSinceLast_300SOutage *wrapperspb.FloatValue `protobuf:"bytes,604,opt,name=ping_seconds_since_last_300s_outage,json=pingSecondsSinceLast300sOutage,proto3" json:"ping_seconds_since_last_300s_outage,omitempty"` + PingDropRate *wrapperspb.FloatValue `protobuf:"bytes,605,opt,name=ping_drop_rate,json=pingDropRate,proto3" json:"ping_drop_rate,omitempty"` + PingDropRateLast_1H *wrapperspb.FloatValue `protobuf:"bytes,606,opt,name=ping_drop_rate_last_1h,json=pingDropRateLast1h,proto3" json:"ping_drop_rate_last_1h,omitempty"` + PingLatency *wrapperspb.FloatValue `protobuf:"bytes,607,opt,name=ping_latency,json=pingLatency,proto3" json:"ping_latency,omitempty"` + PingLatencyLast_1H *wrapperspb.FloatValue `protobuf:"bytes,618,opt,name=ping_latency_last_1h,json=pingLatencyLast1h,proto3" json:"ping_latency_last_1h,omitempty"` + PingDishSecondsSinceLast_1SOutage *wrapperspb.FloatValue `protobuf:"bytes,610,opt,name=ping_dish_seconds_since_last_1s_outage,json=pingDishSecondsSinceLast1sOutage,proto3" json:"ping_dish_seconds_since_last_1s_outage,omitempty"` + PingDishSecondsSinceLast_2SOutage *wrapperspb.FloatValue `protobuf:"bytes,611,opt,name=ping_dish_seconds_since_last_2s_outage,json=pingDishSecondsSinceLast2sOutage,proto3" json:"ping_dish_seconds_since_last_2s_outage,omitempty"` + PingDishSecondsSinceLast_5SOutage *wrapperspb.FloatValue `protobuf:"bytes,612,opt,name=ping_dish_seconds_since_last_5s_outage,json=pingDishSecondsSinceLast5sOutage,proto3" json:"ping_dish_seconds_since_last_5s_outage,omitempty"` + PingDishSecondsSinceLast_60SOutage *wrapperspb.FloatValue `protobuf:"bytes,613,opt,name=ping_dish_seconds_since_last_60s_outage,json=pingDishSecondsSinceLast60sOutage,proto3" json:"ping_dish_seconds_since_last_60s_outage,omitempty"` + PingDishSecondsSinceLast_300SOutage *wrapperspb.FloatValue `protobuf:"bytes,614,opt,name=ping_dish_seconds_since_last_300s_outage,json=pingDishSecondsSinceLast300sOutage,proto3" json:"ping_dish_seconds_since_last_300s_outage,omitempty"` + PingDishDropRate *wrapperspb.FloatValue `protobuf:"bytes,615,opt,name=ping_dish_drop_rate,json=pingDishDropRate,proto3" json:"ping_dish_drop_rate,omitempty"` + PingDishDropRateLast_1H *wrapperspb.FloatValue `protobuf:"bytes,616,opt,name=ping_dish_drop_rate_last_1h,json=pingDishDropRateLast1h,proto3" json:"ping_dish_drop_rate_last_1h,omitempty"` + PingDishLatency *wrapperspb.FloatValue `protobuf:"bytes,617,opt,name=ping_dish_latency,json=pingDishLatency,proto3" json:"ping_dish_latency,omitempty"` + PingDishLatencyLast_1H *wrapperspb.FloatValue `protobuf:"bytes,619,opt,name=ping_dish_latency_last_1h,json=pingDishLatencyLast1h,proto3" json:"ping_dish_latency_last_1h,omitempty"` + ClientSpeedtestRouterDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,700,opt,name=client_speedtest_router_download_mbps,json=clientSpeedtestRouterDownloadMbps,proto3" json:"client_speedtest_router_download_mbps,omitempty"` + ClientSpeedtestRouterUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,701,opt,name=client_speedtest_router_upload_mbps,json=clientSpeedtestRouterUploadMbps,proto3" json:"client_speedtest_router_upload_mbps,omitempty"` + ClientSpeedtestRouterRssi *wrapperspb.FloatValue `protobuf:"bytes,702,opt,name=client_speedtest_router_rssi,json=clientSpeedtestRouterRssi,proto3" json:"client_speedtest_router_rssi,omitempty"` + ClientSpeedtestWifiDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,703,opt,name=client_speedtest_wifi_download_mbps,json=clientSpeedtestWifiDownloadMbps,proto3" json:"client_speedtest_wifi_download_mbps,omitempty"` + ClientSpeedtestWifiUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,704,opt,name=client_speedtest_wifi_upload_mbps,json=clientSpeedtestWifiUploadMbps,proto3" json:"client_speedtest_wifi_upload_mbps,omitempty"` + ClientSpeedtestClientDownloadMbps *wrapperspb.FloatValue `protobuf:"bytes,705,opt,name=client_speedtest_client_download_mbps,json=clientSpeedtestClientDownloadMbps,proto3" json:"client_speedtest_client_download_mbps,omitempty"` + ClientSpeedtestClientUploadMbps *wrapperspb.FloatValue `protobuf:"bytes,706,opt,name=client_speedtest_client_upload_mbps,json=clientSpeedtestClientUploadMbps,proto3" json:"client_speedtest_client_upload_mbps,omitempty"` + ClientSpeedtestClientRssi *wrapperspb.FloatValue `protobuf:"bytes,707,opt,name=client_speedtest_client_rssi,json=clientSpeedtestClientRssi,proto3" json:"client_speedtest_client_rssi,omitempty"` + ClientSpeedtestClientIface *wrapperspb.UInt32Value `protobuf:"bytes,708,opt,name=client_speedtest_client_iface,json=clientSpeedtestClientIface,proto3" json:"client_speedtest_client_iface,omitempty"` + ClientSpeedtestClientOui *wrapperspb.StringValue `protobuf:"bytes,709,opt,name=client_speedtest_client_oui,json=clientSpeedtestClientOui,proto3" json:"client_speedtest_client_oui,omitempty"` + ClientSpeedtestClientTxRate *wrapperspb.UInt32Value `protobuf:"bytes,710,opt,name=client_speedtest_client_tx_rate,json=clientSpeedtestClientTxRate,proto3" json:"client_speedtest_client_tx_rate,omitempty"` + ClientSpeedtestClientRxRate *wrapperspb.UInt32Value `protobuf:"bytes,711,opt,name=client_speedtest_client_rx_rate,json=clientSpeedtestClientRxRate,proto3" json:"client_speedtest_client_rx_rate,omitempty"` + ClientSpeedtestClientPlatformType *wrapperspb.UInt32Value `protobuf:"bytes,712,opt,name=client_speedtest_client_platform_type,json=clientSpeedtestClientPlatformType,proto3" json:"client_speedtest_client_platform_type,omitempty"` + SpeedtestTcp_8DownloadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,800,opt,name=speedtest_tcp_8_download_mbps_avg,json=speedtestTcp8DownloadMbpsAvg,proto3" json:"speedtest_tcp_8_download_mbps_avg,omitempty"` + SpeedtestTcp_8DownloadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,801,opt,name=speedtest_tcp_8_download_mbps_max,json=speedtestTcp8DownloadMbpsMax,proto3" json:"speedtest_tcp_8_download_mbps_max,omitempty"` + SpeedtestTcp_8UploadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,802,opt,name=speedtest_tcp_8_upload_mbps_avg,json=speedtestTcp8UploadMbpsAvg,proto3" json:"speedtest_tcp_8_upload_mbps_avg,omitempty"` + SpeedtestTcp_8UploadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,803,opt,name=speedtest_tcp_8_upload_mbps_max,json=speedtestTcp8UploadMbpsMax,proto3" json:"speedtest_tcp_8_upload_mbps_max,omitempty"` + SpeedtestTcp_64DownloadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,804,opt,name=speedtest_tcp_64_download_mbps_avg,json=speedtestTcp64DownloadMbpsAvg,proto3" json:"speedtest_tcp_64_download_mbps_avg,omitempty"` + SpeedtestTcp_64DownloadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,805,opt,name=speedtest_tcp_64_download_mbps_max,json=speedtestTcp64DownloadMbpsMax,proto3" json:"speedtest_tcp_64_download_mbps_max,omitempty"` + SpeedtestTcp_64UploadMbpsAvg *wrapperspb.FloatValue `protobuf:"bytes,806,opt,name=speedtest_tcp_64_upload_mbps_avg,json=speedtestTcp64UploadMbpsAvg,proto3" json:"speedtest_tcp_64_upload_mbps_avg,omitempty"` + SpeedtestTcp_64UploadMbpsMax *wrapperspb.FloatValue `protobuf:"bytes,807,opt,name=speedtest_tcp_64_upload_mbps_max,json=speedtestTcp64UploadMbpsMax,proto3" json:"speedtest_tcp_64_upload_mbps_max,omitempty"` + DishCellId *wrapperspb.UInt32Value `protobuf:"bytes,900,opt,name=dish_cell_id,json=dishCellId,proto3" json:"dish_cell_id,omitempty"` + ConfigSetupComplete *wrapperspb.BoolValue `protobuf:"bytes,1000,opt,name=config_setup_complete,json=configSetupComplete,proto3" json:"config_setup_complete,omitempty"` + ConfigBandsSplit *wrapperspb.BoolValue `protobuf:"bytes,1001,opt,name=config_bands_split,json=configBandsSplit,proto3" json:"config_bands_split,omitempty"` + ConfigIsRepeater *wrapperspb.BoolValue `protobuf:"bytes,1002,opt,name=config_is_repeater,json=configIsRepeater,proto3" json:"config_is_repeater,omitempty"` + ConfigOpenNetwork *wrapperspb.BoolValue `protobuf:"bytes,1003,opt,name=config_open_network,json=configOpenNetwork,proto3" json:"config_open_network,omitempty"` + ConfigIsAviation *wrapperspb.BoolValue `protobuf:"bytes,1004,opt,name=config_is_aviation,json=configIsAviation,proto3" json:"config_is_aviation,omitempty"` + ConfigSecureDns *wrapperspb.BoolValue `protobuf:"bytes,1005,opt,name=config_secure_dns,json=configSecureDns,proto3" json:"config_secure_dns,omitempty"` + ConfigLegacy *wrapperspb.BoolValue `protobuf:"bytes,1006,opt,name=config_legacy,json=configLegacy,proto3" json:"config_legacy,omitempty"` + ConfigApMode *wrapperspb.BoolValue `protobuf:"bytes,1007,opt,name=config_ap_mode,json=configApMode,proto3" json:"config_ap_mode,omitempty"` + ConfigDfsEnabled *wrapperspb.BoolValue `protobuf:"bytes,1008,opt,name=config_dfs_enabled,json=configDfsEnabled,proto3" json:"config_dfs_enabled,omitempty"` + ConfigNetworkNameIsDefault *wrapperspb.BoolValue `protobuf:"bytes,1009,opt,name=config_network_name_is_default,json=configNetworkNameIsDefault,proto3" json:"config_network_name_is_default,omitempty"` + ConfigRemoteSshEnabled *wrapperspb.BoolValue `protobuf:"bytes,1010,opt,name=config_remote_ssh_enabled,json=configRemoteSshEnabled,proto3" json:"config_remote_ssh_enabled,omitempty"` +} + +func (x *StarlinkRoutersHourlyMetricsV2) Reset() { + *x = StarlinkRoutersHourlyMetricsV2{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StarlinkRoutersHourlyMetricsV2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StarlinkRoutersHourlyMetricsV2) ProtoMessage() {} + +func (x *StarlinkRoutersHourlyMetricsV2) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[38] + 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 StarlinkRoutersHourlyMetricsV2.ProtoReflect.Descriptor instead. +func (*StarlinkRoutersHourlyMetricsV2) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{38} +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetId() *wrapperspb.StringValue { + if x != nil { + return x.Id + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetTimestampDate() *wrapperspb.StringValue { + if x != nil { + return x.TimestampDate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetTimestampHour() *wrapperspb.UInt32Value { + if x != nil { + return x.TimestampHour + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetTimestamp() *telemetron.TimestampInfo { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysHwGen() *wrapperspb.UInt32Value { + if x != nil { + return x.SysHwGen + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysSw() *wrapperspb.StringValue { + if x != nil { + return x.SysSw + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysCountry() *wrapperspb.StringValue { + if x != nil { + return x.SysCountry + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysIsDev() *wrapperspb.BoolValue { + if x != nil { + return x.SysIsDev + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysAllocFds() *wrapperspb.UInt32Value { + if x != nil { + return x.SysAllocFds + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysCpuUsage() *wrapperspb.FloatValue { + if x != nil { + return x.SysCpuUsage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysMemFreeKb() *wrapperspb.FloatValue { + if x != nil { + return x.SysMemFreeKb + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysBootcount() *wrapperspb.Int32Value { + if x != nil { + return x.SysBootcount + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysPartitionsEqual() *wrapperspb.BoolValue { + if x != nil { + return x.SysPartitionsEqual + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysUptimeSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.SysUptimeSeconds + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSysAntiRollbackVersion() *wrapperspb.Int32Value { + if x != nil { + return x.SysAntiRollbackVersion + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzChannel() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzChannel + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzAntenna1Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna1Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzAntenna2Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna2Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzAntenna3Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzAntenna3Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzIfaceCount() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzIfaceCount + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzChanBusyFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzChanBusyFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzEdccaFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzEdccaFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzOverlappingBssFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzOverlappingBssFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzRxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzRxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzRxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxFrameErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzRxFrameErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzRxPacketErrorRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzRxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzRxAirtimeFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzTxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzTxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzTxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzTxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzTxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_2GhzTxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzTxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzTxPacketErrorRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzTxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzTxAirtimeFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzChannel() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzChannel + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzAntenna1Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna1Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzAntenna2Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna2Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzAntenna3Rssi() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzAntenna3Rssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzIfaceCount() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzIfaceCount + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzChanBusyFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzChanBusyFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzEdccaFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzEdccaFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzOverlappingBssFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzOverlappingBssFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzRxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzRxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzRxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxFrameErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzRxFrameErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzRxPacketErrorRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzRxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzRxAirtimeFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzTxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzTxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzTxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzTxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzTxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.Radios_5GhzTxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzTxPacketErrorRate() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzTxPacketErrorRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzTxAirtimeFraction() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzTxAirtimeFraction + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzThermalTemp() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzThermalTemp + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzThermalTemp() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzThermalTemp + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzThermalDutyCycle() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_2GhzThermalDutyCycle + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzThermalDutyCycle() *wrapperspb.FloatValue { + if x != nil { + return x.Radios_5GhzThermalDutyCycle + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_2GhzThermalThrottledSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_2GhzThermalThrottledSeconds + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetRadios_5GhzThermalThrottledSeconds() *wrapperspb.UInt32Value { + if x != nil { + return x.Radios_5GhzThermalThrottledSeconds + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthRxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthRxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthRxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthRxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthRxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthRxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthRxFrameErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthRxFrameErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthTxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthTxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthTxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthTxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesLanEthTxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesLanEthTxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthRxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthRxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthRxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthRxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthRxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthRxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthRxFrameErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthRxFrameErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthTxBytes() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthTxBytes + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthTxPackets() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthTxPackets + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetIfacesWanEthTxErrors() *wrapperspb.Int64Value { + if x != nil { + return x.IfacesWanEthTxErrors + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClients() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClients_2Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients_2Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClients_5Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.Clients_5Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientsEth() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsEth + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientsRepeater() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientsRepeater_2Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater_2Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientsRepeater_5Ghz() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeater_5Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientsRepeaterEth() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientsRepeaterEth + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetMeshHops() *wrapperspb.UInt32Value { + if x != nil { + return x.MeshHops + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetMeshOneHopRssiAvg_2Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshOneHopRssiAvg_2Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetMeshOneHopRssiAvg_5Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshOneHopRssiAvg_5Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetMeshTwoHopRssiAvg_2Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshTwoHopRssiAvg_2Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetMeshTwoHopRssiAvg_5Ghz() *wrapperspb.FloatValue { + if x != nil { + return x.MeshTwoHopRssiAvg_5Ghz + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingSecondsSinceLast_1SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_1SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingSecondsSinceLast_2SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_2SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingSecondsSinceLast_5SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_5SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingSecondsSinceLast_60SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_60SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingSecondsSinceLast_300SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingSecondsSinceLast_300SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDropRate() *wrapperspb.FloatValue { + if x != nil { + return x.PingDropRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDropRateLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingDropRateLast_1H + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingLatency() *wrapperspb.FloatValue { + if x != nil { + return x.PingLatency + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingLatencyLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingLatencyLast_1H + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishSecondsSinceLast_1SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_1SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishSecondsSinceLast_2SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_2SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishSecondsSinceLast_5SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_5SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishSecondsSinceLast_60SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_60SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishSecondsSinceLast_300SOutage() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishSecondsSinceLast_300SOutage + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishDropRate() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishDropRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishDropRateLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishDropRateLast_1H + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishLatency() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishLatency + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetPingDishLatencyLast_1H() *wrapperspb.FloatValue { + if x != nil { + return x.PingDishLatencyLast_1H + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestRouterDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterDownloadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestRouterUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterUploadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestRouterRssi() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestRouterRssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestWifiDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestWifiDownloadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestWifiUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestWifiUploadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientDownloadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientDownloadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientUploadMbps() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientUploadMbps + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientRssi() *wrapperspb.FloatValue { + if x != nil { + return x.ClientSpeedtestClientRssi + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientIface() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientIface + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientOui() *wrapperspb.StringValue { + if x != nil { + return x.ClientSpeedtestClientOui + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientTxRate() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientTxRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientRxRate() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientRxRate + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetClientSpeedtestClientPlatformType() *wrapperspb.UInt32Value { + if x != nil { + return x.ClientSpeedtestClientPlatformType + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_8DownloadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8DownloadMbpsAvg + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_8DownloadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8DownloadMbpsMax + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_8UploadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8UploadMbpsAvg + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_8UploadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_8UploadMbpsMax + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_64DownloadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64DownloadMbpsAvg + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_64DownloadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64DownloadMbpsMax + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_64UploadMbpsAvg() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64UploadMbpsAvg + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetSpeedtestTcp_64UploadMbpsMax() *wrapperspb.FloatValue { + if x != nil { + return x.SpeedtestTcp_64UploadMbpsMax + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetDishCellId() *wrapperspb.UInt32Value { + if x != nil { + return x.DishCellId + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigSetupComplete() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigSetupComplete + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigBandsSplit() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigBandsSplit + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigIsRepeater() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigIsRepeater + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigOpenNetwork() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigOpenNetwork + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigIsAviation() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigIsAviation + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigSecureDns() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigSecureDns + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigLegacy() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigLegacy + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigApMode() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigApMode + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigDfsEnabled() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigDfsEnabled + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigNetworkNameIsDefault() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigNetworkNameIsDefault + } + return nil +} + +func (x *StarlinkRoutersHourlyMetricsV2) GetConfigRemoteSshEnabled() *wrapperspb.BoolValue { + if x != nil { + return x.ConfigRemoteSshEnabled + } + return nil +} + +type StarlinkRouterAlerts struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Source string `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty"` + Active bool `protobuf:"varint,3,opt,name=active,proto3" json:"active,omitempty"` + Start *telemetron.TimestampInfo `protobuf:"bytes,4,opt,name=start,proto3" json:"start,omitempty"` + End *telemetron.TimestampInfo `protobuf:"bytes,5,opt,name=end,proto3" json:"end,omitempty"` +} + +func (x *StarlinkRouterAlerts) Reset() { + *x = StarlinkRouterAlerts{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StarlinkRouterAlerts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StarlinkRouterAlerts) ProtoMessage() {} + +func (x *StarlinkRouterAlerts) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[39] + 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 StarlinkRouterAlerts.ProtoReflect.Descriptor instead. +func (*StarlinkRouterAlerts) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{39} +} + +func (x *StarlinkRouterAlerts) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *StarlinkRouterAlerts) GetSource() string { + if x != nil { + return x.Source + } + return "" +} + +func (x *StarlinkRouterAlerts) GetActive() bool { + if x != nil { + return x.Active + } + return false +} + +func (x *StarlinkRouterAlerts) GetStart() *telemetron.TimestampInfo { + if x != nil { + return x.Start + } + return nil +} + +func (x *StarlinkRouterAlerts) GetEnd() *telemetron.TimestampInfo { + if x != nil { + return x.End + } + return nil +} + +type WifiClient_RxStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bytes uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"` + CountErrors uint64 `protobuf:"varint,2,opt,name=count_errors,json=countErrors,proto3" json:"count_errors,omitempty"` + Nss int32 `protobuf:"varint,3,opt,name=nss,proto3" json:"nss,omitempty"` + RateMbps uint32 `protobuf:"varint,8,opt,name=rate_mbps,json=rateMbps,proto3" json:"rate_mbps,omitempty"` + Mcs uint32 `protobuf:"varint,5,opt,name=mcs,proto3" json:"mcs,omitempty"` + Bandwidth uint32 `protobuf:"varint,6,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` + GuardNs uint32 `protobuf:"varint,7,opt,name=guard_ns,json=guardNs,proto3" json:"guard_ns,omitempty"` + AirtimeFractionLast_1S float32 `protobuf:"fixed32,9,opt,name=airtime_fraction_last_1s,json=airtimeFractionLast1s,proto3" json:"airtime_fraction_last_1s,omitempty"` + SampledPackets uint32 `protobuf:"varint,10,opt,name=sampled_packets,json=sampledPackets,proto3" json:"sampled_packets,omitempty"` + SampledPacketsRetried uint32 `protobuf:"varint,11,opt,name=sampled_packets_retried,json=sampledPacketsRetried,proto3" json:"sampled_packets_retried,omitempty"` + SampledPacketsDropped uint32 `protobuf:"varint,12,opt,name=sampled_packets_dropped,json=sampledPacketsDropped,proto3" json:"sampled_packets_dropped,omitempty"` +} + +func (x *WifiClient_RxStats) Reset() { + *x = WifiClient_RxStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiClient_RxStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiClient_RxStats) ProtoMessage() {} + +func (x *WifiClient_RxStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[40] + 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 WifiClient_RxStats.ProtoReflect.Descriptor instead. +func (*WifiClient_RxStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *WifiClient_RxStats) GetBytes() uint64 { + if x != nil { + return x.Bytes + } + return 0 +} + +func (x *WifiClient_RxStats) GetCountErrors() uint64 { + if x != nil { + return x.CountErrors + } + return 0 +} + +func (x *WifiClient_RxStats) GetNss() int32 { + if x != nil { + return x.Nss + } + return 0 +} + +func (x *WifiClient_RxStats) GetRateMbps() uint32 { + if x != nil { + return x.RateMbps + } + return 0 +} + +func (x *WifiClient_RxStats) GetMcs() uint32 { + if x != nil { + return x.Mcs + } + return 0 +} + +func (x *WifiClient_RxStats) GetBandwidth() uint32 { + if x != nil { + return x.Bandwidth + } + return 0 +} + +func (x *WifiClient_RxStats) GetGuardNs() uint32 { + if x != nil { + return x.GuardNs + } + return 0 +} + +func (x *WifiClient_RxStats) GetAirtimeFractionLast_1S() float32 { + if x != nil { + return x.AirtimeFractionLast_1S + } + return 0 +} + +func (x *WifiClient_RxStats) GetSampledPackets() uint32 { + if x != nil { + return x.SampledPackets + } + return 0 +} + +func (x *WifiClient_RxStats) GetSampledPacketsRetried() uint32 { + if x != nil { + return x.SampledPacketsRetried + } + return 0 +} + +func (x *WifiClient_RxStats) GetSampledPacketsDropped() uint32 { + if x != nil { + return x.SampledPacketsDropped + } + return 0 +} + +type WifiClient_TxStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bytes uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"` + SuccessBytes uint64 `protobuf:"varint,2,opt,name=success_bytes,json=successBytes,proto3" json:"success_bytes,omitempty"` + Nss int32 `protobuf:"varint,3,opt,name=nss,proto3" json:"nss,omitempty"` + RateMbps uint32 `protobuf:"varint,8,opt,name=rate_mbps,json=rateMbps,proto3" json:"rate_mbps,omitempty"` + Mcs uint32 `protobuf:"varint,5,opt,name=mcs,proto3" json:"mcs,omitempty"` + Bandwidth uint32 `protobuf:"varint,6,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"` + GuardNs uint32 `protobuf:"varint,7,opt,name=guard_ns,json=guardNs,proto3" json:"guard_ns,omitempty"` + AirtimeFractionLast_1S float32 `protobuf:"fixed32,9,opt,name=airtime_fraction_last_1s,json=airtimeFractionLast1s,proto3" json:"airtime_fraction_last_1s,omitempty"` +} + +func (x *WifiClient_TxStats) Reset() { + *x = WifiClient_TxStats{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiClient_TxStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiClient_TxStats) ProtoMessage() {} + +func (x *WifiClient_TxStats) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiClient_TxStats.ProtoReflect.Descriptor instead. +func (*WifiClient_TxStats) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{18, 1} +} + +func (x *WifiClient_TxStats) GetBytes() uint64 { + if x != nil { + return x.Bytes + } + return 0 +} + +func (x *WifiClient_TxStats) GetSuccessBytes() uint64 { + if x != nil { + return x.SuccessBytes + } + return 0 +} + +func (x *WifiClient_TxStats) GetNss() int32 { + if x != nil { + return x.Nss + } + return 0 +} + +func (x *WifiClient_TxStats) GetRateMbps() uint32 { + if x != nil { + return x.RateMbps + } + return 0 +} + +func (x *WifiClient_TxStats) GetMcs() uint32 { + if x != nil { + return x.Mcs + } + return 0 +} + +func (x *WifiClient_TxStats) GetBandwidth() uint32 { + if x != nil { + return x.Bandwidth + } + return 0 +} + +func (x *WifiClient_TxStats) GetGuardNs() uint32 { + if x != nil { + return x.GuardNs + } + return 0 +} + +func (x *WifiClient_TxStats) GetAirtimeFractionLast_1S() float32 { + if x != nil { + return x.AirtimeFractionLast_1S + } + return 0 +} + +type WifiScanResults_Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Source WifiScanResults_Network_Source `protobuf:"varint,1,opt,name=source,proto3,enum=SpaceX.API.Device.WifiScanResults_Network_Source" json:"source,omitempty"` + Ssid string `protobuf:"bytes,2,opt,name=ssid,proto3" json:"ssid,omitempty"` + Bssid string `protobuf:"bytes,3,opt,name=bssid,proto3" json:"bssid,omitempty"` + FrequencyGhz string `protobuf:"bytes,4,opt,name=frequency_ghz,json=frequencyGhz,proto3" json:"frequency_ghz,omitempty"` + Channel int32 `protobuf:"varint,5,opt,name=channel,proto3" json:"channel,omitempty"` + SignalLevelDbm int32 `protobuf:"varint,6,opt,name=signal_level_dbm,json=signalLevelDbm,proto3" json:"signal_level_dbm,omitempty"` + NoiseLevelDbm int32 `protobuf:"varint,7,opt,name=noise_level_dbm,json=noiseLevelDbm,proto3" json:"noise_level_dbm,omitempty"` + HasEncryptionKey bool `protobuf:"varint,8,opt,name=has_encryption_key,json=hasEncryptionKey,proto3" json:"has_encryption_key,omitempty"` + PhyModeStr string `protobuf:"bytes,9,opt,name=phy_mode_str,json=phyModeStr,proto3" json:"phy_mode_str,omitempty"` +} + +func (x *WifiScanResults_Network) Reset() { + *x = WifiScanResults_Network{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiScanResults_Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiScanResults_Network) ProtoMessage() {} + +func (x *WifiScanResults_Network) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiScanResults_Network.ProtoReflect.Descriptor instead. +func (*WifiScanResults_Network) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{33, 0} +} + +func (x *WifiScanResults_Network) GetSource() WifiScanResults_Network_Source { + if x != nil { + return x.Source + } + return WifiScanResults_Network_UNKNOWN +} + +func (x *WifiScanResults_Network) GetSsid() string { + if x != nil { + return x.Ssid + } + return "" +} + +func (x *WifiScanResults_Network) GetBssid() string { + if x != nil { + return x.Bssid + } + return "" +} + +func (x *WifiScanResults_Network) GetFrequencyGhz() string { + if x != nil { + return x.FrequencyGhz + } + return "" +} + +func (x *WifiScanResults_Network) GetChannel() int32 { + if x != nil { + return x.Channel + } + return 0 +} + +func (x *WifiScanResults_Network) GetSignalLevelDbm() int32 { + if x != nil { + return x.SignalLevelDbm + } + return 0 +} + +func (x *WifiScanResults_Network) GetNoiseLevelDbm() int32 { + if x != nil { + return x.NoiseLevelDbm + } + return 0 +} + +func (x *WifiScanResults_Network) GetHasEncryptionKey() bool { + if x != nil { + return x.HasEncryptionKey + } + return false +} + +func (x *WifiScanResults_Network) GetPhyModeStr() string { + if x != nil { + return x.PhyModeStr + } + return "" +} + +type WifiPersistentStats_Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + LastOccurredTimestamp int64 `protobuf:"varint,2,opt,name=last_occurred_timestamp,json=lastOccurredTimestamp,proto3" json:"last_occurred_timestamp,omitempty"` +} + +func (x *WifiPersistentStats_Event) Reset() { + *x = WifiPersistentStats_Event{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiPersistentStats_Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiPersistentStats_Event) ProtoMessage() {} + +func (x *WifiPersistentStats_Event) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_proto_msgTypes[43] + 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 WifiPersistentStats_Event.ProtoReflect.Descriptor instead. +func (*WifiPersistentStats_Event) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{35, 0} +} + +func (x *WifiPersistentStats_Event) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *WifiPersistentStats_Event) GetLastOccurredTimestamp() int64 { + if x != nil { + return x.LastOccurredTimestamp + } + return 0 +} + +var File_spacex_api_device_wifi_proto protoreflect.FileDescriptor + +var file_spacex_api_device_wifi_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2f, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x0b, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x95, + 0x01, 0x0a, 0x0c, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, + 0x3a, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x48, 0x00, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3e, 0x0a, 0x09, 0x6d, + 0x65, 0x73, 0x68, 0x5f, 0x6a, 0x6f, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4d, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x48, + 0x00, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x30, 0x0a, 0x0c, 0x57, 0x69, 0x66, 0x69, 0x4d, 0x65, + 0x73, 0x68, 0x4a, 0x6f, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x63, + 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5d, 0x0a, 0x0e, 0x46, 0x72, 0x6f, 0x6d, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, 0x77, 0x69, + 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, + 0x52, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x09, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x0b, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, + 0x66, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x57, 0x69, 0x66, + 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x57, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x77, 0x69, 0x66, 0x69, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x77, 0x69, + 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x6d, 0x0a, 0x1d, 0x57, 0x69, 0x66, 0x69, + 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x41, 0x75, 0x74, + 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x22, 0x20, 0x0a, 0x1e, 0x57, 0x69, 0x66, 0x69, 0x53, + 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x54, 0x72, 0x75, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x77, 0x0a, 0x18, 0x57, 0x69, 0x66, + 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, + 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x17, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9e, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x66, + 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, + 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x3e, 0x0a, 0x1b, 0x57, 0x69, 0x66, + 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, + 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa7, 0x03, 0x0a, 0x1c, 0x57, 0x69, + 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x07, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x74, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x02, + 0x52, 0x10, 0x74, 0x78, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x62, + 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x72, 0x78, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x70, 0x75, 0x74, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, + 0x72, 0x78, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x62, 0x70, 0x73, + 0x12, 0x70, 0x0a, 0x12, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x57, 0x69, + 0x66, 0x69, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, + 0x11, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0a, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, + 0x4d, 0x62, 0x70, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x73, 0x73, 0x69, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x04, 0x72, 0x73, 0x73, 0x69, 0x22, 0x69, 0x0a, 0x11, 0x57, 0x69, 0x66, 0x69, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x11, 0x0a, + 0x0d, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x55, 0x4e, 0x43, 0x4c, 0x41, 0x53, + 0x53, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4c, 0x49, 0x4d, 0x49, + 0x54, 0x5f, 0x44, 0x52, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x45, 0x54, + 0x53, 0x10, 0x03, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, + 0x02, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, + 0x6d, 0x73, 0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x4c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0x54, 0x0a, 0x1b, 0x57, 0x69, 0x66, 0x69, + 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0x90, + 0x0d, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x67, + 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, + 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x07, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, 0x74, 0x78, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x78, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x07, 0x74, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, + 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, + 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x65, 0x5f, + 0x73, 0x74, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x69, 0x66, 0x61, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x05, 0x69, 0x66, 0x61, 0x63, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, + 0x73, 0x6e, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x73, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x75, + 0x70, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x75, 0x70, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x4d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x36, 0x0a, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x77, 0x71, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x77, 0x71, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x77, 0x71, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x5f, + 0x6e, 0x6f, 0x6e, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x73, 0x77, 0x71, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x4e, 0x6f, 0x6e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x69, 0x62, 0x5f, 0x73, 0x74, 0x65, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x69, 0x62, + 0x53, 0x74, 0x65, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x69, + 0x62, 0x5f, 0x73, 0x74, 0x65, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6d, 0x69, 0x62, 0x53, 0x74, 0x65, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x74, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x62, 0x74, 0x6d, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x62, 0x74, 0x6d, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x62, 0x74, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x1a, 0x94, 0x03, 0x0a, 0x07, 0x52, 0x78, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x6e, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x73, 0x73, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, 0x74, 0x65, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x63, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, 0x0a, + 0x08, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x07, 0x67, 0x75, 0x61, 0x72, 0x64, 0x4e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x69, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x31, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x61, 0x69, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x31, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x73, 0x61, 0x6d, 0x70, + 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x74, 0x72, 0x69, + 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x15, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x44, 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, + 0x1a, 0xfd, 0x01, 0x0a, 0x07, 0x54, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x73, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6e, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x61, + 0x74, 0x65, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x63, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6d, 0x63, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x75, 0x61, 0x72, 0x64, 0x5f, + 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x67, 0x75, 0x61, 0x72, 0x64, 0x4e, + 0x73, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x15, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, + 0x22, 0x3b, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0b, 0x0a, + 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x54, + 0x48, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x46, 0x5f, 0x32, 0x47, 0x48, 0x5a, 0x10, 0x02, + 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x46, 0x5f, 0x35, 0x47, 0x48, 0x5a, 0x10, 0x03, 0x22, 0x42, 0x0a, + 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x49, 0x45, 0x4e, + 0x54, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x52, 0x10, + 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, + 0x03, 0x22, 0x74, 0x0a, 0x10, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x13, 0x0a, 0x11, 0x57, 0x69, 0x66, 0x69, 0x53, + 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x95, 0x02, 0x0a, + 0x0e, 0x57, 0x69, 0x66, 0x69, 0x42, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x35, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x14, 0x63, 0x68, 0x61, 0x6e, 0x42, 0x75, 0x73, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x74, 0x78, 0x5f, 0x61, 0x69, 0x72, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x74, 0x78, 0x41, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x46, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x14, 0x72, 0x78, 0x5f, 0x61, 0x69, + 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x72, 0x78, 0x41, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x16, 0x6f, 0x62, 0x73, 0x73, + 0x5f, 0x61, 0x69, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x73, 0x41, 0x69, + 0x72, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, + 0x17, 0x65, 0x64, 0x63, 0x63, 0x61, 0x5f, 0x61, 0x69, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x14, + 0x65, 0x64, 0x63, 0x63, 0x61, 0x41, 0x69, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xda, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, + 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6c, 0x79, 0x5f, 0x66, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x6c, 0x79, 0x46, 0x75, 0x73, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x14, + 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x31, 0x30, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6c, 0x61, 0x6e, 0x45, + 0x74, 0x68, 0x53, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x6e, 0x6b, 0x31, 0x30, 0x12, 0x30, 0x0a, 0x15, + 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x6e, + 0x6b, 0x5f, 0x31, 0x30, 0x30, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6c, 0x61, 0x6e, + 0x45, 0x74, 0x68, 0x53, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x6e, 0x6b, 0x31, 0x30, 0x30, 0x12, 0x35, + 0x0a, 0x17, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x6f, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x14, 0x77, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x50, 0x6f, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, + 0x08, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x52, 0x2b, 0x69, + 0x6e, 0x63, 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x32, 0x67, 0x68, 0x7a, + 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x31, 0x35, 0x64, 0x62, 0x52, 0x2b, 0x69, 0x6e, 0x63, 0x6f, + 0x6e, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, + 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, + 0x63, 0x65, 0x5f, 0x31, 0x35, 0x64, 0x62, 0x52, 0x23, 0x70, 0x6f, 0x6f, 0x72, 0x5f, 0x32, 0x67, + 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x66, + 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x38, 0x30, 0x64, 0x62, 0x52, 0x23, 0x70, 0x6f, + 0x6f, 0x72, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x65, + 0x5f, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x38, 0x30, 0x64, + 0x62, 0x22, 0xb9, 0x06, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, + 0x0a, 0x16, 0x63, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, + 0x63, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x77, 0x61, 0x6e, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x69, 0x70, 0x76, 0x34, 0x57, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, + 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x12, + 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x64, + 0x69, 0x73, 0x68, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, + 0x64, 0x69, 0x73, 0x68, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, + 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, + 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, + 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x2e, 0x0a, 0x13, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x70, + 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x12, + 0x4c, 0x0a, 0x0e, 0x72, 0x66, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x42, 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x0c, 0x72, 0x66, 0x32, 0x67, 0x68, 0x7a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4c, 0x0a, + 0x0e, 0x72, 0x66, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x42, + 0x61, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, + 0x66, 0x35, 0x67, 0x68, 0x7a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x52, 0x06, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x76, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x76, 0x69, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x05, 0x10, + 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x07, 0x10, 0x08, 0x4a, 0x06, 0x08, + 0xe9, 0x07, 0x10, 0xea, 0x07, 0x4a, 0x06, 0x08, 0xea, 0x07, 0x10, 0xeb, 0x07, 0x4a, 0x06, 0x08, + 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, 0x06, 0x08, 0xef, 0x07, 0x10, 0xf0, 0x07, 0x22, 0x56, 0x0a, + 0x17, 0x57, 0x69, 0x66, 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x18, 0x57, 0x69, 0x66, 0x69, 0x41, 0x75, + 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x04, 0x77, 0x69, 0x66, 0x69, 0x12, 0x38, 0x0a, 0x04, + 0x64, 0x69, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, + 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x04, 0x64, 0x69, 0x73, 0x68, 0x22, 0x32, 0x0a, 0x17, 0x57, 0x69, 0x66, 0x69, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x73, 0x68, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x10, 0x57, 0x69, + 0x66, 0x69, 0x4e, 0x65, 0x77, 0x50, 0x65, 0x65, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, + 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb1, 0x07, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, 0x12, + 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x64, 0x64, 0x65, + 0x76, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x53, 0x74, 0x64, 0x64, 0x65, 0x76, 0x4d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x35, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, 0x35, 0x6d, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x31, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, + 0x6e, 0x4d, 0x73, 0x31, 0x68, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x31, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, + 0x31, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x35, 0x6d, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x35, + 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x31, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, + 0x65, 0x31, 0x68, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x31, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, + 0x61, 0x74, 0x65, 0x31, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, 0x4f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, + 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x52, 0x19, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x35, 0x73, 0x4f, 0x75, + 0x74, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, + 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, + 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x02, 0x52, 0x19, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, + 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x1e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x30, 0x30, + 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x33, 0x30, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x68, 0x61, + 0x70, 0x70, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x5f, 0x31, 0x73, 0x5f, 0x31, 0x64, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x70, 0x70, 0x79, 0x48, 0x6f, 0x75, 0x72, + 0x73, 0x31, 0x73, 0x31, 0x64, 0x12, 0x29, 0x0a, 0x11, 0x68, 0x61, 0x70, 0x70, 0x79, 0x5f, 0x68, + 0x6f, 0x75, 0x72, 0x73, 0x5f, 0x32, 0x73, 0x5f, 0x31, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x68, 0x61, 0x70, 0x70, 0x79, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x32, 0x73, 0x31, 0x64, + 0x12, 0x29, 0x0a, 0x11, 0x68, 0x61, 0x70, 0x70, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x5f, + 0x35, 0x73, 0x5f, 0x31, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x70, + 0x70, 0x79, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x35, 0x73, 0x31, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x57, + 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x1a, 0x57, 0x69, 0x66, 0x69, + 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x44, 0x69, 0x61, + 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xa8, 0x01, 0x0a, 0x1a, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x44, 0x69, 0x61, 0x67, 0x6e, + 0x6f, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, + 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x63, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x53, 0x63, 0x61, 0x6e, 0x12, 0x43, 0x0a, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x0c, 0x77, 0x69, + 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x22, 0xf2, 0x03, 0x0a, 0x0f, 0x57, + 0x69, 0x66, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x46, + 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x1a, 0x96, 0x03, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x49, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x73, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, + 0x64, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x73, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x62, 0x73, 0x73, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x67, 0x68, 0x7a, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x47, 0x68, 0x7a, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, + 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x64, 0x62, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x62, 0x6d, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, + 0x64, 0x62, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6e, 0x6f, 0x69, 0x73, 0x65, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x44, 0x62, 0x6d, 0x12, 0x2c, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, + 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x68, 0x61, 0x73, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x68, 0x79, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x68, + 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x72, 0x22, 0x35, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0f, 0x0a, 0x0b, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x32, 0x5f, 0x34, 0x47, 0x48, 0x5a, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x41, 0x4e, 0x5f, 0x35, 0x47, 0x48, 0x5a, 0x10, 0x02, 0x22, + 0xde, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x37, 0x0a, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x42, 0x61, + 0x6e, 0x64, 0x52, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x74, 0x72, 0x22, 0x38, 0x0a, 0x04, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x10, + 0x0a, 0x0c, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x0f, 0x0a, 0x0b, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x32, 0x5f, 0x34, 0x47, 0x48, 0x5a, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x49, 0x46, 0x49, 0x5f, 0x35, 0x47, 0x48, 0x5a, 0x10, 0x02, + 0x22, 0x83, 0x05, 0x0a, 0x13, 0x57, 0x69, 0x66, 0x69, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x14, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, + 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x50, + 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x12, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x65, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x19, 0x66, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x5f, 0x75, + 0x6e, 0x70, 0x6c, 0x75, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x57, 0x69, 0x66, 0x69, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x16, 0x66, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x55, 0x6e, 0x70, 0x6c, 0x75, + 0x67, 0x12, 0x60, 0x0a, 0x15, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x13, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x12, 0x7d, 0x0a, 0x25, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x50, 0x65, 0x72, 0x73, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x52, 0x20, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x4c, 0x6f, 0x61, 0x64, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x6b, 0x0a, 0x1b, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x18, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x46, 0x72, 0x6f, + 0x6d, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, + 0x55, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, + 0x0a, 0x17, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x15, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x63, 0x63, 0x75, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5e, 0x0a, 0x1e, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, + 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, + 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0xa9, 0x5c, 0x0a, 0x21, 0x73, 0x74, 0x61, 0x72, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x6c, + 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x32, 0x12, 0x2c, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x43, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x68, 0x6f, 0x75, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x48, 0x6f, 0x75, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x5f, 0x68, 0x77, 0x5f, 0x67, + 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x79, 0x73, 0x48, 0x77, 0x47, 0x65, 0x6e, + 0x12, 0x33, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x5f, 0x73, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x73, 0x79, 0x73, 0x53, 0x77, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x64, + 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x79, 0x73, 0x49, 0x73, 0x44, 0x65, 0x76, 0x12, 0x40, + 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x66, 0x64, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x64, 0x73, + 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x72, 0x65, + 0x65, 0x5f, 0x6b, 0x62, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x79, 0x73, 0x4d, 0x65, 0x6d, 0x46, + 0x72, 0x65, 0x65, 0x4b, 0x62, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x62, 0x6f, 0x6f, + 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x79, 0x73, 0x42, 0x6f, + 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x12, 0x73, 0x79, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x4a, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x10, 0x73, 0x79, 0x73, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x56, 0x0a, 0x19, 0x73, 0x79, 0x73, 0x5f, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x16, 0x73, 0x79, 0x73, 0x41, 0x6e, 0x74, 0x69, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x5f, + 0x72, 0x73, 0x73, 0x69, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x52, 0x73, 0x73, 0x69, 0x12, + 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, + 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x32, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x66, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, + 0x6e, 0x61, 0x32, 0x52, 0x73, 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x5f, + 0x72, 0x73, 0x73, 0x69, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x52, 0x73, 0x73, 0x69, 0x12, + 0x53, 0x0a, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x49, 0x66, 0x61, 0x63, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x1e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, + 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x75, 0x73, 0x79, 0x46, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, + 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x65, 0x64, 0x63, 0x63, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, + 0x68, 0x7a, 0x45, 0x64, 0x63, 0x63, 0x61, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x6b, 0x0a, 0x24, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x73, 0x73, 0x5f, 0x66, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x42, 0x73, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x14, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4f, + 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, + 0x5a, 0x0a, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, + 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x6f, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, + 0x46, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x62, 0x0a, 0x20, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x70, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x61, 0x0a, 0x1f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, + 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x71, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, + 0x7a, 0x52, 0x78, 0x41, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x14, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, + 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x12, 0x51, 0x0a, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, + 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x73, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, + 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x74, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x12, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x62, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, + 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x1f, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x76, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x41, 0x69, 0x72, + 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x77, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, + 0x67, 0x68, 0x7a, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, + 0x61, 0x31, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x52, 0x73, + 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x32, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, + 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, 0x6e, + 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x32, 0x52, 0x73, 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, + 0x61, 0x33, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x52, 0x73, + 0x73, 0x69, 0x12, 0x53, 0x0a, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x69, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x7b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x14, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x49, 0x66, 0x61, + 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x1e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x79, + 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x75, 0x73, 0x79, + 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x65, 0x64, 0x63, 0x63, 0x61, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x35, 0x67, 0x68, 0x7a, 0x45, 0x64, 0x63, 0x63, 0x61, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x24, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x73, + 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x42, 0x73, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x4d, 0x0a, 0x14, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, + 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x52, + 0x0a, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x50, 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x81, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x12, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x5b, 0x0a, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, + 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x12, 0x63, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, + 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x1f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x41, 0x69, 0x72, 0x74, 0x69, + 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x14, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, + 0x67, 0x68, 0x7a, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x16, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x50, + 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x12, 0x63, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, + 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x1f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, + 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x41, 0x69, 0x72, 0x74, 0x69, 0x6d, + 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x18, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x65, 0x6d, 0x70, + 0x12, 0x55, 0x0a, 0x18, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, + 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0xc9, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, + 0x6d, 0x61, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x12, 0x60, 0x0a, 0x1e, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x64, + 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0xca, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x1e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0xcb, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x6f, 0x0a, 0x25, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, + 0x74, 0x74, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x6f, 0x0a, 0x25, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, + 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, + 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x53, 0x0a, + 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, + 0x72, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xac, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x57, 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, + 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, + 0xad, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, + 0x74, 0x68, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x18, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xae, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x60, 0x0a, 0x1e, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, + 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x18, 0xaf, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, + 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0xb0, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, + 0x74, 0x68, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x19, 0x69, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0xb1, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x55, 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, + 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xb2, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, + 0x68, 0x54, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x53, 0x0a, 0x17, 0x69, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0xb3, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x57, + 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0xb4, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0xb5, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x60, + 0x0a, 0x1e, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x18, 0xb6, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, + 0x45, 0x74, 0x68, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x12, 0x53, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, + 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xb7, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, + 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x18, 0xb8, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, + 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x55, + 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xb9, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x14, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x90, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x40, + 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x91, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x32, 0x67, 0x68, 0x7a, + 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, + 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x35, 0x67, + 0x68, 0x7a, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x65, 0x74, + 0x68, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x45, + 0x74, 0x68, 0x12, 0x48, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x18, 0x94, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x15, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x95, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x32, 0x67, 0x68, 0x7a, 0x12, + 0x51, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x96, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x35, 0x67, + 0x68, 0x7a, 0x12, 0x4f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x18, 0x97, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x45, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x68, 0x6f, 0x70, 0x73, + 0x18, 0x98, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x68, 0x48, 0x6f, 0x70, 0x73, 0x12, + 0x57, 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x72, 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x99, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, + 0x69, 0x41, 0x76, 0x67, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, + 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, + 0x67, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x9a, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, + 0x4f, 0x6e, 0x65, 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, 0x69, 0x41, 0x76, 0x67, 0x35, 0x67, 0x68, + 0x7a, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x68, 0x6f, + 0x70, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, + 0x9b, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x54, 0x77, 0x6f, 0x48, 0x6f, 0x70, 0x52, + 0x73, 0x73, 0x69, 0x41, 0x76, 0x67, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, + 0x73, 0x68, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, + 0x61, 0x76, 0x67, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x9c, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x65, + 0x73, 0x68, 0x54, 0x77, 0x6f, 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, 0x69, 0x41, 0x76, 0x67, 0x35, + 0x67, 0x68, 0x7a, 0x12, 0x65, 0x0a, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, + 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xd8, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x70, 0x69, + 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x21, 0x70, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, + 0xd9, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, + 0x65, 0x12, 0x65, 0x0a, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, + 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xda, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x70, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x22, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xdb, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x1d, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, + 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, + 0x65, 0x12, 0x69, 0x0a, 0x23, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x30, 0x30, + 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xdc, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1e, 0x70, 0x69, + 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x33, 0x30, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0e, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xdd, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, + 0x12, 0x50, 0x0a, 0x16, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, 0xde, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, + 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, + 0x31, 0x68, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x18, 0xdf, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xe2, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xe3, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, 0x4f, 0x75, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xe4, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, + 0x61, 0x67, 0x65, 0x12, 0x70, 0x0a, 0x27, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, + 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xe5, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, 0x4f, + 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x72, 0x0a, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, + 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x30, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, + 0x65, 0x18, 0xe6, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x22, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x33, + 0x30, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x18, 0xe7, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x44, 0x72, + 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x1b, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, 0xe8, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x70, 0x69, 0x6e, 0x67, 0x44, + 0x69, 0x73, 0x68, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, + 0x68, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0xe9, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x67, + 0x44, 0x69, 0x73, 0x68, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x6e, 0x0a, 0x25, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, + 0x6d, 0x62, 0x70, 0x73, 0x18, 0xbc, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6a, 0x0a, 0x23, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x18, 0xbd, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x55, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0xbe, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x52, 0x73, 0x73, 0x69, 0x12, 0x6a, 0x0a, 0x23, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, + 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xbf, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x57, 0x69, 0x66, 0x69, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, + 0x70, 0x73, 0x12, 0x66, 0x0a, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xc0, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x57, 0x69, 0x66, 0x69, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6e, 0x0a, 0x25, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x18, 0xc1, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6a, 0x0a, 0x23, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x18, 0xc2, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0xc3, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x52, 0x73, 0x73, 0x69, 0x12, 0x60, 0x0a, 0x1d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x69, 0x66, 0x61, 0x63, 0x65, 0x18, 0xc4, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x49, 0x66, 0x61, 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x1b, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x69, 0x18, 0xc5, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4f, 0x75, 0x69, 0x12, 0x63, 0x0a, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xc6, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xc7, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x1b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, + 0x6f, 0x0a, 0x25, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0xc8, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x65, 0x0a, 0x21, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, + 0x70, 0x5f, 0x38, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa0, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x38, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x65, 0x0a, 0x21, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x38, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0xa1, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x38, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x61, + 0x0a, 0x1f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, + 0x38, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x61, 0x76, + 0x67, 0x18, 0xa2, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, + 0x54, 0x63, 0x70, 0x38, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, + 0x67, 0x12, 0x61, 0x0a, 0x1f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x38, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0xa3, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x38, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x4d, 0x61, 0x78, 0x12, 0x67, 0x0a, 0x22, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa4, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x67, 0x0a, + 0x22, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, + 0x34, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, + 0x6d, 0x61, 0x78, 0x18, 0xa5, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, + 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x63, 0x0a, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa6, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x63, 0x0a, 0x20, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0xa7, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, + 0x70, 0x36, 0x34, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, + 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x84, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, 0x43, 0x65, 0x6c, 0x6c, 0x49, + 0x64, 0x12, 0x4f, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x75, + 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x73, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x61, 0x6e, 0x64, 0x73, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x49, 0x0a, + 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x73, + 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0xeb, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x65, 0x6e, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x69, 0x73, 0x5f, 0x61, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xec, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x73, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x47, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x65, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x44, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x61, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xef, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x41, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x49, + 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x64, 0x66, 0x73, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, + 0x66, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x5f, 0x69, 0x73, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0xf1, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x49, 0x73, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x56, 0x0a, 0x19, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x22, 0x88, 0x5e, 0x0a, 0x22, 0x73, 0x74, 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x32, 0x12, 0x2c, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0d, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x44, 0x61, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0e, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x6f, 0x75, + 0x72, 0x12, 0x51, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x90, + 0x4e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3a, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x5f, 0x68, 0x77, 0x5f, 0x67, + 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x79, 0x73, 0x48, 0x77, 0x47, 0x65, 0x6e, + 0x12, 0x33, 0x0a, 0x06, 0x73, 0x79, 0x73, 0x5f, 0x73, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x73, 0x79, 0x73, 0x53, 0x77, 0x12, 0x3d, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x0a, 0x73, 0x79, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x64, + 0x65, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x73, 0x79, 0x73, 0x49, 0x73, 0x44, 0x65, 0x76, 0x12, 0x40, + 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x66, 0x64, 0x73, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x46, 0x64, 0x73, + 0x12, 0x3f, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x79, 0x73, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x73, 0x79, 0x73, 0x5f, 0x6d, 0x65, 0x6d, 0x5f, 0x66, 0x72, 0x65, + 0x65, 0x5f, 0x6b, 0x62, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x79, 0x73, 0x4d, 0x65, 0x6d, 0x46, + 0x72, 0x65, 0x65, 0x4b, 0x62, 0x12, 0x40, 0x0a, 0x0d, 0x73, 0x79, 0x73, 0x5f, 0x62, 0x6f, 0x6f, + 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x73, 0x79, 0x73, 0x42, 0x6f, + 0x6f, 0x74, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4c, 0x0a, 0x14, 0x73, 0x79, 0x73, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x12, 0x73, 0x79, 0x73, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x71, 0x75, 0x61, 0x6c, 0x12, 0x4a, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x5f, 0x75, 0x70, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x10, 0x73, 0x79, 0x73, 0x55, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x56, 0x0a, 0x19, 0x73, 0x79, 0x73, 0x5f, 0x61, 0x6e, 0x74, 0x69, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x16, 0x73, 0x79, 0x73, 0x41, 0x6e, 0x74, 0x69, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x18, 0x64, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x5f, + 0x72, 0x73, 0x73, 0x69, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x52, 0x73, 0x73, 0x69, 0x12, + 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, + 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x32, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x66, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, + 0x6e, 0x61, 0x32, 0x52, 0x73, 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x5f, + 0x72, 0x73, 0x73, 0x69, 0x18, 0x67, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x52, 0x73, 0x73, 0x69, 0x12, + 0x53, 0x0a, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x68, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x49, 0x66, 0x61, 0x63, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5f, 0x0a, 0x1e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, + 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x69, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x75, 0x73, 0x79, 0x46, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, + 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x65, 0x64, 0x63, 0x63, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, + 0x68, 0x7a, 0x45, 0x64, 0x63, 0x63, 0x61, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x6b, 0x0a, 0x24, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x6f, + 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x73, 0x73, 0x5f, 0x66, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x42, 0x73, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x14, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x52, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x16, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, + 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x15, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x59, 0x0a, 0x1b, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x6f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x62, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x70, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x1f, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x61, 0x69, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x71, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x41, + 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, + 0x0a, 0x14, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x72, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x16, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4e, + 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x74, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x62, + 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0x75, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, + 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, + 0x74, 0x65, 0x12, 0x61, 0x0a, 0x1f, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, + 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x76, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x32, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x41, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, + 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x77, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x43, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, + 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x5f, 0x72, 0x73, 0x73, 0x69, + 0x18, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, + 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x31, 0x52, 0x73, 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, + 0x6e, 0x61, 0x32, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x18, 0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x32, 0x52, + 0x73, 0x73, 0x69, 0x12, 0x56, 0x0a, 0x19, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, + 0x68, 0x7a, 0x5f, 0x61, 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x5f, 0x72, 0x73, 0x73, 0x69, + 0x18, 0x7a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x41, + 0x6e, 0x74, 0x65, 0x6e, 0x6e, 0x61, 0x33, 0x52, 0x73, 0x73, 0x69, 0x12, 0x53, 0x0a, 0x17, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x49, 0x66, 0x61, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x5f, 0x0a, 0x1e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x79, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, + 0x7a, 0x43, 0x68, 0x61, 0x6e, 0x42, 0x75, 0x73, 0x79, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x58, 0x0a, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, + 0x5f, 0x65, 0x64, 0x63, 0x63, 0x61, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x7d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x17, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x45, 0x64, + 0x63, 0x63, 0x61, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6b, 0x0a, 0x24, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x73, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, + 0x68, 0x7a, 0x4f, 0x76, 0x65, 0x72, 0x6c, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x73, 0x73, + 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4c, 0x0a, 0x14, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x7f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, + 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x51, 0x0a, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, + 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, + 0x68, 0x7a, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x5a, 0x0a, 0x1b, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, + 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x1f, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x72, 0x78, 0x5f, 0x61, 0x69, + 0x72, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x84, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x52, 0x78, + 0x41, 0x69, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x4d, 0x0a, 0x14, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, + 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x51, + 0x0a, 0x16, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x73, 0x12, 0x4f, 0x0a, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, + 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x63, 0x0a, 0x20, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x52, 0x61, 0x74, 0x65, 0x12, 0x62, 0x0a, 0x1f, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x78, 0x5f, 0x61, 0x69, 0x72, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x89, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x78, 0x41, 0x69, 0x72, 0x74, + 0x69, 0x6d, 0x65, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x18, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0xc8, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x65, + 0x6d, 0x70, 0x12, 0x55, 0x0a, 0x18, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0xc9, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x15, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, + 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x12, 0x60, 0x0a, 0x1e, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, + 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0xca, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x1e, 0x72, + 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, + 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0xcb, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x1a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, + 0x72, 0x6d, 0x61, 0x6c, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x6f, 0x0a, + 0x25, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, 0x65, + 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0xcc, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x73, 0x32, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, + 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x6f, + 0x0a, 0x25, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x73, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x5f, 0x74, 0x68, + 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0xcd, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x54, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, + 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, + 0x52, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, + 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xac, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, + 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, + 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x18, 0xad, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, + 0x74, 0x68, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x18, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xae, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x12, 0x5f, 0x0a, 0x1e, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, + 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x73, 0x18, 0xaf, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, + 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x12, 0x52, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, + 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0xb0, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, + 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x18, 0xb1, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, + 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x54, + 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, + 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xb2, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x14, + 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4c, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, + 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0xb3, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, + 0x68, 0x52, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x19, 0x69, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0xb4, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x12, 0x54, 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, + 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xb5, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x14, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x5f, 0x0a, 0x1e, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, + 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x72, 0x78, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xb6, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x69, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x52, 0x78, 0x46, 0x72, 0x61, 0x6d, + 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x17, 0x69, 0x66, 0x61, 0x63, 0x65, + 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0xb7, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, + 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, + 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x19, 0x69, + 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0xb8, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x69, 0x66, + 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, 0x68, 0x54, 0x78, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x12, 0x54, 0x0a, 0x18, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x77, 0x61, + 0x6e, 0x5f, 0x65, 0x74, 0x68, 0x5f, 0x74, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, + 0xb9, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x14, 0x69, 0x66, 0x61, 0x63, 0x65, 0x73, 0x57, 0x61, 0x6e, 0x45, 0x74, + 0x68, 0x54, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x90, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x32, 0x67, + 0x68, 0x7a, 0x18, 0x91, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, + 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x32, 0x67, 0x68, 0x7a, 0x12, 0x40, 0x0a, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x35, 0x67, 0x68, 0x7a, 0x18, 0x92, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x73, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x65, 0x74, 0x68, 0x18, 0x93, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x45, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x18, 0x94, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, + 0x12, 0x51, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x95, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x32, + 0x67, 0x68, 0x7a, 0x12, 0x51, 0x0a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x96, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x13, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x4f, 0x0a, 0x14, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x65, 0x74, 0x68, 0x18, 0x97, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x12, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x45, 0x74, 0x68, 0x12, 0x3a, 0x0a, 0x09, 0x6d, 0x65, 0x73, 0x68, 0x5f, + 0x68, 0x6f, 0x70, 0x73, 0x18, 0x98, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x6d, 0x65, 0x73, 0x68, 0x48, + 0x6f, 0x70, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x32, 0x67, 0x68, + 0x7a, 0x18, 0x99, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x48, 0x6f, + 0x70, 0x52, 0x73, 0x73, 0x69, 0x41, 0x76, 0x67, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x57, 0x0a, 0x1a, + 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x65, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x73, 0x73, + 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x9a, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, + 0x6d, 0x65, 0x73, 0x68, 0x4f, 0x6e, 0x65, 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, 0x69, 0x41, 0x76, + 0x67, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x77, + 0x6f, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x32, + 0x67, 0x68, 0x7a, 0x18, 0x9b, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x54, 0x77, 0x6f, + 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, 0x69, 0x41, 0x76, 0x67, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x57, + 0x0a, 0x1a, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x77, 0x6f, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x72, + 0x73, 0x73, 0x69, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x9c, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x15, 0x6d, 0x65, 0x73, 0x68, 0x54, 0x77, 0x6f, 0x48, 0x6f, 0x70, 0x52, 0x73, 0x73, 0x69, + 0x41, 0x76, 0x67, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x65, 0x0a, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, + 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xd8, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1c, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, + 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x65, + 0x0a, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, + 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, + 0x61, 0x67, 0x65, 0x18, 0xd9, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, 0x4f, + 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xda, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, + 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x22, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, + 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, + 0x67, 0x65, 0x18, 0xdb, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, 0x4f, + 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x69, 0x0a, 0x23, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x33, 0x30, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xdc, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1e, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, + 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x33, 0x30, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, + 0x12, 0x42, 0x0a, 0x0e, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x18, 0xdd, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, + 0x52, 0x61, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x16, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, + 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, 0xde, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x12, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, + 0x4c, 0x61, 0x73, 0x74, 0x31, 0x68, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, + 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0xdf, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, + 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4d, 0x0a, 0x14, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, + 0xea, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x11, 0x70, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x4c, 0x61, 0x73, 0x74, 0x31, 0x68, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, + 0x18, 0xe2, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, + 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, + 0x18, 0xe3, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x32, 0x73, + 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x6e, 0x0a, 0x26, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, + 0x18, 0xe4, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, + 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x70, 0x0a, 0x27, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, + 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, + 0x65, 0x18, 0xe5, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x36, + 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x72, 0x0a, 0x28, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, + 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x33, 0x30, 0x30, 0x73, 0x5f, 0x6f, 0x75, + 0x74, 0x61, 0x67, 0x65, 0x18, 0xe6, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x22, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, + 0x73, 0x68, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x33, 0x30, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x13, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0xe7, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, + 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, + 0x68, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x1b, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, 0xe8, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x70, 0x69, + 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x61, + 0x73, 0x74, 0x31, 0x68, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, + 0x68, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0xe9, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x70, + 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x56, + 0x0a, 0x19, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x68, 0x18, 0xeb, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x15, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x73, 0x68, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, + 0x4c, 0x61, 0x73, 0x74, 0x31, 0x68, 0x12, 0x6e, 0x0a, 0x25, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, + 0xbc, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6a, 0x0a, 0x23, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xbd, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, + 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, + 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x73, + 0x73, 0x69, 0x18, 0xbe, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x73, 0x73, + 0x69, 0x12, 0x6a, 0x0a, 0x23, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xbf, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1f, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x57, 0x69, 0x66, + 0x69, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x66, 0x0a, + 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, + 0x70, 0x73, 0x18, 0xc0, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x57, 0x69, 0x66, 0x69, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6e, 0x0a, 0x25, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xc1, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x6a, 0x0a, 0x23, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x18, 0xc2, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, + 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, + 0x73, 0x12, 0x5d, 0x0a, 0x1c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x73, 0x73, + 0x69, 0x18, 0xc3, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x73, 0x73, 0x69, + 0x12, 0x60, 0x0a, 0x1d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x66, 0x61, 0x63, + 0x65, 0x18, 0xc4, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x66, 0x61, + 0x63, 0x65, 0x12, 0x5c, 0x0a, 0x1b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, + 0x69, 0x18, 0xc5, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x69, + 0x12, 0x63, 0x0a, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0xc6, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, + 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x63, 0x0a, 0x1f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xc7, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x6f, 0x0a, 0x25, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0xc8, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x65, 0x0a, 0x21, 0x73, + 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x38, 0x5f, 0x64, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x61, 0x76, 0x67, + 0x18, 0xa0, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, + 0x63, 0x70, 0x38, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, + 0x76, 0x67, 0x12, 0x65, 0x0a, 0x21, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, + 0x74, 0x63, 0x70, 0x5f, 0x38, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, + 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0xa1, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x38, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x61, 0x0a, 0x1f, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x38, 0x5f, 0x75, 0x70, 0x6c, + 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa2, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x1a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x38, 0x55, + 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x61, 0x0a, 0x1f, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x38, 0x5f, + 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, + 0xa3, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, + 0x70, 0x38, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, + 0x67, 0x0a, 0x22, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, + 0x5f, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa4, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1d, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x67, 0x0a, 0x22, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0xa5, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x1d, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, + 0x36, 0x34, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, + 0x78, 0x12, 0x63, 0x0a, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6d, 0x62, 0x70, + 0x73, 0x5f, 0x61, 0x76, 0x67, 0x18, 0xa6, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, 0x73, 0x70, 0x65, 0x65, 0x64, + 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x4d, + 0x62, 0x70, 0x73, 0x41, 0x76, 0x67, 0x12, 0x63, 0x0a, 0x20, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x36, 0x34, 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0xa7, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1b, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x54, 0x63, 0x70, 0x36, 0x34, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x4d, 0x61, 0x78, 0x12, 0x3f, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x68, 0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x84, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0a, 0x64, 0x69, 0x73, 0x68, 0x43, 0x65, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x15, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x53, 0x65, 0x74, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x49, 0x0a, + 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x70, + 0x6c, 0x69, 0x74, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x61, + 0x6e, 0x64, 0x73, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x18, 0xea, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x70, 0x65, 0x6e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x73, 0x5f, 0x61, 0x76, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x73, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x11, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x6e, 0x73, + 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x63, 0x75, 0x72, + 0x65, 0x44, 0x6e, 0x73, 0x12, 0x40, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x18, 0xee, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x41, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x61, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x41, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x49, 0x0a, 0x12, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x5f, 0x64, 0x66, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, + 0xf0, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x44, 0x66, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x69, 0x73, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1a, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x73, 0x44, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x56, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x73, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xec, 0x01, + 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x48, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x44, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x32, 0x5c, 0x0a, 0x04, + 0x4d, 0x65, 0x73, 0x68, 0x12, 0x54, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x68, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x12, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x1a, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, + 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x28, 0x01, 0x30, 0x01, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -type WifiClient_TxStats struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Bytes uint64 `protobuf:"varint,1,opt,name=bytes,proto3" json:"bytes,omitempty"` - SuccessBytes uint64 `protobuf:"varint,2,opt,name=success_bytes,json=successBytes,proto3" json:"success_bytes,omitempty"` -} - -func (x *WifiClient_TxStats) Reset() { - *x = WifiClient_TxStats{} - if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WifiClient_TxStats) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WifiClient_TxStats) ProtoMessage() {} - -func (x *WifiClient_TxStats) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_proto_msgTypes[17] - 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 WifiClient_TxStats.ProtoReflect.Descriptor instead. -func (*WifiClient_TxStats) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_proto_rawDescGZIP(), []int{6, 1} -} - -func (x *WifiClient_TxStats) GetBytes() uint64 { - if x != nil { - return x.Bytes - } - return 0 -} - -func (x *WifiClient_TxStats) GetSuccessBytes() uint64 { - if x != nil { - return x.SuccessBytes - } - return 0 -} - -var File_spacex_api_device_wifi_proto protoreflect.FileDescriptor - -var file_spacex_api_device_wifi_proto_rawDesc = []byte{ - 0x0a, 0x1c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x56, 0x0a, 0x14, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, - 0x0a, 0x0b, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x0a, 0x77, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x17, - 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x47, - 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x51, 0x0a, 0x16, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, - 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, 0x6e, 0x67, - 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, - 0x02, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, - 0x6d, 0x73, 0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0x54, 0x0a, 0x1b, 0x57, 0x69, 0x66, 0x69, - 0x4e, 0x65, 0x77, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, - 0x65, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x22, 0xda, - 0x04, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x6c, 0x53, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x40, 0x0a, 0x08, 0x72, 0x78, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, - 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x52, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x07, 0x72, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x08, - 0x74, 0x78, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x78, - 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x07, 0x74, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2a, - 0x0a, 0x11, 0x61, 0x73, 0x73, 0x6f, 0x63, 0x69, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x61, 0x73, 0x73, 0x6f, 0x63, - 0x69, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x6f, - 0x64, 0x65, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, - 0x64, 0x65, 0x53, 0x74, 0x72, 0x12, 0x3d, 0x0a, 0x05, 0x69, 0x66, 0x61, 0x63, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x05, 0x69, - 0x66, 0x61, 0x63, 0x65, 0x1a, 0x42, 0x0a, 0x07, 0x52, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x44, 0x0a, 0x07, 0x54, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x0c, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3b, - 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x45, 0x54, 0x48, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x46, 0x5f, 0x32, 0x47, 0x48, 0x5a, 0x10, 0x02, 0x12, 0x0b, - 0x0a, 0x07, 0x52, 0x46, 0x5f, 0x35, 0x47, 0x48, 0x5a, 0x10, 0x03, 0x22, 0x74, 0x0a, 0x10, 0x57, - 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, - 0x6b, 0x69, 0x70, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x22, 0x13, 0x0a, 0x11, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc1, 0x03, 0x0a, 0x15, 0x57, 0x69, 0x66, 0x69, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, - 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x63, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x63, 0x61, 0x70, 0x74, 0x69, 0x76, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x61, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, - 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, - 0x69, 0x66, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x11, 0x0a, 0x03, - 0x73, 0x6b, 0x75, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x6b, 0x75, 0x12, - 0x29, 0x0a, 0x10, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x77, 0x61, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x69, 0x70, 0x76, 0x34, - 0x57, 0x61, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x69, - 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xec, 0x07, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, - 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x70, 0x69, 0x6e, - 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x22, 0x56, 0x0a, 0x17, 0x57, 0x69, - 0x66, 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, - 0x67, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x18, 0x57, 0x69, 0x66, 0x69, 0x41, 0x75, 0x74, 0x68, 0x65, - 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x04, 0x77, 0x69, 0x66, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x04, 0x77, 0x69, 0x66, 0x69, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x69, 0x73, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, - 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x6c, - 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x04, 0x64, - 0x69, 0x73, 0x68, 0x22, 0x32, 0x0a, 0x17, 0x57, 0x69, 0x66, 0x69, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x17, - 0x0a, 0x07, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x64, 0x69, 0x73, 0x68, 0x49, 0x64, 0x22, 0xfe, 0x04, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, - 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, 0x12, - 0x2a, 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x73, 0x74, 0x64, 0x64, 0x65, - 0x76, 0x5f, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x53, 0x74, 0x64, 0x64, 0x65, 0x76, 0x4d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x35, - 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, 0x35, 0x6d, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, - 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x31, 0x68, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, - 0x6e, 0x4d, 0x73, 0x31, 0x68, 0x12, 0x2b, 0x0a, 0x12, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x5f, 0x6d, 0x73, 0x5f, 0x31, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x61, 0x6e, 0x4d, 0x73, - 0x31, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, - 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x35, 0x6d, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x35, - 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x31, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, - 0x65, 0x31, 0x68, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x5f, 0x31, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x72, 0x6f, 0x70, 0x52, - 0x61, 0x74, 0x65, 0x31, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x17, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, - 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, - 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, - 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, - 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x68, 0x61, 0x70, 0x70, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, - 0x73, 0x5f, 0x31, 0x73, 0x5f, 0x31, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, - 0x61, 0x70, 0x70, 0x79, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x31, 0x73, 0x31, 0x64, 0x12, 0x29, 0x0a, - 0x11, 0x68, 0x61, 0x70, 0x70, 0x79, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x5f, 0x35, 0x73, 0x5f, - 0x31, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x70, 0x70, 0x79, 0x48, - 0x6f, 0x75, 0x72, 0x73, 0x35, 0x73, 0x31, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x69, 0x66, 0x69, - 0x47, 0x65, 0x74, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x1a, 0x57, 0x69, 0x66, 0x69, 0x47, 0x65, 0x74, - 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, - 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, - 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - var ( file_spacex_api_device_wifi_proto_rawDescOnce sync.Once file_spacex_api_device_wifi_proto_rawDescData = file_spacex_api_device_wifi_proto_rawDesc @@ -1366,53 +7460,390 @@ func file_spacex_api_device_wifi_proto_rawDescGZIP() [ return file_spacex_api_device_wifi_proto_rawDescData } -var file_spacex_api_device_wifi_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_spacex_api_device_wifi_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_spacex_api_device_wifi_proto_enumTypes = make([]protoimpl.EnumInfo, 5) +var file_spacex_api_device_wifi_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_spacex_api_device_wifi_proto_goTypes = []interface{}{ - (WifiClient_Interface)(0), // 0: SpaceX.API.Device.WifiClient.Interface - (*WifiSetConfigRequest)(nil), // 1: SpaceX.API.Device.WifiSetConfigRequest - (*WifiSetConfigResponse)(nil), // 2: SpaceX.API.Device.WifiSetConfigResponse - (*WifiGetClientsRequest)(nil), // 3: SpaceX.API.Device.WifiGetClientsRequest - (*WifiGetClientsResponse)(nil), // 4: SpaceX.API.Device.WifiGetClientsResponse - (*WifiGetHistoryResponse)(nil), // 5: SpaceX.API.Device.WifiGetHistoryResponse - (*WifiNewClientConnectedEvent)(nil), // 6: SpaceX.API.Device.WifiNewClientConnectedEvent - (*WifiClient)(nil), // 7: SpaceX.API.Device.WifiClient - (*WifiSetupRequest)(nil), // 8: SpaceX.API.Device.WifiSetupRequest - (*WifiSetupResponse)(nil), // 9: SpaceX.API.Device.WifiSetupResponse - (*WifiGetStatusResponse)(nil), // 10: SpaceX.API.Device.WifiGetStatusResponse - (*WifiAuthenticateRequest)(nil), // 11: SpaceX.API.Device.WifiAuthenticateRequest - (*WifiAuthenticateResponse)(nil), // 12: SpaceX.API.Device.WifiAuthenticateResponse - (*WifiAccountBondingEvent)(nil), // 13: SpaceX.API.Device.WifiAccountBondingEvent - (*PingMetrics)(nil), // 14: SpaceX.API.Device.PingMetrics - (*WifiGetPingMetricsRequest)(nil), // 15: SpaceX.API.Device.WifiGetPingMetricsRequest - (*WifiGetPingMetricsResponse)(nil), // 16: SpaceX.API.Device.WifiGetPingMetricsResponse - (*WifiClient_RxStats)(nil), // 17: SpaceX.API.Device.WifiClient.RxStats - (*WifiClient_TxStats)(nil), // 18: SpaceX.API.Device.WifiClient.TxStats - (*WifiConfig)(nil), // 19: SpaceX.API.Device.WifiConfig - (*DeviceInfo)(nil), // 20: SpaceX.API.Device.DeviceInfo - (*DeviceState)(nil), // 21: SpaceX.API.Device.DeviceState - (*SignedData)(nil), // 22: SpaceX.API.Device.SignedData - (*ChallengeResponse)(nil), // 23: SpaceX.API.Device.ChallengeResponse + (WifiGetClientHistoryResponse_WifiLimitedReason)(0), // 0: SpaceX.API.Device.WifiGetClientHistoryResponse.WifiLimitedReason + (WifiClient_Interface)(0), // 1: SpaceX.API.Device.WifiClient.Interface + (WifiClient_Role)(0), // 2: SpaceX.API.Device.WifiClient.Role + (WifiScanResults_Network_Source)(0), // 3: SpaceX.API.Device.WifiScanResults.Network.Source + (WifiNetwork_Band)(0), // 4: SpaceX.API.Device.WifiNetwork.Band + (*WifiClients)(nil), // 5: SpaceX.API.Device.WifiClients + (*ToController)(nil), // 6: SpaceX.API.Device.ToController + (*WifiMeshJoin)(nil), // 7: SpaceX.API.Device.WifiMeshJoin + (*FromController)(nil), // 8: SpaceX.API.Device.FromController + (*WifiSetConfigRequest)(nil), // 9: SpaceX.API.Device.WifiSetConfigRequest + (*WifiSetConfigResponse)(nil), // 10: SpaceX.API.Device.WifiSetConfigResponse + (*WifiGetConfigRequest)(nil), // 11: SpaceX.API.Device.WifiGetConfigRequest + (*WifiGetConfigResponse)(nil), // 12: SpaceX.API.Device.WifiGetConfigResponse + (*WifiSetMeshDeviceTrustRequest)(nil), // 13: SpaceX.API.Device.WifiSetMeshDeviceTrustRequest + (*WifiSetMeshDeviceTrustResponse)(nil), // 14: SpaceX.API.Device.WifiSetMeshDeviceTrustResponse + (*WifiSetMeshConfigRequest)(nil), // 15: SpaceX.API.Device.WifiSetMeshConfigRequest + (*WifiSetMeshConfigResponse)(nil), // 16: SpaceX.API.Device.WifiSetMeshConfigResponse + (*WifiGetClientsRequest)(nil), // 17: SpaceX.API.Device.WifiGetClientsRequest + (*WifiGetClientsResponse)(nil), // 18: SpaceX.API.Device.WifiGetClientsResponse + (*WifiGetClientHistoryRequest)(nil), // 19: SpaceX.API.Device.WifiGetClientHistoryRequest + (*WifiGetClientHistoryResponse)(nil), // 20: SpaceX.API.Device.WifiGetClientHistoryResponse + (*WifiGetHistoryResponse)(nil), // 21: SpaceX.API.Device.WifiGetHistoryResponse + (*WifiNewClientConnectedEvent)(nil), // 22: SpaceX.API.Device.WifiNewClientConnectedEvent + (*WifiClient)(nil), // 23: SpaceX.API.Device.WifiClient + (*WifiSetupRequest)(nil), // 24: SpaceX.API.Device.WifiSetupRequest + (*WifiSetupResponse)(nil), // 25: SpaceX.API.Device.WifiSetupResponse + (*WifiBandStatus)(nil), // 26: SpaceX.API.Device.WifiBandStatus + (*WifiAlerts)(nil), // 27: SpaceX.API.Device.WifiAlerts + (*WifiGetStatusResponse)(nil), // 28: SpaceX.API.Device.WifiGetStatusResponse + (*WifiAuthenticateRequest)(nil), // 29: SpaceX.API.Device.WifiAuthenticateRequest + (*WifiAuthenticateResponse)(nil), // 30: SpaceX.API.Device.WifiAuthenticateResponse + (*WifiAccountBondingEvent)(nil), // 31: SpaceX.API.Device.WifiAccountBondingEvent + (*WifiNewPeerEvent)(nil), // 32: SpaceX.API.Device.WifiNewPeerEvent + (*PingMetrics)(nil), // 33: SpaceX.API.Device.PingMetrics + (*WifiGetPingMetricsRequest)(nil), // 34: SpaceX.API.Device.WifiGetPingMetricsRequest + (*WifiGetPingMetricsResponse)(nil), // 35: SpaceX.API.Device.WifiGetPingMetricsResponse + (*WifiGetDiagnosticsRequest)(nil), // 36: SpaceX.API.Device.WifiGetDiagnosticsRequest + (*WifiGetDiagnosticsResponse)(nil), // 37: SpaceX.API.Device.WifiGetDiagnosticsResponse + (*WifiScanResults)(nil), // 38: SpaceX.API.Device.WifiScanResults + (*WifiNetwork)(nil), // 39: SpaceX.API.Device.WifiNetwork + (*WifiPersistentStats)(nil), // 40: SpaceX.API.Device.WifiPersistentStats + (*WifiGetPersistentStatsResponse)(nil), // 41: SpaceX.API.Device.WifiGetPersistentStatsResponse + (*StarlinkRouterHourlyMetricsV2)(nil), // 42: SpaceX.API.Device.starlink_router_hourly_metrics_v2 + (*StarlinkRoutersHourlyMetricsV2)(nil), // 43: SpaceX.API.Device.starlink_routers_hourly_metrics_v2 + (*StarlinkRouterAlerts)(nil), // 44: SpaceX.API.Device.starlink_router_alerts + (*WifiClient_RxStats)(nil), // 45: SpaceX.API.Device.WifiClient.RxStats + (*WifiClient_TxStats)(nil), // 46: SpaceX.API.Device.WifiClient.TxStats + (*WifiScanResults_Network)(nil), // 47: SpaceX.API.Device.WifiScanResults.Network + (*WifiPersistentStats_Event)(nil), // 48: SpaceX.API.Device.WifiPersistentStats.Event + (*WifiConfig)(nil), // 49: SpaceX.API.Device.WifiConfig + (MeshAuth)(0), // 50: SpaceX.API.Device.MeshAuth + (*MeshConfig)(nil), // 51: SpaceX.API.Device.MeshConfig + (*DeviceInfo)(nil), // 52: SpaceX.API.Device.DeviceInfo + (*DeviceState)(nil), // 53: SpaceX.API.Device.DeviceState + (*SignedData)(nil), // 54: SpaceX.API.Device.SignedData + (*ChallengeResponse)(nil), // 55: SpaceX.API.Device.ChallengeResponse + (*wrapperspb.StringValue)(nil), // 56: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 57: google.protobuf.UInt32Value + (*wrapperspb.BoolValue)(nil), // 58: google.protobuf.BoolValue + (*wrapperspb.FloatValue)(nil), // 59: google.protobuf.FloatValue + (*wrapperspb.Int32Value)(nil), // 60: google.protobuf.Int32Value + (*telemetron.TimestampInfo)(nil), // 61: SpaceX.API.Telemetron.Public.Common.TimestampInfo + (*wrapperspb.Int64Value)(nil), // 62: google.protobuf.Int64Value } var file_spacex_api_device_wifi_proto_depIdxs = []int32{ - 19, // 0: SpaceX.API.Device.WifiSetConfigRequest.wifi_config:type_name -> SpaceX.API.Device.WifiConfig - 7, // 1: SpaceX.API.Device.WifiGetClientsResponse.clients:type_name -> SpaceX.API.Device.WifiClient - 7, // 2: SpaceX.API.Device.WifiNewClientConnectedEvent.client:type_name -> SpaceX.API.Device.WifiClient - 17, // 3: SpaceX.API.Device.WifiClient.rx_stats:type_name -> SpaceX.API.Device.WifiClient.RxStats - 18, // 4: SpaceX.API.Device.WifiClient.tx_stats:type_name -> SpaceX.API.Device.WifiClient.TxStats - 0, // 5: SpaceX.API.Device.WifiClient.iface:type_name -> SpaceX.API.Device.WifiClient.Interface - 20, // 6: SpaceX.API.Device.WifiGetStatusResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo - 21, // 7: SpaceX.API.Device.WifiGetStatusResponse.device_state:type_name -> SpaceX.API.Device.DeviceState - 7, // 8: SpaceX.API.Device.WifiGetStatusResponse.clients:type_name -> SpaceX.API.Device.WifiClient - 22, // 9: SpaceX.API.Device.WifiAuthenticateRequest.challenge:type_name -> SpaceX.API.Device.SignedData - 23, // 10: SpaceX.API.Device.WifiAuthenticateResponse.wifi:type_name -> SpaceX.API.Device.ChallengeResponse - 23, // 11: SpaceX.API.Device.WifiAuthenticateResponse.dish:type_name -> SpaceX.API.Device.ChallengeResponse - 14, // 12: SpaceX.API.Device.WifiGetPingMetricsResponse.internet:type_name -> SpaceX.API.Device.PingMetrics - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 23, // 0: SpaceX.API.Device.WifiClients.clients:type_name -> SpaceX.API.Device.WifiClient + 5, // 1: SpaceX.API.Device.ToController.clients:type_name -> SpaceX.API.Device.WifiClients + 7, // 2: SpaceX.API.Device.ToController.mesh_join:type_name -> SpaceX.API.Device.WifiMeshJoin + 49, // 3: SpaceX.API.Device.FromController.wifi_config:type_name -> SpaceX.API.Device.WifiConfig + 49, // 4: SpaceX.API.Device.WifiSetConfigRequest.wifi_config:type_name -> SpaceX.API.Device.WifiConfig + 49, // 5: SpaceX.API.Device.WifiSetConfigResponse.updated_wifi_config:type_name -> SpaceX.API.Device.WifiConfig + 49, // 6: SpaceX.API.Device.WifiGetConfigResponse.wifi_config:type_name -> SpaceX.API.Device.WifiConfig + 50, // 7: SpaceX.API.Device.WifiSetMeshDeviceTrustRequest.auth:type_name -> SpaceX.API.Device.MeshAuth + 51, // 8: SpaceX.API.Device.WifiSetMeshConfigRequest.mesh_config:type_name -> SpaceX.API.Device.MeshConfig + 23, // 9: SpaceX.API.Device.WifiGetClientsResponse.clients:type_name -> SpaceX.API.Device.WifiClient + 0, // 10: SpaceX.API.Device.WifiGetClientHistoryResponse.throughput_limited:type_name -> SpaceX.API.Device.WifiGetClientHistoryResponse.WifiLimitedReason + 23, // 11: SpaceX.API.Device.WifiNewClientConnectedEvent.client:type_name -> SpaceX.API.Device.WifiClient + 45, // 12: SpaceX.API.Device.WifiClient.rx_stats:type_name -> SpaceX.API.Device.WifiClient.RxStats + 46, // 13: SpaceX.API.Device.WifiClient.tx_stats:type_name -> SpaceX.API.Device.WifiClient.TxStats + 1, // 14: SpaceX.API.Device.WifiClient.iface:type_name -> SpaceX.API.Device.WifiClient.Interface + 2, // 15: SpaceX.API.Device.WifiClient.role:type_name -> SpaceX.API.Device.WifiClient.Role + 52, // 16: SpaceX.API.Device.WifiGetStatusResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo + 53, // 17: SpaceX.API.Device.WifiGetStatusResponse.device_state:type_name -> SpaceX.API.Device.DeviceState + 26, // 18: SpaceX.API.Device.WifiGetStatusResponse.rf_2ghz_status:type_name -> SpaceX.API.Device.WifiBandStatus + 26, // 19: SpaceX.API.Device.WifiGetStatusResponse.rf_5ghz_status:type_name -> SpaceX.API.Device.WifiBandStatus + 27, // 20: SpaceX.API.Device.WifiGetStatusResponse.alerts:type_name -> SpaceX.API.Device.WifiAlerts + 54, // 21: SpaceX.API.Device.WifiAuthenticateRequest.challenge:type_name -> SpaceX.API.Device.SignedData + 55, // 22: SpaceX.API.Device.WifiAuthenticateResponse.wifi:type_name -> SpaceX.API.Device.ChallengeResponse + 55, // 23: SpaceX.API.Device.WifiAuthenticateResponse.dish:type_name -> SpaceX.API.Device.ChallengeResponse + 33, // 24: SpaceX.API.Device.WifiGetPingMetricsResponse.internet:type_name -> SpaceX.API.Device.PingMetrics + 38, // 25: SpaceX.API.Device.WifiGetDiagnosticsResponse.network_scan:type_name -> SpaceX.API.Device.WifiScanResults + 39, // 26: SpaceX.API.Device.WifiGetDiagnosticsResponse.wifi_networks:type_name -> SpaceX.API.Device.WifiNetwork + 47, // 27: SpaceX.API.Device.WifiScanResults.networks:type_name -> SpaceX.API.Device.WifiScanResults.Network + 4, // 28: SpaceX.API.Device.WifiNetwork.band:type_name -> SpaceX.API.Device.WifiNetwork.Band + 48, // 29: SpaceX.API.Device.WifiPersistentStats.factory_reset_button:type_name -> SpaceX.API.Device.WifiPersistentStats.Event + 48, // 30: SpaceX.API.Device.WifiPersistentStats.factory_reset_plug_unplug:type_name -> SpaceX.API.Device.WifiPersistentStats.Event + 48, // 31: SpaceX.API.Device.WifiPersistentStats.factory_reset_command:type_name -> SpaceX.API.Device.WifiPersistentStats.Event + 48, // 32: SpaceX.API.Device.WifiPersistentStats.factory_reset_failed_load_wifi_config:type_name -> SpaceX.API.Device.WifiPersistentStats.Event + 48, // 33: SpaceX.API.Device.WifiPersistentStats.reboot_from_software_update:type_name -> SpaceX.API.Device.WifiPersistentStats.Event + 40, // 34: SpaceX.API.Device.WifiGetPersistentStatsResponse.stats:type_name -> SpaceX.API.Device.WifiPersistentStats + 56, // 35: SpaceX.API.Device.starlink_router_hourly_metrics_v2.id:type_name -> google.protobuf.StringValue + 56, // 36: SpaceX.API.Device.starlink_router_hourly_metrics_v2.timestamp_date:type_name -> google.protobuf.StringValue + 57, // 37: SpaceX.API.Device.starlink_router_hourly_metrics_v2.timestamp_hour:type_name -> google.protobuf.UInt32Value + 57, // 38: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_hw_gen:type_name -> google.protobuf.UInt32Value + 56, // 39: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_sw:type_name -> google.protobuf.StringValue + 56, // 40: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_country:type_name -> google.protobuf.StringValue + 58, // 41: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_is_dev:type_name -> google.protobuf.BoolValue + 57, // 42: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_alloc_fds:type_name -> google.protobuf.UInt32Value + 59, // 43: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_cpu_usage:type_name -> google.protobuf.FloatValue + 59, // 44: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_mem_free_kb:type_name -> google.protobuf.FloatValue + 60, // 45: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_bootcount:type_name -> google.protobuf.Int32Value + 58, // 46: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_partitions_equal:type_name -> google.protobuf.BoolValue + 57, // 47: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_uptime_seconds:type_name -> google.protobuf.UInt32Value + 60, // 48: SpaceX.API.Device.starlink_router_hourly_metrics_v2.sys_anti_rollback_version:type_name -> google.protobuf.Int32Value + 57, // 49: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_channel:type_name -> google.protobuf.UInt32Value + 59, // 50: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_antenna1_rssi:type_name -> google.protobuf.FloatValue + 59, // 51: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_antenna2_rssi:type_name -> google.protobuf.FloatValue + 59, // 52: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_antenna3_rssi:type_name -> google.protobuf.FloatValue + 57, // 53: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_iface_count:type_name -> google.protobuf.UInt32Value + 59, // 54: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_chan_busy_fraction:type_name -> google.protobuf.FloatValue + 59, // 55: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_edcca_fraction:type_name -> google.protobuf.FloatValue + 59, // 56: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_overlapping_bss_fraction:type_name -> google.protobuf.FloatValue + 57, // 57: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 58: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_packets:type_name -> google.protobuf.UInt32Value + 57, // 59: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_errors:type_name -> google.protobuf.UInt32Value + 57, // 60: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_frame_errors:type_name -> google.protobuf.UInt32Value + 59, // 61: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 62: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_rx_airtime_fraction:type_name -> google.protobuf.FloatValue + 57, // 63: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_tx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 64: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_tx_packets:type_name -> google.protobuf.UInt32Value + 57, // 65: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_tx_errors:type_name -> google.protobuf.UInt32Value + 59, // 66: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_tx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 67: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_tx_airtime_fraction:type_name -> google.protobuf.FloatValue + 57, // 68: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_channel:type_name -> google.protobuf.UInt32Value + 59, // 69: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_antenna1_rssi:type_name -> google.protobuf.FloatValue + 59, // 70: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_antenna2_rssi:type_name -> google.protobuf.FloatValue + 59, // 71: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_antenna3_rssi:type_name -> google.protobuf.FloatValue + 57, // 72: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_iface_count:type_name -> google.protobuf.UInt32Value + 59, // 73: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_chan_busy_fraction:type_name -> google.protobuf.FloatValue + 59, // 74: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_edcca_fraction:type_name -> google.protobuf.FloatValue + 59, // 75: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_overlapping_bss_fraction:type_name -> google.protobuf.FloatValue + 57, // 76: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 77: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_packets:type_name -> google.protobuf.UInt32Value + 57, // 78: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_errors:type_name -> google.protobuf.UInt32Value + 57, // 79: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_frame_errors:type_name -> google.protobuf.UInt32Value + 59, // 80: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 81: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_rx_airtime_fraction:type_name -> google.protobuf.FloatValue + 57, // 82: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_tx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 83: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_tx_packets:type_name -> google.protobuf.UInt32Value + 57, // 84: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_tx_errors:type_name -> google.protobuf.UInt32Value + 59, // 85: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_tx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 86: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_tx_airtime_fraction:type_name -> google.protobuf.FloatValue + 59, // 87: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_thermal_temp:type_name -> google.protobuf.FloatValue + 59, // 88: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_thermal_temp:type_name -> google.protobuf.FloatValue + 59, // 89: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_thermal_duty_cycle:type_name -> google.protobuf.FloatValue + 59, // 90: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_thermal_duty_cycle:type_name -> google.protobuf.FloatValue + 57, // 91: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_2ghz_thermal_throttled_seconds:type_name -> google.protobuf.UInt32Value + 57, // 92: SpaceX.API.Device.starlink_router_hourly_metrics_v2.radios_5ghz_thermal_throttled_seconds:type_name -> google.protobuf.UInt32Value + 57, // 93: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_rx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 94: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_rx_packets:type_name -> google.protobuf.UInt32Value + 57, // 95: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_rx_errors:type_name -> google.protobuf.UInt32Value + 57, // 96: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_rx_frame_errors:type_name -> google.protobuf.UInt32Value + 57, // 97: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_tx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 98: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_tx_packets:type_name -> google.protobuf.UInt32Value + 57, // 99: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_lan_eth_tx_errors:type_name -> google.protobuf.UInt32Value + 57, // 100: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_rx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 101: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_rx_packets:type_name -> google.protobuf.UInt32Value + 57, // 102: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_rx_errors:type_name -> google.protobuf.UInt32Value + 57, // 103: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_rx_frame_errors:type_name -> google.protobuf.UInt32Value + 57, // 104: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_tx_bytes:type_name -> google.protobuf.UInt32Value + 57, // 105: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_tx_packets:type_name -> google.protobuf.UInt32Value + 57, // 106: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ifaces_wan_eth_tx_errors:type_name -> google.protobuf.UInt32Value + 57, // 107: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients:type_name -> google.protobuf.UInt32Value + 57, // 108: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_2ghz:type_name -> google.protobuf.UInt32Value + 57, // 109: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_5ghz:type_name -> google.protobuf.UInt32Value + 57, // 110: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_eth:type_name -> google.protobuf.UInt32Value + 57, // 111: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_repeater:type_name -> google.protobuf.UInt32Value + 57, // 112: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_repeater_2ghz:type_name -> google.protobuf.UInt32Value + 57, // 113: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_repeater_5ghz:type_name -> google.protobuf.UInt32Value + 57, // 114: SpaceX.API.Device.starlink_router_hourly_metrics_v2.clients_repeater_eth:type_name -> google.protobuf.UInt32Value + 57, // 115: SpaceX.API.Device.starlink_router_hourly_metrics_v2.mesh_hops:type_name -> google.protobuf.UInt32Value + 59, // 116: SpaceX.API.Device.starlink_router_hourly_metrics_v2.mesh_one_hop_rssi_avg_2ghz:type_name -> google.protobuf.FloatValue + 59, // 117: SpaceX.API.Device.starlink_router_hourly_metrics_v2.mesh_one_hop_rssi_avg_5ghz:type_name -> google.protobuf.FloatValue + 59, // 118: SpaceX.API.Device.starlink_router_hourly_metrics_v2.mesh_two_hop_rssi_avg_2ghz:type_name -> google.protobuf.FloatValue + 59, // 119: SpaceX.API.Device.starlink_router_hourly_metrics_v2.mesh_two_hop_rssi_avg_5ghz:type_name -> google.protobuf.FloatValue + 59, // 120: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_seconds_since_last_1s_outage:type_name -> google.protobuf.FloatValue + 59, // 121: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_seconds_since_last_2s_outage:type_name -> google.protobuf.FloatValue + 59, // 122: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_seconds_since_last_5s_outage:type_name -> google.protobuf.FloatValue + 59, // 123: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_seconds_since_last_60s_outage:type_name -> google.protobuf.FloatValue + 59, // 124: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_seconds_since_last_300s_outage:type_name -> google.protobuf.FloatValue + 59, // 125: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_drop_rate:type_name -> google.protobuf.FloatValue + 59, // 126: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_drop_rate_last_1h:type_name -> google.protobuf.FloatValue + 59, // 127: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_latency:type_name -> google.protobuf.FloatValue + 59, // 128: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_seconds_since_last_1s_outage:type_name -> google.protobuf.FloatValue + 59, // 129: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_seconds_since_last_2s_outage:type_name -> google.protobuf.FloatValue + 59, // 130: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_seconds_since_last_5s_outage:type_name -> google.protobuf.FloatValue + 59, // 131: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_seconds_since_last_60s_outage:type_name -> google.protobuf.FloatValue + 59, // 132: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_seconds_since_last_300s_outage:type_name -> google.protobuf.FloatValue + 59, // 133: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_drop_rate:type_name -> google.protobuf.FloatValue + 59, // 134: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_drop_rate_last_1h:type_name -> google.protobuf.FloatValue + 59, // 135: SpaceX.API.Device.starlink_router_hourly_metrics_v2.ping_dish_latency:type_name -> google.protobuf.FloatValue + 59, // 136: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_router_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 137: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_router_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 138: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_router_rssi:type_name -> google.protobuf.FloatValue + 59, // 139: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_wifi_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 140: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_wifi_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 141: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 142: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 143: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_rssi:type_name -> google.protobuf.FloatValue + 57, // 144: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_iface:type_name -> google.protobuf.UInt32Value + 56, // 145: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_oui:type_name -> google.protobuf.StringValue + 57, // 146: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_tx_rate:type_name -> google.protobuf.UInt32Value + 57, // 147: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_rx_rate:type_name -> google.protobuf.UInt32Value + 57, // 148: SpaceX.API.Device.starlink_router_hourly_metrics_v2.client_speedtest_client_platform_type:type_name -> google.protobuf.UInt32Value + 59, // 149: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_8_download_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 150: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_8_download_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 151: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_8_upload_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 152: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_8_upload_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 153: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_64_download_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 154: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_64_download_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 155: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_64_upload_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 156: SpaceX.API.Device.starlink_router_hourly_metrics_v2.speedtest_tcp_64_upload_mbps_max:type_name -> google.protobuf.FloatValue + 57, // 157: SpaceX.API.Device.starlink_router_hourly_metrics_v2.dish_cell_id:type_name -> google.protobuf.UInt32Value + 58, // 158: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_setup_complete:type_name -> google.protobuf.BoolValue + 58, // 159: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_bands_split:type_name -> google.protobuf.BoolValue + 58, // 160: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_is_repeater:type_name -> google.protobuf.BoolValue + 58, // 161: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_open_network:type_name -> google.protobuf.BoolValue + 58, // 162: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_is_aviation:type_name -> google.protobuf.BoolValue + 58, // 163: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_secure_dns:type_name -> google.protobuf.BoolValue + 58, // 164: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_legacy:type_name -> google.protobuf.BoolValue + 58, // 165: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_ap_mode:type_name -> google.protobuf.BoolValue + 58, // 166: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_dfs_enabled:type_name -> google.protobuf.BoolValue + 58, // 167: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_network_name_is_default:type_name -> google.protobuf.BoolValue + 58, // 168: SpaceX.API.Device.starlink_router_hourly_metrics_v2.config_remote_ssh_enabled:type_name -> google.protobuf.BoolValue + 56, // 169: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.id:type_name -> google.protobuf.StringValue + 56, // 170: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.timestamp_date:type_name -> google.protobuf.StringValue + 57, // 171: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.timestamp_hour:type_name -> google.protobuf.UInt32Value + 61, // 172: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.timestamp:type_name -> SpaceX.API.Telemetron.Public.Common.TimestampInfo + 57, // 173: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_hw_gen:type_name -> google.protobuf.UInt32Value + 56, // 174: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_sw:type_name -> google.protobuf.StringValue + 56, // 175: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_country:type_name -> google.protobuf.StringValue + 58, // 176: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_is_dev:type_name -> google.protobuf.BoolValue + 57, // 177: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_alloc_fds:type_name -> google.protobuf.UInt32Value + 59, // 178: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_cpu_usage:type_name -> google.protobuf.FloatValue + 59, // 179: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_mem_free_kb:type_name -> google.protobuf.FloatValue + 60, // 180: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_bootcount:type_name -> google.protobuf.Int32Value + 58, // 181: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_partitions_equal:type_name -> google.protobuf.BoolValue + 57, // 182: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_uptime_seconds:type_name -> google.protobuf.UInt32Value + 60, // 183: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.sys_anti_rollback_version:type_name -> google.protobuf.Int32Value + 57, // 184: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_channel:type_name -> google.protobuf.UInt32Value + 59, // 185: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_antenna1_rssi:type_name -> google.protobuf.FloatValue + 59, // 186: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_antenna2_rssi:type_name -> google.protobuf.FloatValue + 59, // 187: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_antenna3_rssi:type_name -> google.protobuf.FloatValue + 57, // 188: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_iface_count:type_name -> google.protobuf.UInt32Value + 59, // 189: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_chan_busy_fraction:type_name -> google.protobuf.FloatValue + 59, // 190: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_edcca_fraction:type_name -> google.protobuf.FloatValue + 59, // 191: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_overlapping_bss_fraction:type_name -> google.protobuf.FloatValue + 62, // 192: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_bytes:type_name -> google.protobuf.Int64Value + 62, // 193: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_packets:type_name -> google.protobuf.Int64Value + 62, // 194: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_errors:type_name -> google.protobuf.Int64Value + 62, // 195: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_frame_errors:type_name -> google.protobuf.Int64Value + 59, // 196: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 197: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_rx_airtime_fraction:type_name -> google.protobuf.FloatValue + 62, // 198: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_tx_bytes:type_name -> google.protobuf.Int64Value + 62, // 199: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_tx_packets:type_name -> google.protobuf.Int64Value + 62, // 200: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_tx_errors:type_name -> google.protobuf.Int64Value + 59, // 201: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_tx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 202: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_tx_airtime_fraction:type_name -> google.protobuf.FloatValue + 57, // 203: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_channel:type_name -> google.protobuf.UInt32Value + 59, // 204: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_antenna1_rssi:type_name -> google.protobuf.FloatValue + 59, // 205: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_antenna2_rssi:type_name -> google.protobuf.FloatValue + 59, // 206: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_antenna3_rssi:type_name -> google.protobuf.FloatValue + 57, // 207: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_iface_count:type_name -> google.protobuf.UInt32Value + 59, // 208: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_chan_busy_fraction:type_name -> google.protobuf.FloatValue + 59, // 209: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_edcca_fraction:type_name -> google.protobuf.FloatValue + 59, // 210: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_overlapping_bss_fraction:type_name -> google.protobuf.FloatValue + 62, // 211: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_bytes:type_name -> google.protobuf.Int64Value + 62, // 212: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_packets:type_name -> google.protobuf.Int64Value + 62, // 213: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_errors:type_name -> google.protobuf.Int64Value + 62, // 214: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_frame_errors:type_name -> google.protobuf.Int64Value + 59, // 215: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 216: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_rx_airtime_fraction:type_name -> google.protobuf.FloatValue + 62, // 217: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_tx_bytes:type_name -> google.protobuf.Int64Value + 62, // 218: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_tx_packets:type_name -> google.protobuf.Int64Value + 62, // 219: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_tx_errors:type_name -> google.protobuf.Int64Value + 59, // 220: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_tx_packet_error_rate:type_name -> google.protobuf.FloatValue + 59, // 221: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_tx_airtime_fraction:type_name -> google.protobuf.FloatValue + 59, // 222: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_thermal_temp:type_name -> google.protobuf.FloatValue + 59, // 223: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_thermal_temp:type_name -> google.protobuf.FloatValue + 59, // 224: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_thermal_duty_cycle:type_name -> google.protobuf.FloatValue + 59, // 225: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_thermal_duty_cycle:type_name -> google.protobuf.FloatValue + 57, // 226: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_2ghz_thermal_throttled_seconds:type_name -> google.protobuf.UInt32Value + 57, // 227: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.radios_5ghz_thermal_throttled_seconds:type_name -> google.protobuf.UInt32Value + 62, // 228: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_rx_bytes:type_name -> google.protobuf.Int64Value + 62, // 229: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_rx_packets:type_name -> google.protobuf.Int64Value + 62, // 230: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_rx_errors:type_name -> google.protobuf.Int64Value + 62, // 231: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_rx_frame_errors:type_name -> google.protobuf.Int64Value + 62, // 232: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_tx_bytes:type_name -> google.protobuf.Int64Value + 62, // 233: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_tx_packets:type_name -> google.protobuf.Int64Value + 62, // 234: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_lan_eth_tx_errors:type_name -> google.protobuf.Int64Value + 62, // 235: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_rx_bytes:type_name -> google.protobuf.Int64Value + 62, // 236: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_rx_packets:type_name -> google.protobuf.Int64Value + 62, // 237: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_rx_errors:type_name -> google.protobuf.Int64Value + 62, // 238: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_rx_frame_errors:type_name -> google.protobuf.Int64Value + 62, // 239: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_tx_bytes:type_name -> google.protobuf.Int64Value + 62, // 240: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_tx_packets:type_name -> google.protobuf.Int64Value + 62, // 241: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ifaces_wan_eth_tx_errors:type_name -> google.protobuf.Int64Value + 57, // 242: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients:type_name -> google.protobuf.UInt32Value + 57, // 243: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_2ghz:type_name -> google.protobuf.UInt32Value + 57, // 244: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_5ghz:type_name -> google.protobuf.UInt32Value + 57, // 245: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_eth:type_name -> google.protobuf.UInt32Value + 57, // 246: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_repeater:type_name -> google.protobuf.UInt32Value + 57, // 247: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_repeater_2ghz:type_name -> google.protobuf.UInt32Value + 57, // 248: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_repeater_5ghz:type_name -> google.protobuf.UInt32Value + 57, // 249: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.clients_repeater_eth:type_name -> google.protobuf.UInt32Value + 57, // 250: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.mesh_hops:type_name -> google.protobuf.UInt32Value + 59, // 251: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.mesh_one_hop_rssi_avg_2ghz:type_name -> google.protobuf.FloatValue + 59, // 252: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.mesh_one_hop_rssi_avg_5ghz:type_name -> google.protobuf.FloatValue + 59, // 253: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.mesh_two_hop_rssi_avg_2ghz:type_name -> google.protobuf.FloatValue + 59, // 254: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.mesh_two_hop_rssi_avg_5ghz:type_name -> google.protobuf.FloatValue + 59, // 255: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_seconds_since_last_1s_outage:type_name -> google.protobuf.FloatValue + 59, // 256: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_seconds_since_last_2s_outage:type_name -> google.protobuf.FloatValue + 59, // 257: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_seconds_since_last_5s_outage:type_name -> google.protobuf.FloatValue + 59, // 258: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_seconds_since_last_60s_outage:type_name -> google.protobuf.FloatValue + 59, // 259: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_seconds_since_last_300s_outage:type_name -> google.protobuf.FloatValue + 59, // 260: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_drop_rate:type_name -> google.protobuf.FloatValue + 59, // 261: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_drop_rate_last_1h:type_name -> google.protobuf.FloatValue + 59, // 262: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_latency:type_name -> google.protobuf.FloatValue + 59, // 263: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_latency_last_1h:type_name -> google.protobuf.FloatValue + 59, // 264: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_seconds_since_last_1s_outage:type_name -> google.protobuf.FloatValue + 59, // 265: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_seconds_since_last_2s_outage:type_name -> google.protobuf.FloatValue + 59, // 266: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_seconds_since_last_5s_outage:type_name -> google.protobuf.FloatValue + 59, // 267: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_seconds_since_last_60s_outage:type_name -> google.protobuf.FloatValue + 59, // 268: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_seconds_since_last_300s_outage:type_name -> google.protobuf.FloatValue + 59, // 269: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_drop_rate:type_name -> google.protobuf.FloatValue + 59, // 270: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_drop_rate_last_1h:type_name -> google.protobuf.FloatValue + 59, // 271: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_latency:type_name -> google.protobuf.FloatValue + 59, // 272: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.ping_dish_latency_last_1h:type_name -> google.protobuf.FloatValue + 59, // 273: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_router_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 274: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_router_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 275: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_router_rssi:type_name -> google.protobuf.FloatValue + 59, // 276: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_wifi_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 277: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_wifi_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 278: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_download_mbps:type_name -> google.protobuf.FloatValue + 59, // 279: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_upload_mbps:type_name -> google.protobuf.FloatValue + 59, // 280: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_rssi:type_name -> google.protobuf.FloatValue + 57, // 281: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_iface:type_name -> google.protobuf.UInt32Value + 56, // 282: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_oui:type_name -> google.protobuf.StringValue + 57, // 283: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_tx_rate:type_name -> google.protobuf.UInt32Value + 57, // 284: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_rx_rate:type_name -> google.protobuf.UInt32Value + 57, // 285: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.client_speedtest_client_platform_type:type_name -> google.protobuf.UInt32Value + 59, // 286: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_8_download_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 287: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_8_download_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 288: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_8_upload_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 289: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_8_upload_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 290: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_64_download_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 291: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_64_download_mbps_max:type_name -> google.protobuf.FloatValue + 59, // 292: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_64_upload_mbps_avg:type_name -> google.protobuf.FloatValue + 59, // 293: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.speedtest_tcp_64_upload_mbps_max:type_name -> google.protobuf.FloatValue + 57, // 294: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.dish_cell_id:type_name -> google.protobuf.UInt32Value + 58, // 295: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_setup_complete:type_name -> google.protobuf.BoolValue + 58, // 296: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_bands_split:type_name -> google.protobuf.BoolValue + 58, // 297: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_is_repeater:type_name -> google.protobuf.BoolValue + 58, // 298: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_open_network:type_name -> google.protobuf.BoolValue + 58, // 299: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_is_aviation:type_name -> google.protobuf.BoolValue + 58, // 300: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_secure_dns:type_name -> google.protobuf.BoolValue + 58, // 301: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_legacy:type_name -> google.protobuf.BoolValue + 58, // 302: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_ap_mode:type_name -> google.protobuf.BoolValue + 58, // 303: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_dfs_enabled:type_name -> google.protobuf.BoolValue + 58, // 304: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_network_name_is_default:type_name -> google.protobuf.BoolValue + 58, // 305: SpaceX.API.Device.starlink_routers_hourly_metrics_v2.config_remote_ssh_enabled:type_name -> google.protobuf.BoolValue + 61, // 306: SpaceX.API.Device.starlink_router_alerts.start:type_name -> SpaceX.API.Telemetron.Public.Common.TimestampInfo + 61, // 307: SpaceX.API.Device.starlink_router_alerts.end:type_name -> SpaceX.API.Telemetron.Public.Common.TimestampInfo + 3, // 308: SpaceX.API.Device.WifiScanResults.Network.source:type_name -> SpaceX.API.Device.WifiScanResults.Network.Source + 6, // 309: SpaceX.API.Device.Mesh.MeshStream:input_type -> SpaceX.API.Device.ToController + 8, // 310: SpaceX.API.Device.Mesh.MeshStream:output_type -> SpaceX.API.Device.FromController + 310, // [310:311] is the sub-list for method output_type + 309, // [309:310] is the sub-list for method input_type + 309, // [309:309] is the sub-list for extension type_name + 309, // [309:309] is the sub-list for extension extendee + 0, // [0:309] is the sub-list for field type_name } func init() { file_spacex_api_device_wifi_proto_init() } @@ -1424,7 +7855,7 @@ func file_spacex_api_device_wifi_proto_init() { file_spacex_api_device_wifi_config_proto_init() if !protoimpl.UnsafeEnabled { file_spacex_api_device_wifi_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiSetConfigRequest); i { + switch v := v.(*WifiClients); i { case 0: return &v.state case 1: @@ -1436,7 +7867,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiSetConfigResponse); i { + switch v := v.(*ToController); i { case 0: return &v.state case 1: @@ -1448,7 +7879,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetClientsRequest); i { + switch v := v.(*WifiMeshJoin); i { case 0: return &v.state case 1: @@ -1460,7 +7891,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetClientsResponse); i { + switch v := v.(*FromController); i { case 0: return &v.state case 1: @@ -1472,7 +7903,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetHistoryResponse); i { + switch v := v.(*WifiSetConfigRequest); i { case 0: return &v.state case 1: @@ -1484,7 +7915,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiNewClientConnectedEvent); i { + switch v := v.(*WifiSetConfigResponse); i { case 0: return &v.state case 1: @@ -1496,7 +7927,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiClient); i { + switch v := v.(*WifiGetConfigRequest); i { case 0: return &v.state case 1: @@ -1508,7 +7939,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiSetupRequest); i { + switch v := v.(*WifiGetConfigResponse); i { case 0: return &v.state case 1: @@ -1520,7 +7951,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiSetupResponse); i { + switch v := v.(*WifiSetMeshDeviceTrustRequest); i { case 0: return &v.state case 1: @@ -1532,7 +7963,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetStatusResponse); i { + switch v := v.(*WifiSetMeshDeviceTrustResponse); i { case 0: return &v.state case 1: @@ -1544,7 +7975,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiAuthenticateRequest); i { + switch v := v.(*WifiSetMeshConfigRequest); i { case 0: return &v.state case 1: @@ -1556,7 +7987,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiAuthenticateResponse); i { + switch v := v.(*WifiSetMeshConfigResponse); i { case 0: return &v.state case 1: @@ -1568,7 +7999,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiAccountBondingEvent); i { + switch v := v.(*WifiGetClientsRequest); i { case 0: return &v.state case 1: @@ -1580,7 +8011,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PingMetrics); i { + switch v := v.(*WifiGetClientsResponse); i { case 0: return &v.state case 1: @@ -1592,7 +8023,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetPingMetricsRequest); i { + switch v := v.(*WifiGetClientHistoryRequest); i { case 0: return &v.state case 1: @@ -1604,7 +8035,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiGetPingMetricsResponse); i { + switch v := v.(*WifiGetClientHistoryResponse); i { case 0: return &v.state case 1: @@ -1616,7 +8047,7 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WifiClient_RxStats); i { + switch v := v.(*WifiGetHistoryResponse); i { case 0: return &v.state case 1: @@ -1628,6 +8059,294 @@ func file_spacex_api_device_wifi_proto_init() { } } file_spacex_api_device_wifi_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNewClientConnectedEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiClient); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiSetupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiSetupResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiBandStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiAlerts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetStatusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiAuthenticateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiAuthenticateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiAccountBondingEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNewPeerEvent); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PingMetrics); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetPingMetricsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetPingMetricsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetDiagnosticsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetDiagnosticsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiScanResults); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiNetwork); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiPersistentStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiGetPersistentStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StarlinkRouterHourlyMetricsV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StarlinkRoutersHourlyMetricsV2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StarlinkRouterAlerts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiClient_RxStats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WifiClient_TxStats); i { case 0: return &v.state @@ -1639,16 +8358,47 @@ func file_spacex_api_device_wifi_proto_init() { return nil } } + file_spacex_api_device_wifi_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiScanResults_Network); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiPersistentStats_Event); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } + file_spacex_api_device_wifi_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*ToController_Clients)(nil), + (*ToController_MeshJoin)(nil), + } + file_spacex_api_device_wifi_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*FromController_WifiConfig)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_wifi_proto_rawDesc, - NumEnums: 1, - NumMessages: 18, + NumEnums: 5, + NumMessages: 44, NumExtensions: 0, - NumServices: 0, + NumServices: 1, }, GoTypes: file_spacex_api_device_wifi_proto_goTypes, DependencyIndexes: file_spacex_api_device_wifi_proto_depIdxs, blob - b4060d5473f2b1c106f7da653be4577736a3df10 blob + c3c864f7ba7429c3ebe6f3a3c27ad18be9656eec --- device/wifi_config.pb.go +++ device/wifi_config.pb.go @@ -20,27 +20,517 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type MeshAuth int32 + +const ( + MeshAuth_MESH_AUTH_UNKNOWN MeshAuth = 0 + MeshAuth_MESH_AUTH_NEW MeshAuth = 1 + MeshAuth_MESH_AUTH_TRUSTED MeshAuth = 2 + MeshAuth_MESH_AUTH_UNTRUSTED MeshAuth = 3 +) + +// Enum value maps for MeshAuth. +var ( + MeshAuth_name = map[int32]string{ + 0: "MESH_AUTH_UNKNOWN", + 1: "MESH_AUTH_NEW", + 2: "MESH_AUTH_TRUSTED", + 3: "MESH_AUTH_UNTRUSTED", + } + MeshAuth_value = map[string]int32{ + "MESH_AUTH_UNKNOWN": 0, + "MESH_AUTH_NEW": 1, + "MESH_AUTH_TRUSTED": 2, + "MESH_AUTH_UNTRUSTED": 3, + } +) + +func (x MeshAuth) Enum() *MeshAuth { + p := new(MeshAuth) + *p = x + return p +} + +func (x MeshAuth) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MeshAuth) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[0].Descriptor() +} + +func (MeshAuth) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[0] +} + +func (x MeshAuth) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use MeshAuth.Descriptor instead. +func (MeshAuth) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{0} +} + +type WifiConfig_Security int32 + +const ( + WifiConfig_UNKNOWN WifiConfig_Security = 0 + WifiConfig_WPA2 WifiConfig_Security = 1 + WifiConfig_WPA3 WifiConfig_Security = 2 + WifiConfig_WPA2WPA3 WifiConfig_Security = 3 +) + +// Enum value maps for WifiConfig_Security. +var ( + WifiConfig_Security_name = map[int32]string{ + 0: "UNKNOWN", + 1: "WPA2", + 2: "WPA3", + 3: "WPA2WPA3", + } + WifiConfig_Security_value = map[string]int32{ + "UNKNOWN": 0, + "WPA2": 1, + "WPA3": 2, + "WPA2WPA3": 3, + } +) + +func (x WifiConfig_Security) Enum() *WifiConfig_Security { + p := new(WifiConfig_Security) + *p = x + return p +} + +func (x WifiConfig_Security) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiConfig_Security) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[1].Descriptor() +} + +func (WifiConfig_Security) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[1] +} + +func (x WifiConfig_Security) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiConfig_Security.Descriptor instead. +func (WifiConfig_Security) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 0} +} + +type WifiConfig_Band int32 + +const ( + WifiConfig_RF_UNKNOWN WifiConfig_Band = 0 + WifiConfig_RF_2GHZ WifiConfig_Band = 2 + WifiConfig_RF_5GHZ WifiConfig_Band = 5 +) + +// Enum value maps for WifiConfig_Band. +var ( + WifiConfig_Band_name = map[int32]string{ + 0: "RF_UNKNOWN", + 2: "RF_2GHZ", + 5: "RF_5GHZ", + } + WifiConfig_Band_value = map[string]int32{ + "RF_UNKNOWN": 0, + "RF_2GHZ": 2, + "RF_5GHZ": 5, + } +) + +func (x WifiConfig_Band) Enum() *WifiConfig_Band { + p := new(WifiConfig_Band) + *p = x + return p +} + +func (x WifiConfig_Band) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiConfig_Band) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[2].Descriptor() +} + +func (WifiConfig_Band) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[2] +} + +func (x WifiConfig_Band) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiConfig_Band.Descriptor instead. +func (WifiConfig_Band) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 1} +} + +type WifiConfig_WirelessMode int32 + +const ( + WifiConfig_WIRELESS_MODE_DEFAULT WifiConfig_WirelessMode = 0 + WifiConfig_A_ONLY WifiConfig_WirelessMode = 1 + WifiConfig_B_ONLY WifiConfig_WirelessMode = 2 + WifiConfig_G_ONLY WifiConfig_WirelessMode = 3 + WifiConfig_N_ONLY WifiConfig_WirelessMode = 4 + WifiConfig_B_G_MIXED WifiConfig_WirelessMode = 5 + WifiConfig_A_N_MIXED WifiConfig_WirelessMode = 6 + WifiConfig_G_N_MIXED WifiConfig_WirelessMode = 7 + WifiConfig_B_G_N_MIXED WifiConfig_WirelessMode = 8 + WifiConfig_A_AN_AC_MIXED WifiConfig_WirelessMode = 9 + WifiConfig_AN_AC_MIXED WifiConfig_WirelessMode = 10 + WifiConfig_B_G_N_AX_MIXED WifiConfig_WirelessMode = 11 + WifiConfig_A_AN_AC_AX_MIXED WifiConfig_WirelessMode = 12 +) + +// Enum value maps for WifiConfig_WirelessMode. +var ( + WifiConfig_WirelessMode_name = map[int32]string{ + 0: "WIRELESS_MODE_DEFAULT", + 1: "A_ONLY", + 2: "B_ONLY", + 3: "G_ONLY", + 4: "N_ONLY", + 5: "B_G_MIXED", + 6: "A_N_MIXED", + 7: "G_N_MIXED", + 8: "B_G_N_MIXED", + 9: "A_AN_AC_MIXED", + 10: "AN_AC_MIXED", + 11: "B_G_N_AX_MIXED", + 12: "A_AN_AC_AX_MIXED", + } + WifiConfig_WirelessMode_value = map[string]int32{ + "WIRELESS_MODE_DEFAULT": 0, + "A_ONLY": 1, + "B_ONLY": 2, + "G_ONLY": 3, + "N_ONLY": 4, + "B_G_MIXED": 5, + "A_N_MIXED": 6, + "G_N_MIXED": 7, + "B_G_N_MIXED": 8, + "A_AN_AC_MIXED": 9, + "AN_AC_MIXED": 10, + "B_G_N_AX_MIXED": 11, + "A_AN_AC_AX_MIXED": 12, + } +) + +func (x WifiConfig_WirelessMode) Enum() *WifiConfig_WirelessMode { + p := new(WifiConfig_WirelessMode) + *p = x + return p +} + +func (x WifiConfig_WirelessMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiConfig_WirelessMode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[3].Descriptor() +} + +func (WifiConfig_WirelessMode) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[3] +} + +func (x WifiConfig_WirelessMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiConfig_WirelessMode.Descriptor instead. +func (WifiConfig_WirelessMode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 2} +} + +type WifiConfig_HTBandwidth int32 + +const ( + WifiConfig_HT_BANDWIDTH_DEFAULT WifiConfig_HTBandwidth = 0 + WifiConfig_HT_BANDWIDTH_20_MHZ WifiConfig_HTBandwidth = 1 + WifiConfig_HT_BANDWIDTH_20_OR_40_MHZ WifiConfig_HTBandwidth = 2 +) + +// Enum value maps for WifiConfig_HTBandwidth. +var ( + WifiConfig_HTBandwidth_name = map[int32]string{ + 0: "HT_BANDWIDTH_DEFAULT", + 1: "HT_BANDWIDTH_20_MHZ", + 2: "HT_BANDWIDTH_20_OR_40_MHZ", + } + WifiConfig_HTBandwidth_value = map[string]int32{ + "HT_BANDWIDTH_DEFAULT": 0, + "HT_BANDWIDTH_20_MHZ": 1, + "HT_BANDWIDTH_20_OR_40_MHZ": 2, + } +) + +func (x WifiConfig_HTBandwidth) Enum() *WifiConfig_HTBandwidth { + p := new(WifiConfig_HTBandwidth) + *p = x + return p +} + +func (x WifiConfig_HTBandwidth) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiConfig_HTBandwidth) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[4].Descriptor() +} + +func (WifiConfig_HTBandwidth) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[4] +} + +func (x WifiConfig_HTBandwidth) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiConfig_HTBandwidth.Descriptor instead. +func (WifiConfig_HTBandwidth) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 3} +} + +type WifiConfig_VHTBandwidth int32 + +const ( + WifiConfig_VHT_BANDWIDTH_DEFAULT WifiConfig_VHTBandwidth = 0 + WifiConfig_VHT_BANDWIDTH_DISABLED WifiConfig_VHTBandwidth = 1 + WifiConfig_VHT_BANDWIDTH_80_MHZ WifiConfig_VHTBandwidth = 2 + WifiConfig_VHT_BANDWIDTH_160_MHZ WifiConfig_VHTBandwidth = 3 + WifiConfig_VHT_BANDWIDTH_80_PLUS_80_MHZ WifiConfig_VHTBandwidth = 4 +) + +// Enum value maps for WifiConfig_VHTBandwidth. +var ( + WifiConfig_VHTBandwidth_name = map[int32]string{ + 0: "VHT_BANDWIDTH_DEFAULT", + 1: "VHT_BANDWIDTH_DISABLED", + 2: "VHT_BANDWIDTH_80_MHZ", + 3: "VHT_BANDWIDTH_160_MHZ", + 4: "VHT_BANDWIDTH_80_PLUS_80_MHZ", + } + WifiConfig_VHTBandwidth_value = map[string]int32{ + "VHT_BANDWIDTH_DEFAULT": 0, + "VHT_BANDWIDTH_DISABLED": 1, + "VHT_BANDWIDTH_80_MHZ": 2, + "VHT_BANDWIDTH_160_MHZ": 3, + "VHT_BANDWIDTH_80_PLUS_80_MHZ": 4, + } +) + +func (x WifiConfig_VHTBandwidth) Enum() *WifiConfig_VHTBandwidth { + p := new(WifiConfig_VHTBandwidth) + *p = x + return p +} + +func (x WifiConfig_VHTBandwidth) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WifiConfig_VHTBandwidth) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_device_wifi_config_proto_enumTypes[5].Descriptor() +} + +func (WifiConfig_VHTBandwidth) Type() protoreflect.EnumType { + return &file_spacex_api_device_wifi_config_proto_enumTypes[5] +} + +func (x WifiConfig_VHTBandwidth) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WifiConfig_VHTBandwidth.Descriptor instead. +func (WifiConfig_VHTBandwidth) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 4} +} + +type MeshConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DisplayName string `protobuf:"bytes,1,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + ApplyDisplayName bool `protobuf:"varint,2,opt,name=apply_display_name,json=applyDisplayName,proto3" json:"apply_display_name,omitempty"` + Auth MeshAuth `protobuf:"varint,3,opt,name=auth,proto3,enum=SpaceX.API.Device.MeshAuth" json:"auth,omitempty"` + ApplyAuth bool `protobuf:"varint,4,opt,name=apply_auth,json=applyAuth,proto3" json:"apply_auth,omitempty"` + LastConnected int64 `protobuf:"varint,5,opt,name=last_connected,json=lastConnected,proto3" json:"last_connected,omitempty"` + Incarnation uint64 `protobuf:"varint,7,opt,name=incarnation,proto3" json:"incarnation,omitempty"` +} + +func (x *MeshConfig) Reset() { + *x = MeshConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MeshConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MeshConfig) ProtoMessage() {} + +func (x *MeshConfig) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MeshConfig.ProtoReflect.Descriptor instead. +func (*MeshConfig) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{0} +} + +func (x *MeshConfig) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *MeshConfig) GetApplyDisplayName() bool { + if x != nil { + return x.ApplyDisplayName + } + return false +} + +func (x *MeshConfig) GetAuth() MeshAuth { + if x != nil { + return x.Auth + } + return MeshAuth_MESH_AUTH_UNKNOWN +} + +func (x *MeshConfig) GetApplyAuth() bool { + if x != nil { + return x.ApplyAuth + } + return false +} + +func (x *MeshConfig) GetLastConnected() int64 { + if x != nil { + return x.LastConnected + } + return 0 +} + +func (x *MeshConfig) GetIncarnation() uint64 { + if x != nil { + return x.Incarnation + } + return 0 +} + type WifiConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NetworkName string `protobuf:"bytes,1,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` - ApplyNetworkName bool `protobuf:"varint,1001,opt,name=apply_network_name,json=applyNetworkName,proto3" json:"apply_network_name,omitempty"` - NetworkPassword string `protobuf:"bytes,2,opt,name=network_password,json=networkPassword,proto3" json:"network_password,omitempty"` - ApplyNetworkPassword bool `protobuf:"varint,1002,opt,name=apply_network_password,json=applyNetworkPassword,proto3" json:"apply_network_password,omitempty"` - CountryCode string `protobuf:"bytes,3,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` - WifiDisabled bool `protobuf:"varint,4,opt,name=wifi_disabled,json=wifiDisabled,proto3" json:"wifi_disabled,omitempty"` - ApplyWifiDisabled bool `protobuf:"varint,1003,opt,name=apply_wifi_disabled,json=applyWifiDisabled,proto3" json:"apply_wifi_disabled,omitempty"` - LanIpv4 string `protobuf:"bytes,5,opt,name=lan_ipv4,json=lanIpv4,proto3" json:"lan_ipv4,omitempty"` - LanIpv4SubnetMask string `protobuf:"bytes,6,opt,name=lan_ipv4_subnet_mask,json=lanIpv4SubnetMask,proto3" json:"lan_ipv4_subnet_mask,omitempty"` - SetupComplete bool `protobuf:"varint,7,opt,name=setup_complete,json=setupComplete,proto3" json:"setup_complete,omitempty"` + CountryCode string `protobuf:"bytes,3,opt,name=country_code,json=countryCode,proto3" json:"country_code,omitempty"` + PinCountryCode bool `protobuf:"varint,53,opt,name=pin_country_code,json=pinCountryCode,proto3" json:"pin_country_code,omitempty"` + CustomPowerTable bool `protobuf:"varint,54,opt,name=custom_power_table,json=customPowerTable,proto3" json:"custom_power_table,omitempty"` + SetupComplete bool `protobuf:"varint,7,opt,name=setup_complete,json=setupComplete,proto3" json:"setup_complete,omitempty"` + ApplySetupComplete bool `protobuf:"varint,1010,opt,name=apply_setup_complete,json=applySetupComplete,proto3" json:"apply_setup_complete,omitempty"` + Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"` + // Deprecated: Do not use. + MacWan string `protobuf:"bytes,12,opt,name=mac_wan,json=macWan,proto3" json:"mac_wan,omitempty"` + // Deprecated: Do not use. + MacLan string `protobuf:"bytes,13,opt,name=mac_lan,json=macLan,proto3" json:"mac_lan,omitempty"` + Channel_2Ghz uint32 `protobuf:"varint,19,opt,name=channel_2ghz,json=channel2ghz,proto3" json:"channel_2ghz,omitempty"` + ApplyChannel_2Ghz bool `protobuf:"varint,1013,opt,name=apply_channel_2ghz,json=applyChannel2ghz,proto3" json:"apply_channel_2ghz,omitempty"` + Channel_5Ghz uint32 `protobuf:"varint,20,opt,name=channel_5ghz,json=channel5ghz,proto3" json:"channel_5ghz,omitempty"` + ApplyChannel_5Ghz bool `protobuf:"varint,1014,opt,name=apply_channel_5ghz,json=applyChannel5ghz,proto3" json:"apply_channel_5ghz,omitempty"` + MeshConfigs map[string]*MeshConfig `protobuf:"bytes,33,rep,name=mesh_configs,json=meshConfigs,proto3" json:"mesh_configs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + MeshConfigsUpdates map[string]*MeshConfig `protobuf:"bytes,3033,rep,name=mesh_configs_updates,json=meshConfigsUpdates,proto3" json:"mesh_configs_updates,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + ApplyMeshConfigs bool `protobuf:"varint,1033,opt,name=apply_mesh_configs,json=applyMeshConfigs,proto3" json:"apply_mesh_configs,omitempty"` + DynamicKeys []*PublicKey `protobuf:"bytes,22,rep,name=dynamic_keys,json=dynamicKeys,proto3" json:"dynamic_keys,omitempty"` + ApplyDynamicKeys bool `protobuf:"varint,39,opt,name=apply_dynamic_keys,json=applyDynamicKeys,proto3" json:"apply_dynamic_keys,omitempty"` + IsRepeater bool `protobuf:"varint,23,opt,name=is_repeater,json=isRepeater,proto3" json:"is_repeater,omitempty"` + ApplyIsRepeater bool `protobuf:"varint,1031,opt,name=apply_is_repeater,json=applyIsRepeater,proto3" json:"apply_is_repeater,omitempty"` + ApMode bool `protobuf:"varint,51,opt,name=ap_mode,json=apMode,proto3" json:"ap_mode,omitempty"` + ApplyApMode bool `protobuf:"varint,1066,opt,name=apply_ap_mode,json=applyApMode,proto3" json:"apply_ap_mode,omitempty"` + IsAviation bool `protobuf:"varint,49,opt,name=is_aviation,json=isAviation,proto3" json:"is_aviation,omitempty"` + ApplyIsAviation bool `protobuf:"varint,1064,opt,name=apply_is_aviation,json=applyIsAviation,proto3" json:"apply_is_aviation,omitempty"` + BootCount int32 `protobuf:"varint,26,opt,name=boot_count,json=bootCount,proto3" json:"boot_count,omitempty"` + Boot *BootInfo `protobuf:"bytes,3001,opt,name=boot,proto3" json:"boot,omitempty"` + Nameservers []string `protobuf:"bytes,30,rep,name=nameservers,proto3" json:"nameservers,omitempty"` + ApplyNameservers bool `protobuf:"varint,1054,opt,name=apply_nameservers,json=applyNameservers,proto3" json:"apply_nameservers,omitempty"` + SecureDns bool `protobuf:"varint,50,opt,name=secure_dns,json=secureDns,proto3" json:"secure_dns,omitempty"` + ApplySecureDns bool `protobuf:"varint,1065,opt,name=apply_secure_dns,json=applySecureDns,proto3" json:"apply_secure_dns,omitempty"` + BypassMode bool `protobuf:"varint,31,opt,name=bypass_mode,json=bypassMode,proto3" json:"bypass_mode,omitempty"` + ApplyBypassMode bool `protobuf:"varint,1055,opt,name=apply_bypass_mode,json=applyBypassMode,proto3" json:"apply_bypass_mode,omitempty"` + DfsEnabled bool `protobuf:"varint,42,opt,name=dfs_enabled,json=dfsEnabled,proto3" json:"dfs_enabled,omitempty"` + ApplyDfsEnabled bool `protobuf:"varint,1058,opt,name=apply_dfs_enabled,json=applyDfsEnabled,proto3" json:"apply_dfs_enabled,omitempty"` + DisableMeshOnboarding bool `protobuf:"varint,52,opt,name=disable_mesh_onboarding,json=disableMeshOnboarding,proto3" json:"disable_mesh_onboarding,omitempty"` + ApplyDisableMeshOnboarding bool `protobuf:"varint,1067,opt,name=apply_disable_mesh_onboarding,json=applyDisableMeshOnboarding,proto3" json:"apply_disable_mesh_onboarding,omitempty"` + Networks []*WifiConfig_Network `protobuf:"bytes,1100,rep,name=networks,proto3" json:"networks,omitempty"` + ApplyNetworks bool `protobuf:"varint,1101,opt,name=apply_networks,json=applyNetworks,proto3" json:"apply_networks,omitempty"` + // Deprecated: Do not use. + NetworkName string `protobuf:"bytes,1,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + // Deprecated: Do not use. + ApplyNetworkName bool `protobuf:"varint,1001,opt,name=apply_network_name,json=applyNetworkName,proto3" json:"apply_network_name,omitempty"` + // Deprecated: Do not use. + NetworkPassword string `protobuf:"bytes,2,opt,name=network_password,json=networkPassword,proto3" json:"network_password,omitempty"` + // Deprecated: Do not use. + ApplyNetworkPassword bool `protobuf:"varint,1002,opt,name=apply_network_password,json=applyNetworkPassword,proto3" json:"apply_network_password,omitempty"` + // Deprecated: Do not use. + LanIpv4 string `protobuf:"bytes,5,opt,name=lan_ipv4,json=lanIpv4,proto3" json:"lan_ipv4,omitempty"` + // Deprecated: Do not use. + ApplyLanIpv4 bool `protobuf:"varint,37,opt,name=apply_lan_ipv4,json=applyLanIpv4,proto3" json:"apply_lan_ipv4,omitempty"` + // Deprecated: Do not use. + WifiSecurity WifiConfig_Security `protobuf:"varint,10,opt,name=wifi_security,json=wifiSecurity,proto3,enum=SpaceX.API.Device.WifiConfig_Security" json:"wifi_security,omitempty"` + // Deprecated: Do not use. + ApplyWifiSecurity bool `protobuf:"varint,1004,opt,name=apply_wifi_security,json=applyWifiSecurity,proto3" json:"apply_wifi_security,omitempty"` + // Deprecated: Do not use. + NetworkName_5Ghz string `protobuf:"bytes,11,opt,name=network_name_5ghz,json=networkName5ghz,proto3" json:"network_name_5ghz,omitempty"` + // Deprecated: Do not use. + ApplyNetworkName_5Ghz bool `protobuf:"varint,1005,opt,name=apply_network_name_5ghz,json=applyNetworkName5ghz,proto3" json:"apply_network_name_5ghz,omitempty"` + EnableRemoteSsh bool `protobuf:"varint,34,opt,name=enable_remote_ssh,json=enableRemoteSsh,proto3" json:"enable_remote_ssh,omitempty"` + ApplyEnableRemoteSsh bool `protobuf:"varint,1057,opt,name=apply_enable_remote_ssh,json=applyEnableRemoteSsh,proto3" json:"apply_enable_remote_ssh,omitempty"` + LastRemoteSshAccess int64 `protobuf:"varint,35,opt,name=last_remote_ssh_access,json=lastRemoteSshAccess,proto3" json:"last_remote_ssh_access,omitempty"` + Incarnation uint64 `protobuf:"varint,43,opt,name=incarnation,proto3" json:"incarnation,omitempty"` + WirelessMode_2Ghz WifiConfig_WirelessMode `protobuf:"varint,44,opt,name=wireless_mode_2ghz,json=wirelessMode2ghz,proto3,enum=SpaceX.API.Device.WifiConfig_WirelessMode" json:"wireless_mode_2ghz,omitempty"` + ApplyWirelessMode_2Ghz bool `protobuf:"varint,1059,opt,name=apply_wireless_mode_2ghz,json=applyWirelessMode2ghz,proto3" json:"apply_wireless_mode_2ghz,omitempty"` + WirelessMode_5Ghz WifiConfig_WirelessMode `protobuf:"varint,45,opt,name=wireless_mode_5ghz,json=wirelessMode5ghz,proto3,enum=SpaceX.API.Device.WifiConfig_WirelessMode" json:"wireless_mode_5ghz,omitempty"` + ApplyWirelessMode_5Ghz bool `protobuf:"varint,1060,opt,name=apply_wireless_mode_5ghz,json=applyWirelessMode5ghz,proto3" json:"apply_wireless_mode_5ghz,omitempty"` + HtBandwidth_2Ghz WifiConfig_HTBandwidth `protobuf:"varint,46,opt,name=ht_bandwidth_2ghz,json=htBandwidth2ghz,proto3,enum=SpaceX.API.Device.WifiConfig_HTBandwidth" json:"ht_bandwidth_2ghz,omitempty"` + ApplyHtBandwidth_2Ghz bool `protobuf:"varint,1061,opt,name=apply_ht_bandwidth_2ghz,json=applyHtBandwidth2ghz,proto3" json:"apply_ht_bandwidth_2ghz,omitempty"` + HtBandwidth_5Ghz WifiConfig_HTBandwidth `protobuf:"varint,47,opt,name=ht_bandwidth_5ghz,json=htBandwidth5ghz,proto3,enum=SpaceX.API.Device.WifiConfig_HTBandwidth" json:"ht_bandwidth_5ghz,omitempty"` + ApplyHtBandwidth_5Ghz bool `protobuf:"varint,1062,opt,name=apply_ht_bandwidth_5ghz,json=applyHtBandwidth5ghz,proto3" json:"apply_ht_bandwidth_5ghz,omitempty"` + VhtBandwidth WifiConfig_VHTBandwidth `protobuf:"varint,48,opt,name=vht_bandwidth,json=vhtBandwidth,proto3,enum=SpaceX.API.Device.WifiConfig_VHTBandwidth" json:"vht_bandwidth,omitempty"` + ApplyVhtBandwidth bool `protobuf:"varint,1063,opt,name=apply_vht_bandwidth,json=applyVhtBandwidth,proto3" json:"apply_vht_bandwidth,omitempty"` + UsePublicServices bool `protobuf:"varint,55,opt,name=use_public_services,json=usePublicServices,proto3" json:"use_public_services,omitempty"` + ApplyUsePublicServices bool `protobuf:"varint,1068,opt,name=apply_use_public_services,json=applyUsePublicServices,proto3" json:"apply_use_public_services,omitempty"` + DisableAutomatedSpeedtests bool `protobuf:"varint,56,opt,name=disable_automated_speedtests,json=disableAutomatedSpeedtests,proto3" json:"disable_automated_speedtests,omitempty"` + ApplyDisableAutomatedSpeedtests bool `protobuf:"varint,1069,opt,name=apply_disable_automated_speedtests,json=applyDisableAutomatedSpeedtests,proto3" json:"apply_disable_automated_speedtests,omitempty"` } func (x *WifiConfig) Reset() { *x = WifiConfig{} if protoimpl.UnsafeEnabled { - mi := &file_spacex_api_device_wifi_config_proto_msgTypes[0] + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -53,7 +543,7 @@ func (x *WifiConfig) String() string { func (*WifiConfig) ProtoMessage() {} func (x *WifiConfig) ProtoReflect() protoreflect.Message { - mi := &file_spacex_api_device_wifi_config_proto_msgTypes[0] + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -66,115 +556,1361 @@ func (x *WifiConfig) ProtoReflect() protoreflect.Messa // Deprecated: Use WifiConfig.ProtoReflect.Descriptor instead. func (*WifiConfig) Descriptor() ([]byte, []int) { - return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{0} + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1} } -func (x *WifiConfig) GetNetworkName() string { - if x != nil { - return x.NetworkName +func (x *WifiConfig) GetCountryCode() string { + if x != nil { + return x.CountryCode } return "" } -func (x *WifiConfig) GetApplyNetworkName() bool { +func (x *WifiConfig) GetPinCountryCode() bool { if x != nil { - return x.ApplyNetworkName + return x.PinCountryCode } return false } -func (x *WifiConfig) GetNetworkPassword() string { +func (x *WifiConfig) GetCustomPowerTable() bool { if x != nil { - return x.NetworkPassword + return x.CustomPowerTable } - return "" + return false } -func (x *WifiConfig) GetApplyNetworkPassword() bool { +func (x *WifiConfig) GetSetupComplete() bool { if x != nil { - return x.ApplyNetworkPassword + return x.SetupComplete } return false } -func (x *WifiConfig) GetCountryCode() string { +func (x *WifiConfig) GetApplySetupComplete() bool { if x != nil { - return x.CountryCode + return x.ApplySetupComplete } + return false +} + +func (x *WifiConfig) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetMacWan() string { + if x != nil { + return x.MacWan + } return "" } -func (x *WifiConfig) GetWifiDisabled() bool { +// Deprecated: Do not use. +func (x *WifiConfig) GetMacLan() string { if x != nil { - return x.WifiDisabled + return x.MacLan } + return "" +} + +func (x *WifiConfig) GetChannel_2Ghz() uint32 { + if x != nil { + return x.Channel_2Ghz + } + return 0 +} + +func (x *WifiConfig) GetApplyChannel_2Ghz() bool { + if x != nil { + return x.ApplyChannel_2Ghz + } return false } -func (x *WifiConfig) GetApplyWifiDisabled() bool { +func (x *WifiConfig) GetChannel_5Ghz() uint32 { if x != nil { - return x.ApplyWifiDisabled + return x.Channel_5Ghz } + return 0 +} + +func (x *WifiConfig) GetApplyChannel_5Ghz() bool { + if x != nil { + return x.ApplyChannel_5Ghz + } return false } -func (x *WifiConfig) GetLanIpv4() string { +func (x *WifiConfig) GetMeshConfigs() map[string]*MeshConfig { if x != nil { - return x.LanIpv4 + return x.MeshConfigs } - return "" + return nil } -func (x *WifiConfig) GetLanIpv4SubnetMask() string { +func (x *WifiConfig) GetMeshConfigsUpdates() map[string]*MeshConfig { if x != nil { - return x.LanIpv4SubnetMask + return x.MeshConfigsUpdates } + return nil +} + +func (x *WifiConfig) GetApplyMeshConfigs() bool { + if x != nil { + return x.ApplyMeshConfigs + } + return false +} + +func (x *WifiConfig) GetDynamicKeys() []*PublicKey { + if x != nil { + return x.DynamicKeys + } + return nil +} + +func (x *WifiConfig) GetApplyDynamicKeys() bool { + if x != nil { + return x.ApplyDynamicKeys + } + return false +} + +func (x *WifiConfig) GetIsRepeater() bool { + if x != nil { + return x.IsRepeater + } + return false +} + +func (x *WifiConfig) GetApplyIsRepeater() bool { + if x != nil { + return x.ApplyIsRepeater + } + return false +} + +func (x *WifiConfig) GetApMode() bool { + if x != nil { + return x.ApMode + } + return false +} + +func (x *WifiConfig) GetApplyApMode() bool { + if x != nil { + return x.ApplyApMode + } + return false +} + +func (x *WifiConfig) GetIsAviation() bool { + if x != nil { + return x.IsAviation + } + return false +} + +func (x *WifiConfig) GetApplyIsAviation() bool { + if x != nil { + return x.ApplyIsAviation + } + return false +} + +func (x *WifiConfig) GetBootCount() int32 { + if x != nil { + return x.BootCount + } + return 0 +} + +func (x *WifiConfig) GetBoot() *BootInfo { + if x != nil { + return x.Boot + } + return nil +} + +func (x *WifiConfig) GetNameservers() []string { + if x != nil { + return x.Nameservers + } + return nil +} + +func (x *WifiConfig) GetApplyNameservers() bool { + if x != nil { + return x.ApplyNameservers + } + return false +} + +func (x *WifiConfig) GetSecureDns() bool { + if x != nil { + return x.SecureDns + } + return false +} + +func (x *WifiConfig) GetApplySecureDns() bool { + if x != nil { + return x.ApplySecureDns + } + return false +} + +func (x *WifiConfig) GetBypassMode() bool { + if x != nil { + return x.BypassMode + } + return false +} + +func (x *WifiConfig) GetApplyBypassMode() bool { + if x != nil { + return x.ApplyBypassMode + } + return false +} + +func (x *WifiConfig) GetDfsEnabled() bool { + if x != nil { + return x.DfsEnabled + } + return false +} + +func (x *WifiConfig) GetApplyDfsEnabled() bool { + if x != nil { + return x.ApplyDfsEnabled + } + return false +} + +func (x *WifiConfig) GetDisableMeshOnboarding() bool { + if x != nil { + return x.DisableMeshOnboarding + } + return false +} + +func (x *WifiConfig) GetApplyDisableMeshOnboarding() bool { + if x != nil { + return x.ApplyDisableMeshOnboarding + } + return false +} + +func (x *WifiConfig) GetNetworks() []*WifiConfig_Network { + if x != nil { + return x.Networks + } + return nil +} + +func (x *WifiConfig) GetApplyNetworks() bool { + if x != nil { + return x.ApplyNetworks + } + return false +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetNetworkName() string { + if x != nil { + return x.NetworkName + } return "" } -func (x *WifiConfig) GetSetupComplete() bool { +// Deprecated: Do not use. +func (x *WifiConfig) GetApplyNetworkName() bool { if x != nil { - return x.SetupComplete + return x.ApplyNetworkName + } + return false +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetNetworkPassword() string { + if x != nil { + return x.NetworkPassword + } + return "" +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetApplyNetworkPassword() bool { + if x != nil { + return x.ApplyNetworkPassword + } + return false +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetLanIpv4() string { + if x != nil { + return x.LanIpv4 + } + return "" +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetApplyLanIpv4() bool { + if x != nil { + return x.ApplyLanIpv4 + } + return false +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetWifiSecurity() WifiConfig_Security { + if x != nil { + return x.WifiSecurity + } + return WifiConfig_UNKNOWN +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetApplyWifiSecurity() bool { + if x != nil { + return x.ApplyWifiSecurity + } + return false +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetNetworkName_5Ghz() string { + if x != nil { + return x.NetworkName_5Ghz + } + return "" +} + +// Deprecated: Do not use. +func (x *WifiConfig) GetApplyNetworkName_5Ghz() bool { + if x != nil { + return x.ApplyNetworkName_5Ghz + } + return false +} + +func (x *WifiConfig) GetEnableRemoteSsh() bool { + if x != nil { + return x.EnableRemoteSsh + } + return false +} + +func (x *WifiConfig) GetApplyEnableRemoteSsh() bool { + if x != nil { + return x.ApplyEnableRemoteSsh + } + return false +} + +func (x *WifiConfig) GetLastRemoteSshAccess() int64 { + if x != nil { + return x.LastRemoteSshAccess + } + return 0 +} + +func (x *WifiConfig) GetIncarnation() uint64 { + if x != nil { + return x.Incarnation + } + return 0 +} + +func (x *WifiConfig) GetWirelessMode_2Ghz() WifiConfig_WirelessMode { + if x != nil { + return x.WirelessMode_2Ghz + } + return WifiConfig_WIRELESS_MODE_DEFAULT +} + +func (x *WifiConfig) GetApplyWirelessMode_2Ghz() bool { + if x != nil { + return x.ApplyWirelessMode_2Ghz + } + return false +} + +func (x *WifiConfig) GetWirelessMode_5Ghz() WifiConfig_WirelessMode { + if x != nil { + return x.WirelessMode_5Ghz + } + return WifiConfig_WIRELESS_MODE_DEFAULT +} + +func (x *WifiConfig) GetApplyWirelessMode_5Ghz() bool { + if x != nil { + return x.ApplyWirelessMode_5Ghz + } + return false +} + +func (x *WifiConfig) GetHtBandwidth_2Ghz() WifiConfig_HTBandwidth { + if x != nil { + return x.HtBandwidth_2Ghz + } + return WifiConfig_HT_BANDWIDTH_DEFAULT +} + +func (x *WifiConfig) GetApplyHtBandwidth_2Ghz() bool { + if x != nil { + return x.ApplyHtBandwidth_2Ghz + } + return false +} + +func (x *WifiConfig) GetHtBandwidth_5Ghz() WifiConfig_HTBandwidth { + if x != nil { + return x.HtBandwidth_5Ghz + } + return WifiConfig_HT_BANDWIDTH_DEFAULT +} + +func (x *WifiConfig) GetApplyHtBandwidth_5Ghz() bool { + if x != nil { + return x.ApplyHtBandwidth_5Ghz + } + return false +} + +func (x *WifiConfig) GetVhtBandwidth() WifiConfig_VHTBandwidth { + if x != nil { + return x.VhtBandwidth + } + return WifiConfig_VHT_BANDWIDTH_DEFAULT +} + +func (x *WifiConfig) GetApplyVhtBandwidth() bool { + if x != nil { + return x.ApplyVhtBandwidth + } + return false +} + +func (x *WifiConfig) GetUsePublicServices() bool { + if x != nil { + return x.UsePublicServices + } + return false +} + +func (x *WifiConfig) GetApplyUsePublicServices() bool { + if x != nil { + return x.ApplyUsePublicServices + } + return false +} + +func (x *WifiConfig) GetDisableAutomatedSpeedtests() bool { + if x != nil { + return x.DisableAutomatedSpeedtests + } + return false +} + +func (x *WifiConfig) GetApplyDisableAutomatedSpeedtests() bool { + if x != nil { + return x.ApplyDisableAutomatedSpeedtests + } + return false +} + +type AuthOpen struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AuthOpen) Reset() { + *x = AuthOpen{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthOpen) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthOpen) ProtoMessage() {} + +func (x *AuthOpen) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[2] + 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 AuthOpen.ProtoReflect.Descriptor instead. +func (*AuthOpen) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{2} +} + +type AuthWpa2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *AuthWpa2) Reset() { + *x = AuthWpa2{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthWpa2) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthWpa2) ProtoMessage() {} + +func (x *AuthWpa2) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[3] + 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 AuthWpa2.ProtoReflect.Descriptor instead. +func (*AuthWpa2) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{3} +} + +func (x *AuthWpa2) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type AuthWpa3 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *AuthWpa3) Reset() { + *x = AuthWpa3{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthWpa3) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthWpa3) ProtoMessage() {} + +func (x *AuthWpa3) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[4] + 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 AuthWpa3.ProtoReflect.Descriptor instead. +func (*AuthWpa3) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{4} +} + +func (x *AuthWpa3) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type AuthWpa2Wpa3 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *AuthWpa2Wpa3) Reset() { + *x = AuthWpa2Wpa3{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthWpa2Wpa3) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthWpa2Wpa3) ProtoMessage() {} + +func (x *AuthWpa2Wpa3) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[5] + 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 AuthWpa2Wpa3.ProtoReflect.Descriptor instead. +func (*AuthWpa2Wpa3) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{5} +} + +func (x *AuthWpa2Wpa3) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type AuthRadius struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` + // Deprecated: Do not use. + ServerCa string `protobuf:"bytes,3,opt,name=server_ca,json=serverCa,proto3" json:"server_ca,omitempty"` + ServerCaBase_64 string `protobuf:"bytes,4,opt,name=server_ca_base_64,json=serverCaBase64,proto3" json:"server_ca_base_64,omitempty"` + Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"` +} + +func (x *AuthRadius) Reset() { + *x = AuthRadius{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AuthRadius) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AuthRadius) ProtoMessage() {} + +func (x *AuthRadius) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[6] + 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 AuthRadius.ProtoReflect.Descriptor instead. +func (*AuthRadius) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{6} +} + +func (x *AuthRadius) GetServer() string { + if x != nil { + return x.Server + } + return "" +} + +// Deprecated: Do not use. +func (x *AuthRadius) GetServerCa() string { + if x != nil { + return x.ServerCa + } + return "" +} + +func (x *AuthRadius) GetServerCaBase_64() string { + if x != nil { + return x.ServerCaBase_64 + } + return "" +} + +func (x *AuthRadius) GetPassword() string { + if x != nil { + return x.Password + } + return "" +} + +type WifiConfig_BasicServiceSet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Bssid string `protobuf:"bytes,1003,opt,name=bssid,proto3" json:"bssid,omitempty"` + Ssid string `protobuf:"bytes,1005,opt,name=ssid,proto3" json:"ssid,omitempty"` + // Types that are assignable to Auth: + // + // *WifiConfig_BasicServiceSet_AuthOpen + // *WifiConfig_BasicServiceSet_AuthWpa2 + // *WifiConfig_BasicServiceSet_AuthWpa3 + // *WifiConfig_BasicServiceSet_AuthWpa2Wpa3 + // *WifiConfig_BasicServiceSet_AuthRadius + Auth isWifiConfig_BasicServiceSet_Auth `protobuf_oneof:"auth"` + Band WifiConfig_Band `protobuf:"varint,1011,opt,name=band,proto3,enum=SpaceX.API.Device.WifiConfig_Band" json:"band,omitempty"` + Disable bool `protobuf:"varint,1013,opt,name=disable,proto3" json:"disable,omitempty"` + Hidden bool `protobuf:"varint,1015,opt,name=hidden,proto3" json:"hidden,omitempty"` +} + +func (x *WifiConfig_BasicServiceSet) Reset() { + *x = WifiConfig_BasicServiceSet{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiConfig_BasicServiceSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiConfig_BasicServiceSet) ProtoMessage() {} + +func (x *WifiConfig_BasicServiceSet) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[9] + 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 WifiConfig_BasicServiceSet.ProtoReflect.Descriptor instead. +func (*WifiConfig_BasicServiceSet) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 2} +} + +func (x *WifiConfig_BasicServiceSet) GetBssid() string { + if x != nil { + return x.Bssid + } + return "" +} + +func (x *WifiConfig_BasicServiceSet) GetSsid() string { + if x != nil { + return x.Ssid + } + return "" +} + +func (m *WifiConfig_BasicServiceSet) GetAuth() isWifiConfig_BasicServiceSet_Auth { + if m != nil { + return m.Auth + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetAuthOpen() *AuthOpen { + if x, ok := x.GetAuth().(*WifiConfig_BasicServiceSet_AuthOpen); ok { + return x.AuthOpen + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetAuthWpa2() *AuthWpa2 { + if x, ok := x.GetAuth().(*WifiConfig_BasicServiceSet_AuthWpa2); ok { + return x.AuthWpa2 + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetAuthWpa3() *AuthWpa3 { + if x, ok := x.GetAuth().(*WifiConfig_BasicServiceSet_AuthWpa3); ok { + return x.AuthWpa3 + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetAuthWpa2Wpa3() *AuthWpa2Wpa3 { + if x, ok := x.GetAuth().(*WifiConfig_BasicServiceSet_AuthWpa2Wpa3); ok { + return x.AuthWpa2Wpa3 + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetAuthRadius() *AuthRadius { + if x, ok := x.GetAuth().(*WifiConfig_BasicServiceSet_AuthRadius); ok { + return x.AuthRadius + } + return nil +} + +func (x *WifiConfig_BasicServiceSet) GetBand() WifiConfig_Band { + if x != nil { + return x.Band + } + return WifiConfig_RF_UNKNOWN +} + +func (x *WifiConfig_BasicServiceSet) GetDisable() bool { + if x != nil { + return x.Disable + } return false } +func (x *WifiConfig_BasicServiceSet) GetHidden() bool { + if x != nil { + return x.Hidden + } + return false +} + +type isWifiConfig_BasicServiceSet_Auth interface { + isWifiConfig_BasicServiceSet_Auth() +} + +type WifiConfig_BasicServiceSet_AuthOpen struct { + AuthOpen *AuthOpen `protobuf:"bytes,2001,opt,name=auth_open,json=authOpen,proto3,oneof"` +} + +type WifiConfig_BasicServiceSet_AuthWpa2 struct { + AuthWpa2 *AuthWpa2 `protobuf:"bytes,2002,opt,name=auth_wpa2,json=authWpa2,proto3,oneof"` +} + +type WifiConfig_BasicServiceSet_AuthWpa3 struct { + AuthWpa3 *AuthWpa3 `protobuf:"bytes,2003,opt,name=auth_wpa3,json=authWpa3,proto3,oneof"` +} + +type WifiConfig_BasicServiceSet_AuthWpa2Wpa3 struct { + AuthWpa2Wpa3 *AuthWpa2Wpa3 `protobuf:"bytes,2004,opt,name=auth_wpa2_wpa3,json=authWpa2Wpa3,proto3,oneof"` +} + +type WifiConfig_BasicServiceSet_AuthRadius struct { + AuthRadius *AuthRadius `protobuf:"bytes,2005,opt,name=auth_radius,json=authRadius,proto3,oneof"` +} + +func (*WifiConfig_BasicServiceSet_AuthOpen) isWifiConfig_BasicServiceSet_Auth() {} + +func (*WifiConfig_BasicServiceSet_AuthWpa2) isWifiConfig_BasicServiceSet_Auth() {} + +func (*WifiConfig_BasicServiceSet_AuthWpa3) isWifiConfig_BasicServiceSet_Auth() {} + +func (*WifiConfig_BasicServiceSet_AuthWpa2Wpa3) isWifiConfig_BasicServiceSet_Auth() {} + +func (*WifiConfig_BasicServiceSet_AuthRadius) isWifiConfig_BasicServiceSet_Auth() {} + +type WifiConfig_Network struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ipv4 string `protobuf:"bytes,1003,opt,name=ipv4,proto3" json:"ipv4,omitempty"` + Domain string `protobuf:"bytes,1011,opt,name=domain,proto3" json:"domain,omitempty"` + BasicServiceSets []*WifiConfig_BasicServiceSet `protobuf:"bytes,1007,rep,name=basic_service_sets,json=basicServiceSets,proto3" json:"basic_service_sets,omitempty"` + ClientIsolation bool `protobuf:"varint,1008,opt,name=client_isolation,json=clientIsolation,proto3" json:"client_isolation,omitempty"` + Guest bool `protobuf:"varint,1009,opt,name=guest,proto3" json:"guest,omitempty"` + Landing string `protobuf:"bytes,1010,opt,name=landing,proto3" json:"landing,omitempty"` +} + +func (x *WifiConfig_Network) Reset() { + *x = WifiConfig_Network{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WifiConfig_Network) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WifiConfig_Network) ProtoMessage() {} + +func (x *WifiConfig_Network) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_device_wifi_config_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WifiConfig_Network.ProtoReflect.Descriptor instead. +func (*WifiConfig_Network) Descriptor() ([]byte, []int) { + return file_spacex_api_device_wifi_config_proto_rawDescGZIP(), []int{1, 3} +} + +func (x *WifiConfig_Network) GetIpv4() string { + if x != nil { + return x.Ipv4 + } + return "" +} + +func (x *WifiConfig_Network) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +func (x *WifiConfig_Network) GetBasicServiceSets() []*WifiConfig_BasicServiceSet { + if x != nil { + return x.BasicServiceSets + } + return nil +} + +func (x *WifiConfig_Network) GetClientIsolation() bool { + if x != nil { + return x.ClientIsolation + } + return false +} + +func (x *WifiConfig_Network) GetGuest() bool { + if x != nil { + return x.Guest + } + return false +} + +func (x *WifiConfig_Network) GetLanding() string { + if x != nil { + return x.Landing + } + return "" +} + var File_spacex_api_device_wifi_config_proto protoreflect.FileDescriptor var file_spacex_api_device_wifi_config_proto_rawDesc = []byte{ 0x0a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, - 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0xac, 0x03, 0x0a, 0x0a, 0x57, 0x69, 0x66, - 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x35, 0x0a, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0xea, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x77, 0x69, 0x66, 0x69, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x77, 0x69, 0x66, - 0x69, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x57, 0x69, 0x66, 0x69, 0x44, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x61, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, - 0x2f, 0x0a, 0x14, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x73, 0x75, 0x62, 0x6e, - 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6c, - 0x61, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x6b, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x43, - 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x1a, 0x1f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x82, 0x02, 0x0a, 0x0a, 0x4d, 0x65, + 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x68, + 0x41, 0x75, 0x74, 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x41, 0x75, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x22, 0x9e, + 0x29, 0x0a, 0x0a, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, + 0x0c, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x28, 0x0a, 0x10, 0x70, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x69, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x36, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x6f, + 0x77, 0x65, 0x72, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x75, + 0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x12, + 0x31, 0x0a, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x53, 0x65, 0x74, 0x75, 0x70, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x07, + 0x6d, 0x61, 0x63, 0x5f, 0x77, 0x61, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x06, 0x6d, 0x61, 0x63, 0x57, 0x61, 0x6e, 0x12, 0x1b, 0x0a, 0x07, 0x6d, 0x61, 0x63, + 0x5f, 0x6c, 0x61, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, + 0x6d, 0x61, 0x63, 0x4c, 0x61, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, + 0xf5, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x2d, 0x0a, 0x12, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x51, 0x0a, 0x0c, 0x6d, 0x65, + 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x68, 0x0a, + 0x14, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0xd9, 0x17, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4d, 0x65, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x89, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x64, 0x79, 0x6e, 0x61, + 0x6d, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x27, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, + 0x61, 0x74, 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x52, 0x65, + 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x69, 0x73, 0x5f, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x18, 0x87, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x73, 0x52, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x70, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x61, 0x70, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xaa, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x41, 0x70, 0x4d, 0x6f, 0x64, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x61, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x69, 0x73, 0x5f, 0x61, + 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xa8, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x73, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x30, + 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0xb9, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x42, 0x6f, 0x6f, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x74, + 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, + 0x1e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x9e, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, 0x64, 0x6e, 0x73, 0x18, 0x32, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x44, 0x6e, 0x73, 0x12, + 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x5f, + 0x64, 0x6e, 0x73, 0x18, 0xa9, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, + 0x79, 0x53, 0x65, 0x63, 0x75, 0x72, 0x65, 0x44, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x79, + 0x70, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x62, 0x79, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x9f, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x42, 0x79, + 0x70, 0x61, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x66, 0x73, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, + 0x66, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x5f, 0x64, 0x66, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0xa2, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x66, 0x73, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, + 0x67, 0x18, 0x34, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x4d, 0x65, 0x73, 0x68, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x42, + 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, + 0xab, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x68, 0x4f, 0x6e, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x08, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0xcc, + 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x08, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x18, 0xcd, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x12, 0x25, + 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xe9, 0x07, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x39, 0x0a, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x14, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x1d, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x6c, 0x61, 0x6e, 0x49, 0x70, 0x76, + 0x34, 0x12, 0x28, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6c, 0x61, 0x6e, 0x5f, 0x69, + 0x70, 0x76, 0x34, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x61, 0x6e, 0x49, 0x70, 0x76, 0x34, 0x12, 0x4f, 0x0a, 0x0d, 0x77, + 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, + 0x77, 0x69, 0x66, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x13, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x65, 0x63, 0x75, 0x72, + 0x69, 0x74, 0x79, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, + 0x61, 0x70, 0x70, 0x6c, 0x79, 0x57, 0x69, 0x66, 0x69, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x12, 0x2e, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x35, 0x67, 0x68, + 0x7a, 0x12, 0x3a, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x35, 0x67, 0x68, 0x7a, 0x18, 0xed, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x2a, 0x0a, + 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x73, + 0x73, 0x68, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x73, 0x73, 0x68, 0x18, 0xa1, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, + 0x68, 0x12, 0x33, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x73, 0x73, 0x68, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x73, 0x68, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x61, 0x72, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x69, 0x6e, 0x63, + 0x61, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, 0x12, 0x77, 0x69, 0x72, 0x65, + 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x2c, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x10, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x32, 0x67, + 0x68, 0x7a, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x77, 0x69, 0x72, 0x65, + 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0xa3, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x57, 0x69, 0x72, 0x65, + 0x6c, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x58, 0x0a, 0x12, + 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x35, 0x67, + 0x68, 0x7a, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, + 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, + 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x10, 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x4d, 0x6f, + 0x64, 0x65, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x77, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x35, 0x67, + 0x68, 0x7a, 0x18, 0xa4, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x35, 0x67, 0x68, 0x7a, + 0x12, 0x55, 0x0a, 0x11, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x32, 0x67, 0x68, 0x7a, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x54, 0x42, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x0f, 0x68, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x32, 0x67, 0x68, 0x7a, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x5f, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x32, 0x67, + 0x68, 0x7a, 0x18, 0xa5, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, + 0x48, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x32, 0x67, 0x68, 0x7a, 0x12, + 0x55, 0x0a, 0x11, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, + 0x35, 0x67, 0x68, 0x7a, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, + 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x48, 0x54, 0x42, 0x61, 0x6e, 0x64, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x0f, 0x68, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, + 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x35, 0x67, 0x68, + 0x7a, 0x18, 0xa6, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x48, + 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x35, 0x67, 0x68, 0x7a, 0x12, 0x4f, + 0x0a, 0x0d, 0x76, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, + 0x30, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x48, 0x54, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x52, 0x0c, 0x76, 0x68, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x2f, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x76, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0xa7, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, + 0x70, 0x70, 0x6c, 0x79, 0x56, 0x68, 0x74, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, + 0x73, 0x65, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0xac, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x73, 0x65, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1c, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x73, 0x18, 0x38, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x1a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, + 0x61, 0x74, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x73, 0x12, 0x4c, + 0x0a, 0x22, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x74, + 0x65, 0x73, 0x74, 0x73, 0x18, 0xad, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x74, 0x65, 0x73, 0x74, 0x73, 0x1a, 0x5d, 0x0a, 0x10, + 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x64, 0x0a, 0x17, 0x4d, + 0x65, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, + 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4d, 0x65, 0x73, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0xbe, 0x04, 0x0a, 0x0f, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x53, 0x65, 0x74, 0x12, 0x15, 0x0a, 0x05, 0x62, 0x73, 0x73, 0x69, 0x64, 0x18, 0xeb, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x73, 0x73, 0x69, 0x64, 0x12, 0x13, 0x0a, 0x04, + 0x73, 0x73, 0x69, 0x64, 0x18, 0xed, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x73, 0x69, + 0x64, 0x12, 0x3b, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x18, 0xd1, + 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, + 0x65, 0x6e, 0x48, 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x3b, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x77, 0x70, 0x61, 0x32, 0x18, 0xd2, 0x0f, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x48, + 0x00, 0x52, 0x08, 0x61, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x12, 0x3b, 0x0a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x77, 0x70, 0x61, 0x33, 0x18, 0xd3, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x33, 0x48, 0x00, 0x52, 0x08, + 0x61, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x33, 0x12, 0x48, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, + 0x5f, 0x77, 0x70, 0x61, 0x32, 0x5f, 0x77, 0x70, 0x61, 0x33, 0x18, 0xd4, 0x0f, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x57, 0x70, + 0x61, 0x33, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x57, 0x70, + 0x61, 0x33, 0x12, 0x41, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x18, 0xd5, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, + 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x52, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x18, 0xf3, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, + 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, 0x66, 0x69, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x52, 0x04, 0x62, 0x61, 0x6e, 0x64, 0x12, 0x19, + 0x0a, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0xf5, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x06, 0x68, 0x69, 0x64, + 0x64, 0x65, 0x6e, 0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x68, 0x69, 0x64, 0x64, + 0x65, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, + 0xe9, 0x07, 0x4a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x4a, 0x06, 0x08, 0xea, 0x07, 0x10, + 0xeb, 0x07, 0x4a, 0x06, 0x08, 0xec, 0x07, 0x10, 0xed, 0x07, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, + 0xef, 0x07, 0x4a, 0x06, 0x08, 0xd0, 0x0f, 0x10, 0xd1, 0x0f, 0x4a, 0x06, 0x08, 0xf4, 0x07, 0x10, + 0xf5, 0x07, 0x4a, 0x06, 0x08, 0xf6, 0x07, 0x10, 0xf7, 0x07, 0x4a, 0x06, 0x08, 0xf8, 0x07, 0x10, + 0xf9, 0x07, 0x1a, 0xa3, 0x02, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x13, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0xeb, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, + 0x70, 0x76, 0x34, 0x12, 0x17, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0xf3, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x5c, 0x0a, 0x12, + 0x62, 0x61, 0x73, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, + 0x74, 0x73, 0x18, 0xef, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x57, 0x69, + 0x66, 0x69, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x52, 0x10, 0x62, 0x61, 0x73, 0x69, 0x63, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x74, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf0, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x73, 0x6f, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x18, + 0xf1, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x07, 0x6c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0xf2, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6c, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4a, 0x06, 0x08, 0xe8, 0x07, 0x10, 0xe9, 0x07, + 0x4a, 0x06, 0x08, 0xe9, 0x07, 0x10, 0xea, 0x07, 0x4a, 0x06, 0x08, 0xea, 0x07, 0x10, 0xeb, 0x07, + 0x4a, 0x06, 0x08, 0xec, 0x07, 0x10, 0xed, 0x07, 0x4a, 0x06, 0x08, 0xed, 0x07, 0x10, 0xee, 0x07, + 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x22, 0x39, 0x0a, 0x08, 0x53, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x50, 0x41, 0x32, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x57, + 0x50, 0x41, 0x33, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x57, 0x50, 0x41, 0x32, 0x57, 0x50, 0x41, + 0x33, 0x10, 0x03, 0x22, 0x30, 0x0a, 0x04, 0x42, 0x61, 0x6e, 0x64, 0x12, 0x0e, 0x0a, 0x0a, 0x52, + 0x46, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, + 0x46, 0x5f, 0x32, 0x47, 0x48, 0x5a, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x46, 0x5f, 0x35, + 0x47, 0x48, 0x5a, 0x10, 0x05, 0x22, 0xe5, 0x01, 0x0a, 0x0c, 0x57, 0x69, 0x72, 0x65, 0x6c, 0x65, + 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x57, 0x49, 0x52, 0x45, 0x4c, 0x45, + 0x53, 0x53, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x42, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x47, 0x5f, 0x4f, + 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x5f, 0x47, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x05, + 0x12, 0x0d, 0x0a, 0x09, 0x41, 0x5f, 0x4e, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x06, 0x12, + 0x0d, 0x0a, 0x09, 0x47, 0x5f, 0x4e, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0f, + 0x0a, 0x0b, 0x42, 0x5f, 0x47, 0x5f, 0x4e, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x08, 0x12, + 0x11, 0x0a, 0x0d, 0x41, 0x5f, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, + 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4e, 0x5f, 0x41, 0x43, 0x5f, 0x4d, 0x49, 0x58, 0x45, + 0x44, 0x10, 0x0a, 0x12, 0x12, 0x0a, 0x0e, 0x42, 0x5f, 0x47, 0x5f, 0x4e, 0x5f, 0x41, 0x58, 0x5f, + 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x0b, 0x12, 0x14, 0x0a, 0x10, 0x41, 0x5f, 0x41, 0x4e, 0x5f, + 0x41, 0x43, 0x5f, 0x41, 0x58, 0x5f, 0x4d, 0x49, 0x58, 0x45, 0x44, 0x10, 0x0c, 0x22, 0x5f, 0x0a, + 0x0b, 0x48, 0x54, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x14, + 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x44, 0x45, 0x46, + 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, + 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x32, 0x30, 0x5f, 0x4d, 0x48, 0x5a, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, + 0x32, 0x30, 0x5f, 0x4f, 0x52, 0x5f, 0x34, 0x30, 0x5f, 0x4d, 0x48, 0x5a, 0x10, 0x02, 0x22, 0x9c, + 0x01, 0x0a, 0x0c, 0x56, 0x48, 0x54, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x19, 0x0a, 0x15, 0x56, 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, + 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x48, + 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x44, 0x49, 0x53, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x48, 0x54, 0x5f, 0x42, 0x41, + 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x38, 0x30, 0x5f, 0x4d, 0x48, 0x5a, 0x10, 0x02, + 0x12, 0x19, 0x0a, 0x15, 0x56, 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, + 0x48, 0x5f, 0x31, 0x36, 0x30, 0x5f, 0x4d, 0x48, 0x5a, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x56, + 0x48, 0x54, 0x5f, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x38, 0x30, 0x5f, + 0x50, 0x4c, 0x55, 0x53, 0x5f, 0x38, 0x30, 0x5f, 0x4d, 0x48, 0x5a, 0x10, 0x04, 0x4a, 0x04, 0x08, + 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, + 0x04, 0x08, 0x0e, 0x10, 0x0f, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x10, 0x10, + 0x11, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x12, 0x4a, 0x04, 0x08, 0x12, 0x10, 0x13, 0x4a, 0x04, 0x08, + 0x15, 0x10, 0x16, 0x4a, 0x04, 0x08, 0x18, 0x10, 0x19, 0x4a, 0x04, 0x08, 0x19, 0x10, 0x1a, 0x4a, + 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x1c, 0x10, 0x1d, 0x4a, 0x04, 0x08, 0x1d, 0x10, + 0x1e, 0x4a, 0x04, 0x08, 0x20, 0x10, 0x21, 0x4a, 0x04, 0x08, 0x24, 0x10, 0x25, 0x4a, 0x04, 0x08, + 0x26, 0x10, 0x27, 0x4a, 0x04, 0x08, 0x28, 0x10, 0x29, 0x4a, 0x04, 0x08, 0x29, 0x10, 0x2a, 0x4a, + 0x06, 0x08, 0xeb, 0x07, 0x10, 0xec, 0x07, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, + 0x06, 0x08, 0xef, 0x07, 0x10, 0xf0, 0x07, 0x4a, 0x06, 0x08, 0xf0, 0x07, 0x10, 0xf1, 0x07, 0x4a, + 0x06, 0x08, 0xf1, 0x07, 0x10, 0xf2, 0x07, 0x4a, 0x06, 0x08, 0xf3, 0x07, 0x10, 0xf4, 0x07, 0x4a, + 0x06, 0x08, 0xf4, 0x07, 0x10, 0xf5, 0x07, 0x4a, 0x06, 0x08, 0xf7, 0x07, 0x10, 0xf8, 0x07, 0x4a, + 0x06, 0x08, 0xfd, 0x07, 0x10, 0xfe, 0x07, 0x4a, 0x06, 0x08, 0x91, 0x08, 0x10, 0x92, 0x08, 0x4a, + 0x06, 0x08, 0x9b, 0x08, 0x10, 0x9c, 0x08, 0x4a, 0x06, 0x08, 0x9c, 0x08, 0x10, 0x9d, 0x08, 0x4a, + 0x06, 0x08, 0x9d, 0x08, 0x10, 0x9e, 0x08, 0x4a, 0x06, 0x08, 0xa0, 0x08, 0x10, 0xa1, 0x08, 0x4a, + 0x06, 0x08, 0xd1, 0x0f, 0x10, 0xd2, 0x0f, 0x4a, 0x06, 0x08, 0xd2, 0x0f, 0x10, 0xd3, 0x0f, 0x4a, + 0x06, 0x08, 0xd3, 0x0f, 0x10, 0xd4, 0x0f, 0x4a, 0x06, 0x08, 0xd4, 0x0f, 0x10, 0xd5, 0x0f, 0x4a, + 0x06, 0x08, 0xd5, 0x0f, 0x10, 0xd6, 0x0f, 0x4a, 0x06, 0x08, 0xd6, 0x0f, 0x10, 0xd7, 0x0f, 0x4a, + 0x06, 0x08, 0xd7, 0x0f, 0x10, 0xd8, 0x0f, 0x4a, 0x06, 0x08, 0xd8, 0x0f, 0x10, 0xd9, 0x0f, 0x22, + 0x0a, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x4f, 0x70, 0x65, 0x6e, 0x22, 0x26, 0x0a, 0x08, 0x41, + 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x22, 0x26, 0x0a, 0x08, 0x41, 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x33, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x2a, 0x0a, 0x0c, 0x41, + 0x75, 0x74, 0x68, 0x57, 0x70, 0x61, 0x32, 0x57, 0x70, 0x61, 0x33, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x68, + 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1f, + 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x12, + 0x29, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x61, 0x5f, 0x62, 0x61, 0x73, + 0x65, 0x5f, 0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x61, 0x42, 0x61, 0x73, 0x65, 0x36, 0x34, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x2a, 0x64, 0x0a, 0x08, 0x4d, 0x65, 0x73, 0x68, 0x41, 0x75, + 0x74, 0x68, 0x12, 0x15, 0x0a, 0x11, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, + 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x45, 0x53, + 0x48, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x4e, 0x45, 0x57, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x41, 0x55, 0x54, 0x48, + 0x5f, 0x55, 0x4e, 0x54, 0x52, 0x55, 0x53, 0x54, 0x45, 0x44, 0x10, 0x03, 0x42, 0x17, 0x5a, 0x15, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -189,16 +1925,56 @@ func file_spacex_api_device_wifi_config_proto_rawDescG return file_spacex_api_device_wifi_config_proto_rawDescData } -var file_spacex_api_device_wifi_config_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_spacex_api_device_wifi_config_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_spacex_api_device_wifi_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_spacex_api_device_wifi_config_proto_goTypes = []interface{}{ - (*WifiConfig)(nil), // 0: SpaceX.API.Device.WifiConfig + (MeshAuth)(0), // 0: SpaceX.API.Device.MeshAuth + (WifiConfig_Security)(0), // 1: SpaceX.API.Device.WifiConfig.Security + (WifiConfig_Band)(0), // 2: SpaceX.API.Device.WifiConfig.Band + (WifiConfig_WirelessMode)(0), // 3: SpaceX.API.Device.WifiConfig.WirelessMode + (WifiConfig_HTBandwidth)(0), // 4: SpaceX.API.Device.WifiConfig.HTBandwidth + (WifiConfig_VHTBandwidth)(0), // 5: SpaceX.API.Device.WifiConfig.VHTBandwidth + (*MeshConfig)(nil), // 6: SpaceX.API.Device.MeshConfig + (*WifiConfig)(nil), // 7: SpaceX.API.Device.WifiConfig + (*AuthOpen)(nil), // 8: SpaceX.API.Device.AuthOpen + (*AuthWpa2)(nil), // 9: SpaceX.API.Device.AuthWpa2 + (*AuthWpa3)(nil), // 10: SpaceX.API.Device.AuthWpa3 + (*AuthWpa2Wpa3)(nil), // 11: SpaceX.API.Device.AuthWpa2Wpa3 + (*AuthRadius)(nil), // 12: SpaceX.API.Device.AuthRadius + nil, // 13: SpaceX.API.Device.WifiConfig.MeshConfigsEntry + nil, // 14: SpaceX.API.Device.WifiConfig.MeshConfigsUpdatesEntry + (*WifiConfig_BasicServiceSet)(nil), // 15: SpaceX.API.Device.WifiConfig.BasicServiceSet + (*WifiConfig_Network)(nil), // 16: SpaceX.API.Device.WifiConfig.Network + (*PublicKey)(nil), // 17: SpaceX.API.Device.PublicKey + (*BootInfo)(nil), // 18: SpaceX.API.Device.BootInfo } var file_spacex_api_device_wifi_config_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name + 0, // 0: SpaceX.API.Device.MeshConfig.auth:type_name -> SpaceX.API.Device.MeshAuth + 13, // 1: SpaceX.API.Device.WifiConfig.mesh_configs:type_name -> SpaceX.API.Device.WifiConfig.MeshConfigsEntry + 14, // 2: SpaceX.API.Device.WifiConfig.mesh_configs_updates:type_name -> SpaceX.API.Device.WifiConfig.MeshConfigsUpdatesEntry + 17, // 3: SpaceX.API.Device.WifiConfig.dynamic_keys:type_name -> SpaceX.API.Device.PublicKey + 18, // 4: SpaceX.API.Device.WifiConfig.boot:type_name -> SpaceX.API.Device.BootInfo + 16, // 5: SpaceX.API.Device.WifiConfig.networks:type_name -> SpaceX.API.Device.WifiConfig.Network + 1, // 6: SpaceX.API.Device.WifiConfig.wifi_security:type_name -> SpaceX.API.Device.WifiConfig.Security + 3, // 7: SpaceX.API.Device.WifiConfig.wireless_mode_2ghz:type_name -> SpaceX.API.Device.WifiConfig.WirelessMode + 3, // 8: SpaceX.API.Device.WifiConfig.wireless_mode_5ghz:type_name -> SpaceX.API.Device.WifiConfig.WirelessMode + 4, // 9: SpaceX.API.Device.WifiConfig.ht_bandwidth_2ghz:type_name -> SpaceX.API.Device.WifiConfig.HTBandwidth + 4, // 10: SpaceX.API.Device.WifiConfig.ht_bandwidth_5ghz:type_name -> SpaceX.API.Device.WifiConfig.HTBandwidth + 5, // 11: SpaceX.API.Device.WifiConfig.vht_bandwidth:type_name -> SpaceX.API.Device.WifiConfig.VHTBandwidth + 6, // 12: SpaceX.API.Device.WifiConfig.MeshConfigsEntry.value:type_name -> SpaceX.API.Device.MeshConfig + 6, // 13: SpaceX.API.Device.WifiConfig.MeshConfigsUpdatesEntry.value:type_name -> SpaceX.API.Device.MeshConfig + 8, // 14: SpaceX.API.Device.WifiConfig.BasicServiceSet.auth_open:type_name -> SpaceX.API.Device.AuthOpen + 9, // 15: SpaceX.API.Device.WifiConfig.BasicServiceSet.auth_wpa2:type_name -> SpaceX.API.Device.AuthWpa2 + 10, // 16: SpaceX.API.Device.WifiConfig.BasicServiceSet.auth_wpa3:type_name -> SpaceX.API.Device.AuthWpa3 + 11, // 17: SpaceX.API.Device.WifiConfig.BasicServiceSet.auth_wpa2_wpa3:type_name -> SpaceX.API.Device.AuthWpa2Wpa3 + 12, // 18: SpaceX.API.Device.WifiConfig.BasicServiceSet.auth_radius:type_name -> SpaceX.API.Device.AuthRadius + 2, // 19: SpaceX.API.Device.WifiConfig.BasicServiceSet.band:type_name -> SpaceX.API.Device.WifiConfig.Band + 15, // 20: SpaceX.API.Device.WifiConfig.Network.basic_service_sets:type_name -> SpaceX.API.Device.WifiConfig.BasicServiceSet + 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_spacex_api_device_wifi_config_proto_init() } @@ -206,8 +1982,22 @@ func file_spacex_api_device_wifi_config_proto_init() { if File_spacex_api_device_wifi_config_proto != nil { return } + file_spacex_api_device_command_proto_init() + file_spacex_api_device_common_proto_init() if !protoimpl.UnsafeEnabled { file_spacex_api_device_wifi_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MeshConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WifiConfig); i { case 0: return &v.state @@ -219,19 +2009,111 @@ func file_spacex_api_device_wifi_config_proto_init() { return nil } } + file_spacex_api_device_wifi_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthOpen); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthWpa2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthWpa3); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthWpa2Wpa3); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AuthRadius); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiConfig_BasicServiceSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_spacex_api_device_wifi_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WifiConfig_Network); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } + file_spacex_api_device_wifi_config_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*WifiConfig_BasicServiceSet_AuthOpen)(nil), + (*WifiConfig_BasicServiceSet_AuthWpa2)(nil), + (*WifiConfig_BasicServiceSet_AuthWpa3)(nil), + (*WifiConfig_BasicServiceSet_AuthWpa2Wpa3)(nil), + (*WifiConfig_BasicServiceSet_AuthRadius)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_spacex_api_device_wifi_config_proto_rawDesc, - NumEnums: 0, - NumMessages: 1, + NumEnums: 6, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, GoTypes: file_spacex_api_device_wifi_config_proto_goTypes, DependencyIndexes: file_spacex_api_device_wifi_config_proto_depIdxs, + EnumInfos: file_spacex_api_device_wifi_config_proto_enumTypes, MessageInfos: file_spacex_api_device_wifi_config_proto_msgTypes, }.Build() File_spacex_api_device_wifi_config_proto = out.File blob - /dev/null blob + 09f032c8d6e9955f0eee320487eed541c6951af8 (mode 644) --- /dev/null +++ device/wifi_grpc.pb.go @@ -0,0 +1,137 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.21.6 +// source: spacex/api/device/wifi.proto + +package device + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// MeshClient is the client API for Mesh service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type MeshClient interface { + MeshStream(ctx context.Context, opts ...grpc.CallOption) (Mesh_MeshStreamClient, error) +} + +type meshClient struct { + cc grpc.ClientConnInterface +} + +func NewMeshClient(cc grpc.ClientConnInterface) MeshClient { + return &meshClient{cc} +} + +func (c *meshClient) MeshStream(ctx context.Context, opts ...grpc.CallOption) (Mesh_MeshStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &Mesh_ServiceDesc.Streams[0], "/SpaceX.API.Device.Mesh/MeshStream", opts...) + if err != nil { + return nil, err + } + x := &meshMeshStreamClient{stream} + return x, nil +} + +type Mesh_MeshStreamClient interface { + Send(*ToController) error + Recv() (*FromController, error) + grpc.ClientStream +} + +type meshMeshStreamClient struct { + grpc.ClientStream +} + +func (x *meshMeshStreamClient) Send(m *ToController) error { + return x.ClientStream.SendMsg(m) +} + +func (x *meshMeshStreamClient) Recv() (*FromController, error) { + m := new(FromController) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// MeshServer is the server API for Mesh service. +// All implementations must embed UnimplementedMeshServer +// for forward compatibility +type MeshServer interface { + MeshStream(Mesh_MeshStreamServer) error + mustEmbedUnimplementedMeshServer() +} + +// UnimplementedMeshServer must be embedded to have forward compatible implementations. +type UnimplementedMeshServer struct { +} + +func (UnimplementedMeshServer) MeshStream(Mesh_MeshStreamServer) error { + return status.Errorf(codes.Unimplemented, "method MeshStream not implemented") +} +func (UnimplementedMeshServer) mustEmbedUnimplementedMeshServer() {} + +// UnsafeMeshServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to MeshServer will +// result in compilation errors. +type UnsafeMeshServer interface { + mustEmbedUnimplementedMeshServer() +} + +func RegisterMeshServer(s grpc.ServiceRegistrar, srv MeshServer) { + s.RegisterService(&Mesh_ServiceDesc, srv) +} + +func _Mesh_MeshStream_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(MeshServer).MeshStream(&meshMeshStreamServer{stream}) +} + +type Mesh_MeshStreamServer interface { + Send(*FromController) error + Recv() (*ToController, error) + grpc.ServerStream +} + +type meshMeshStreamServer struct { + grpc.ServerStream +} + +func (x *meshMeshStreamServer) Send(m *FromController) error { + return x.ServerStream.SendMsg(m) +} + +func (x *meshMeshStreamServer) Recv() (*ToController, error) { + m := new(ToController) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +// Mesh_ServiceDesc is the grpc.ServiceDesc for Mesh service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var Mesh_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "SpaceX.API.Device.Mesh", + HandlerType: (*MeshServer)(nil), + Methods: []grpc.MethodDesc{}, + Streams: []grpc.StreamDesc{ + { + StreamName: "MeshStream", + Handler: _Mesh_MeshStream_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "spacex/api/device/wifi.proto", +} blob - 8c710bf7387a38c7fd1185cb0c3c395cc5afe936 blob + 15511aaa1c6bc2151b3e218abafcabd15d911dfd Binary files device.protoset and device.protoset differ blob - f95bb0fde4d4ffe28b8c451986e35906f8ec2df3 blob + 21cf2e6be1a6434ed1cc2be08f32d6238fcf7578 --- protoc.sh +++ protoc.sh @@ -7,7 +7,7 @@ # By default it connects to the default Dishy address (see DefaultDishyAddr). # A different address can be specified as an argument. For example: # -# protoc.sh 172.19.248.42:9100 +# protoc.sh 192.0.2.1:9200 # # This can be useful if the device is only available through a tunnel or VPN. # @@ -32,30 +32,48 @@ then fi grpcurl -plaintext -protoset-out device.protoset $addr describe SpaceX.API.Device.Device -# The protoc command, without proto file arguments, to generate the Go code. -# From https://grpc.io/docs/languages/go/quickstart/#regenerate-grpc-code -# For a protobuf reference: +# First compile the dependencies of the Device service +deps="spacex/api/common/status/status.proto + spacex/api/common/protobuf/internal.proto + spacex/api/telemetron/public/common/time.proto + spacex/api/satellites/network/ut_disablement_codes.proto + spacex/api/common/protobuf/internal.proto" + +# Map the dependencies between protofiles to Go package import paths. +# We need a clean import path with a different root (not the +# automatically generated "spacex.com") so that packages in this module +# can import each other. # https://developers.google.com/protocol-buffers/docs/reference/go-generated +gomodule=`grep module go.mod | awk '{print $2}'` +import_opt=" + --go_opt Mspacex/api/common/status/status.proto=$gomodule/status + --go_opt Mspacex/api/common/protobuf/internal.proto=$gomodule/protobuf + --go-grpc_opt Mspacex/api/common/protobuf/internal.proto=$gomodule/protobuf + --go_opt Mspacex/api/satellites/network/ut_disablement_codes.proto=$gomodule/satellites + --go-grpc_opt Mspacex/api/satellites/network/ut_disablement_codes.proto=$gomodule/satellites + --go_opt Mspacex/api/telemetron/public/common/time.proto=$gomodule/telemetron + --go-grpc_opt Mspacex/api/telemetron/public/common/time.proto=$gomodule/telemetron" -# Strip the spacex.com/api prefix so package imports can be resolved within our Go module. +# Strip our module prefix when writing generated files to disk; we import packages from within this module. # https://developers.google.com/protocol-buffers/docs/reference/go-generated#invocation -module_opt="--go_opt module=spacex.com/api --go-grpc_opt module=spacex.com/api" +module_opt="--go_opt module=$gomodule --go-grpc_opt module=$gomodule" protoc --go_out . --go-grpc_out . --descriptor_set_in device.protoset \ - $module_opt \ - spacex/api/common/status/status.proto + $module_opt $import_opt \ + $deps -# Device proto files import status.proto, so set the corresponding Go -# package import path for the status package we generated previously. -gomodule=`grep module go.mod | awk '{print $2}'` -import_opt="--go_opt Mspacex/api/common/status/status.proto=$gomodule/status" files="spacex/api/device/command.proto spacex/api/device/common.proto spacex/api/device/device.proto spacex/api/device/dish.proto + spacex/api/device/dish_config.proto spacex/api/device/transceiver.proto spacex/api/device/wifi.proto spacex/api/device/wifi_config.proto" + +# Strip the original spacex.com/api prefix so package imports are resolved from our Go module. +module_opt="--go_opt module=spacex.com/api --go-grpc_opt module=spacex.com/api" + protoc --go_out . --go-grpc_out . --descriptor_set_in device.protoset \ - $module_opt $import_opt \ + $import_opt $module_opt \ $files blob - /dev/null blob + da1331ead1617d5290b022f73b3fa4e1d6b9a994 (mode 644) --- /dev/null +++ protobuf/internal.pb.go @@ -0,0 +1,216 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.6 +// source: spacex/api/common/protobuf/internal.proto + +package protobuf + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +var file_spacex_api_common_protobuf_internal_proto_extTypes = []protoimpl.ExtensionInfo{ + { + ExtendedType: (*descriptorpb.FileOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60000, + Name: "SpaceX.API.Common.Protobuf.unstable_file", + Tag: "varint,60000,opt,name=unstable_file", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60001, + Name: "SpaceX.API.Common.Protobuf.unstable_message", + Tag: "varint,60001,opt,name=unstable_message", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60002, + Name: "SpaceX.API.Common.Protobuf.unstable_field", + Tag: "varint,60002,opt,name=unstable_field", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60003, + Name: "SpaceX.API.Common.Protobuf.unstable_enum", + Tag: "varint,60003,opt,name=unstable_enum", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.EnumValueOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60004, + Name: "SpaceX.API.Common.Protobuf.unstable_enum_value", + Tag: "varint,60004,opt,name=unstable_enum_value", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.ServiceOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60005, + Name: "SpaceX.API.Common.Protobuf.unstable_service", + Tag: "varint,60005,opt,name=unstable_service", + Filename: "spacex/api/common/protobuf/internal.proto", + }, + { + ExtendedType: (*descriptorpb.MethodOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 60006, + Name: "SpaceX.API.Common.Protobuf.unstable_method", + Tag: "varint,60006,opt,name=unstable_method", + Filename: "spacex/api/common/protobuf/internal.proto", + }, +} + +// Extension fields to descriptorpb.FileOptions. +var ( + // optional bool unstable_file = 60000; + E_UnstableFile = &file_spacex_api_common_protobuf_internal_proto_extTypes[0] +) + +// Extension fields to descriptorpb.MessageOptions. +var ( + // optional bool unstable_message = 60001; + E_UnstableMessage = &file_spacex_api_common_protobuf_internal_proto_extTypes[1] +) + +// Extension fields to descriptorpb.FieldOptions. +var ( + // optional bool unstable_field = 60002; + E_UnstableField = &file_spacex_api_common_protobuf_internal_proto_extTypes[2] +) + +// Extension fields to descriptorpb.EnumOptions. +var ( + // optional bool unstable_enum = 60003; + E_UnstableEnum = &file_spacex_api_common_protobuf_internal_proto_extTypes[3] +) + +// Extension fields to descriptorpb.EnumValueOptions. +var ( + // optional bool unstable_enum_value = 60004; + E_UnstableEnumValue = &file_spacex_api_common_protobuf_internal_proto_extTypes[4] +) + +// Extension fields to descriptorpb.ServiceOptions. +var ( + // optional bool unstable_service = 60005; + E_UnstableService = &file_spacex_api_common_protobuf_internal_proto_extTypes[5] +) + +// Extension fields to descriptorpb.MethodOptions. +var ( + // optional bool unstable_method = 60006; + E_UnstableMethod = &file_spacex_api_common_protobuf_internal_proto_extTypes[6] +) + +var File_spacex_api_common_protobuf_internal_proto protoreflect.FileDescriptor + +var file_spacex_api_common_protobuf_internal_proto_rawDesc = []byte{ + 0x0a, 0x29, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x53, 0x70, 0x61, + 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x43, 0x0a, 0x0d, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe0, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x3a, 0x4c, + 0x0a, 0x10, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe1, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x46, 0x0a, 0x0e, + 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xe2, 0xd4, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x43, 0x0a, 0x0d, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe3, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x3a, 0x53, 0x0a, 0x13, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe4, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x4c, + 0x0a, 0x10, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xe5, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x6e, 0x73, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x49, 0x0a, 0x0f, + 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, + 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xe6, 0xd4, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x75, 0x6e, 0x73, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_spacex_api_common_protobuf_internal_proto_goTypes = []interface{}{ + (*descriptorpb.FileOptions)(nil), // 0: google.protobuf.FileOptions + (*descriptorpb.MessageOptions)(nil), // 1: google.protobuf.MessageOptions + (*descriptorpb.FieldOptions)(nil), // 2: google.protobuf.FieldOptions + (*descriptorpb.EnumOptions)(nil), // 3: google.protobuf.EnumOptions + (*descriptorpb.EnumValueOptions)(nil), // 4: google.protobuf.EnumValueOptions + (*descriptorpb.ServiceOptions)(nil), // 5: google.protobuf.ServiceOptions + (*descriptorpb.MethodOptions)(nil), // 6: google.protobuf.MethodOptions +} +var file_spacex_api_common_protobuf_internal_proto_depIdxs = []int32{ + 0, // 0: SpaceX.API.Common.Protobuf.unstable_file:extendee -> google.protobuf.FileOptions + 1, // 1: SpaceX.API.Common.Protobuf.unstable_message:extendee -> google.protobuf.MessageOptions + 2, // 2: SpaceX.API.Common.Protobuf.unstable_field:extendee -> google.protobuf.FieldOptions + 3, // 3: SpaceX.API.Common.Protobuf.unstable_enum:extendee -> google.protobuf.EnumOptions + 4, // 4: SpaceX.API.Common.Protobuf.unstable_enum_value:extendee -> google.protobuf.EnumValueOptions + 5, // 5: SpaceX.API.Common.Protobuf.unstable_service:extendee -> google.protobuf.ServiceOptions + 6, // 6: SpaceX.API.Common.Protobuf.unstable_method:extendee -> google.protobuf.MethodOptions + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 0, // [0:7] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_spacex_api_common_protobuf_internal_proto_init() } +func file_spacex_api_common_protobuf_internal_proto_init() { + if File_spacex_api_common_protobuf_internal_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spacex_api_common_protobuf_internal_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 7, + NumServices: 0, + }, + GoTypes: file_spacex_api_common_protobuf_internal_proto_goTypes, + DependencyIndexes: file_spacex_api_common_protobuf_internal_proto_depIdxs, + ExtensionInfos: file_spacex_api_common_protobuf_internal_proto_extTypes, + }.Build() + File_spacex_api_common_protobuf_internal_proto = out.File + file_spacex_api_common_protobuf_internal_proto_rawDesc = nil + file_spacex_api_common_protobuf_internal_proto_goTypes = nil + file_spacex_api_common_protobuf_internal_proto_depIdxs = nil +} blob - /dev/null blob + bf22cd795c9991ff53bae28b7dd72de168be9e37 (mode 644) --- /dev/null +++ satellites/ut_disablement_codes.pb.go @@ -0,0 +1,152 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.6 +// source: spacex/api/satellites/network/ut_disablement_codes.proto + +package satellites + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "olowe.co/dishy/protobuf" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type UtDisablementCode int32 + +const ( + UtDisablementCode_UNKNOWN_STATE UtDisablementCode = 0 + UtDisablementCode_OKAY UtDisablementCode = 1 + UtDisablementCode_NO_ACTIVE_ACCOUNT UtDisablementCode = 2 + UtDisablementCode_TOO_FAR_FROM_SERVICE_ADDRESS UtDisablementCode = 3 + UtDisablementCode_IN_OCEAN UtDisablementCode = 4 + UtDisablementCode_INVALID_COUNTRY UtDisablementCode = 5 +) + +// Enum value maps for UtDisablementCode. +var ( + UtDisablementCode_name = map[int32]string{ + 0: "UNKNOWN_STATE", + 1: "OKAY", + 2: "NO_ACTIVE_ACCOUNT", + 3: "TOO_FAR_FROM_SERVICE_ADDRESS", + 4: "IN_OCEAN", + 5: "INVALID_COUNTRY", + } + UtDisablementCode_value = map[string]int32{ + "UNKNOWN_STATE": 0, + "OKAY": 1, + "NO_ACTIVE_ACCOUNT": 2, + "TOO_FAR_FROM_SERVICE_ADDRESS": 3, + "IN_OCEAN": 4, + "INVALID_COUNTRY": 5, + } +) + +func (x UtDisablementCode) Enum() *UtDisablementCode { + p := new(UtDisablementCode) + *p = x + return p +} + +func (x UtDisablementCode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UtDisablementCode) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_satellites_network_ut_disablement_codes_proto_enumTypes[0].Descriptor() +} + +func (UtDisablementCode) Type() protoreflect.EnumType { + return &file_spacex_api_satellites_network_ut_disablement_codes_proto_enumTypes[0] +} + +func (x UtDisablementCode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UtDisablementCode.Descriptor instead. +func (UtDisablementCode) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescGZIP(), []int{0} +} + +var File_spacex_api_satellites_network_ut_disablement_codes_proto protoreflect.FileDescriptor + +var file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDesc = []byte{ + 0x0a, 0x38, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x61, 0x74, + 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, + 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, + 0x73, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x1a, 0x29, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0x8c, 0x01, 0x0a, 0x11, 0x55, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x4f, 0x4b, 0x41, 0x59, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x4f, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x20, + 0x0a, 0x1c, 0x54, 0x4f, 0x4f, 0x5f, 0x46, 0x41, 0x52, 0x5f, 0x46, 0x52, 0x4f, 0x4d, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, + 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x5f, 0x4f, 0x43, 0x45, 0x41, 0x4e, 0x10, 0x04, 0x12, 0x13, + 0x0a, 0x0f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x52, + 0x59, 0x10, 0x05, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescOnce sync.Once + file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescData = file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDesc +) + +func file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescGZIP() []byte { + file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescOnce.Do(func() { + file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescData = protoimpl.X.CompressGZIP(file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescData) + }) + return file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDescData +} + +var file_spacex_api_satellites_network_ut_disablement_codes_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_spacex_api_satellites_network_ut_disablement_codes_proto_goTypes = []interface{}{ + (UtDisablementCode)(0), // 0: SpaceX.API.Satellites.Network.UtDisablementCode +} +var file_spacex_api_satellites_network_ut_disablement_codes_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_spacex_api_satellites_network_ut_disablement_codes_proto_init() } +func file_spacex_api_satellites_network_ut_disablement_codes_proto_init() { + if File_spacex_api_satellites_network_ut_disablement_codes_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDesc, + NumEnums: 1, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spacex_api_satellites_network_ut_disablement_codes_proto_goTypes, + DependencyIndexes: file_spacex_api_satellites_network_ut_disablement_codes_proto_depIdxs, + EnumInfos: file_spacex_api_satellites_network_ut_disablement_codes_proto_enumTypes, + }.Build() + File_spacex_api_satellites_network_ut_disablement_codes_proto = out.File + file_spacex_api_satellites_network_ut_disablement_codes_proto_rawDesc = nil + file_spacex_api_satellites_network_ut_disablement_codes_proto_goTypes = nil + file_spacex_api_satellites_network_ut_disablement_codes_proto_depIdxs = nil +} blob - /dev/null blob + 349c2cf343cfdb995d39ac1e0b309d27a618bbce (mode 644) --- /dev/null +++ telemetron/time.pb.go @@ -0,0 +1,209 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.21.6 +// source: spacex/api/telemetron/public/common/time.proto + +package telemetron + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Epoch int32 + +const ( + Epoch_UNIX Epoch = 0 + Epoch_GPS Epoch = 1 +) + +// Enum value maps for Epoch. +var ( + Epoch_name = map[int32]string{ + 0: "UNIX", + 1: "GPS", + } + Epoch_value = map[string]int32{ + "UNIX": 0, + "GPS": 1, + } +) + +func (x Epoch) Enum() *Epoch { + p := new(Epoch) + *p = x + return p +} + +func (x Epoch) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Epoch) Descriptor() protoreflect.EnumDescriptor { + return file_spacex_api_telemetron_public_common_time_proto_enumTypes[0].Descriptor() +} + +func (Epoch) Type() protoreflect.EnumType { + return &file_spacex_api_telemetron_public_common_time_proto_enumTypes[0] +} + +func (x Epoch) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Epoch.Descriptor instead. +func (Epoch) EnumDescriptor() ([]byte, []int) { + return file_spacex_api_telemetron_public_common_time_proto_rawDescGZIP(), []int{0} +} + +type TimestampInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Epoch Epoch `protobuf:"varint,1,opt,name=epoch,proto3,enum=SpaceX.API.Telemetron.Public.Common.Epoch" json:"epoch,omitempty"` + Nanoseconds int64 `protobuf:"varint,2,opt,name=nanoseconds,proto3" json:"nanoseconds,omitempty"` +} + +func (x *TimestampInfo) Reset() { + *x = TimestampInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_spacex_api_telemetron_public_common_time_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TimestampInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimestampInfo) ProtoMessage() {} + +func (x *TimestampInfo) ProtoReflect() protoreflect.Message { + mi := &file_spacex_api_telemetron_public_common_time_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimestampInfo.ProtoReflect.Descriptor instead. +func (*TimestampInfo) Descriptor() ([]byte, []int) { + return file_spacex_api_telemetron_public_common_time_proto_rawDescGZIP(), []int{0} +} + +func (x *TimestampInfo) GetEpoch() Epoch { + if x != nil { + return x.Epoch + } + return Epoch_UNIX +} + +func (x *TimestampInfo) GetNanoseconds() int64 { + if x != nil { + return x.Nanoseconds + } + return 0 +} + +var File_spacex_api_telemetron_public_common_time_proto protoreflect.FileDescriptor + +var file_spacex_api_telemetron_public_common_time_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x23, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x0d, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, + 0x50, 0x49, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x45, 0x70, 0x6f, 0x63, + 0x68, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6e, + 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x2a, 0x1a, 0x0a, 0x05, 0x45, 0x70, + 0x6f, 0x63, 0x68, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x4e, 0x49, 0x58, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x47, 0x50, 0x53, 0x10, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_spacex_api_telemetron_public_common_time_proto_rawDescOnce sync.Once + file_spacex_api_telemetron_public_common_time_proto_rawDescData = file_spacex_api_telemetron_public_common_time_proto_rawDesc +) + +func file_spacex_api_telemetron_public_common_time_proto_rawDescGZIP() []byte { + file_spacex_api_telemetron_public_common_time_proto_rawDescOnce.Do(func() { + file_spacex_api_telemetron_public_common_time_proto_rawDescData = protoimpl.X.CompressGZIP(file_spacex_api_telemetron_public_common_time_proto_rawDescData) + }) + return file_spacex_api_telemetron_public_common_time_proto_rawDescData +} + +var file_spacex_api_telemetron_public_common_time_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_spacex_api_telemetron_public_common_time_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_spacex_api_telemetron_public_common_time_proto_goTypes = []interface{}{ + (Epoch)(0), // 0: SpaceX.API.Telemetron.Public.Common.Epoch + (*TimestampInfo)(nil), // 1: SpaceX.API.Telemetron.Public.Common.TimestampInfo +} +var file_spacex_api_telemetron_public_common_time_proto_depIdxs = []int32{ + 0, // 0: SpaceX.API.Telemetron.Public.Common.TimestampInfo.epoch:type_name -> SpaceX.API.Telemetron.Public.Common.Epoch + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_spacex_api_telemetron_public_common_time_proto_init() } +func file_spacex_api_telemetron_public_common_time_proto_init() { + if File_spacex_api_telemetron_public_common_time_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_spacex_api_telemetron_public_common_time_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TimestampInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_spacex_api_telemetron_public_common_time_proto_rawDesc, + NumEnums: 1, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_spacex_api_telemetron_public_common_time_proto_goTypes, + DependencyIndexes: file_spacex_api_telemetron_public_common_time_proto_depIdxs, + EnumInfos: file_spacex_api_telemetron_public_common_time_proto_enumTypes, + MessageInfos: file_spacex_api_telemetron_public_common_time_proto_msgTypes, + }.Build() + File_spacex_api_telemetron_public_common_time_proto = out.File + file_spacex_api_telemetron_public_common_time_proto_rawDesc = nil + file_spacex_api_telemetron_public_common_time_proto_goTypes = nil + file_spacex_api_telemetron_public_common_time_proto_depIdxs = nil +}