// // Version 3.0 // 最后更新时间 2024–06-14 // 健康监测部级平台数据编码协议定义 //指定protobuf的版本,proto3是最新的语法版本 // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.22.2 // source: MonitorDataProtocol-Ministry-V3.proto package protoFiles_hb 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) ) // 监测数据类型:实时数据,特征值数据,特殊事件,数据抽查 // 1、REALTIME: 省平台有主动触发实时数据推送时(目前部级没有主动触发场景)发送 // 2、STATISTICS:常规特征值数据周期性发送时触发 // 3、SPECIALEVENT:单桥发生特殊事件时主动触发 // 4、INSPECTION:部级根据特殊事件具体情况,对单桥数据进行抽查时触发 // 这几个类型用于标识数据触发时的场景,至于具体发送的是原始实时数据还是特征值数据,在dataBody中有明确定义 type DataType int32 const ( DataType_REALTIME DataType = 0 DataType_STATISTICS DataType = 1 DataType_SPECIALEVENT DataType = 2 DataType_INSPECTION DataType = 3 ) // Enum value maps for DataType. var ( DataType_name = map[int32]string{ 0: "REALTIME", 1: "STATISTICS", 2: "SPECIALEVENT", 3: "INSPECTION", } DataType_value = map[string]int32{ "REALTIME": 0, "STATISTICS": 1, "SPECIALEVENT": 2, "INSPECTION": 3, } ) func (x DataType) Enum() *DataType { p := new(DataType) *p = x return p } func (x DataType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DataType) Descriptor() protoreflect.EnumDescriptor { return file_MonitorDataProtocol_Ministry_V3_proto_enumTypes[0].Descriptor() } func (DataType) Type() protoreflect.EnumType { return &file_MonitorDataProtocol_Ministry_V3_proto_enumTypes[0] } func (x DataType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DataType.Descriptor instead. func (DataType) EnumDescriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{0} } type MonitoryType int32 const ( // 风速风向 MonitoryType_UAN MonitoryType = 0 // 温湿度 MonitoryType_RHS MonitoryType = 1 // 结构空间变形 MonitoryType_GNSS MonitoryType = 2 // 振动法索力 MonitoryType_VIC MonitoryType = 3 // 直接法索力 MonitoryType_DIC MonitoryType = 4 // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) MonitoryType_DIS MonitoryType = 5 // 挠度 MonitoryType_HPT MonitoryType = 6 // 应变 MonitoryType_RSG MonitoryType = 7 // 转角 MonitoryType_INC MonitoryType = 8 // 振动 MonitoryType_VIB MonitoryType = 9 // 地震 MonitoryType_VIE MonitoryType = 10 // TMD监测 MonitoryType_TMD MonitoryType = 11 // 车辆荷载 MonitoryType_HSD MonitoryType = 12 // 结构温度 MonitoryType_TMP MonitoryType = 13 // 雨量 MonitoryType_PWS MonitoryType = 14 // 结冰 MonitoryType_FRZ MonitoryType = 15 // 路面状况 MonitoryType_LMZ MonitoryType = 16 // 支反力 MonitoryType_STF MonitoryType = 17 // 基础冲刷 MonitoryType_SCO MonitoryType = 18 // 裂缝 MonitoryType_CRK MonitoryType = 19 // 腐蚀 MonitoryType_COR MonitoryType = 20 // 振动法预应力 MonitoryType_VIS MonitoryType = 21 // 预应力 MonitoryType_STR MonitoryType = 22 // 断丝 MonitoryType_BRK MonitoryType = 23 // 螺栓紧固力 MonitoryType_BTF MonitoryType = 24 // 滑移 MonitoryType_CSP MonitoryType = 25 // 风压 MonitoryType_WDP MonitoryType = 26 // 位移(锚碇位移、拱脚位移、桥墩沉降) MonitoryType_AND MonitoryType = 30 // 船舶撞击 MonitoryType_VID MonitoryType = 33 // 能见度 MonitoryType_VSB MonitoryType = 34 // 大气浓度 MonitoryType_ACN MonitoryType = 35 // 水位 MonitoryType_WLV MonitoryType = 36 // 围岩温度 MonitoryType_WYWD MonitoryType = 37 // 仰坡变形 MonitoryType_YPBX MonitoryType = 38 // 拱顶沉降 MonitoryType_GDCJ MonitoryType = 39 // 拱腰收敛 MonitoryType_GYSL MonitoryType = 40 // 轮廓变形 MonitoryType_LKBX MonitoryType = 41 // 衬砌应力 MonitoryType_CQYL MonitoryType = 42 // 混凝土结构应变 MonitoryType_CRSG MonitoryType = 43 // 钢结构应变 MonitoryType_SRSG MonitoryType = 44 // 锚杆索力 MonitoryType_MGYL MonitoryType = 45 // 衬砌裂缝 MonitoryType_CQLF MonitoryType = 46 // 仰坡落石 MonitoryType_YPLS MonitoryType = 47 // 地表位移 MonitoryType_DBWY MonitoryType = 48 // 深层位移 MonitoryType_SCWY MonitoryType = 49 // 挡土墙倾斜 MonitoryType_DTQQX MonitoryType = 50 // 地表裂缝 MonitoryType_DBLF MonitoryType = 51 // 孔隙水压力 MonitoryType_KSY MonitoryType = 52 // 地下水位 MonitoryType_DXSW MonitoryType = 53 // 表面变形 MonitoryType_PLD MonitoryType = 97 // 通用 MonitoryType_CMM MonitoryType = 99 ) // Enum value maps for MonitoryType. var ( MonitoryType_name = map[int32]string{ 0: "UAN", 1: "RHS", 2: "GNSS", 3: "VIC", 4: "DIC", 5: "DIS", 6: "HPT", 7: "RSG", 8: "INC", 9: "VIB", 10: "VIE", 11: "TMD", 12: "HSD", 13: "TMP", 14: "PWS", 15: "FRZ", 16: "LMZ", 17: "STF", 18: "SCO", 19: "CRK", 20: "COR", 21: "VIS", 22: "STR", 23: "BRK", 24: "BTF", 25: "CSP", 26: "WDP", 30: "AND", 33: "VID", 34: "VSB", 35: "ACN", 36: "WLV", 37: "WYWD", 38: "YPBX", 39: "GDCJ", 40: "GYSL", 41: "LKBX", 42: "CQYL", 43: "CRSG", 44: "SRSG", 45: "MGYL", 46: "CQLF", 47: "YPLS", 48: "DBWY", 49: "SCWY", 50: "DTQQX", 51: "DBLF", 52: "KSY", 53: "DXSW", 97: "PLD", 99: "CMM", } MonitoryType_value = map[string]int32{ "UAN": 0, "RHS": 1, "GNSS": 2, "VIC": 3, "DIC": 4, "DIS": 5, "HPT": 6, "RSG": 7, "INC": 8, "VIB": 9, "VIE": 10, "TMD": 11, "HSD": 12, "TMP": 13, "PWS": 14, "FRZ": 15, "LMZ": 16, "STF": 17, "SCO": 18, "CRK": 19, "COR": 20, "VIS": 21, "STR": 22, "BRK": 23, "BTF": 24, "CSP": 25, "WDP": 26, "AND": 30, "VID": 33, "VSB": 34, "ACN": 35, "WLV": 36, "WYWD": 37, "YPBX": 38, "GDCJ": 39, "GYSL": 40, "LKBX": 41, "CQYL": 42, "CRSG": 43, "SRSG": 44, "MGYL": 45, "CQLF": 46, "YPLS": 47, "DBWY": 48, "SCWY": 49, "DTQQX": 50, "DBLF": 51, "KSY": 52, "DXSW": 53, "PLD": 97, "CMM": 99, } ) func (x MonitoryType) Enum() *MonitoryType { p := new(MonitoryType) *p = x return p } func (x MonitoryType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (MonitoryType) Descriptor() protoreflect.EnumDescriptor { return file_MonitorDataProtocol_Ministry_V3_proto_enumTypes[1].Descriptor() } func (MonitoryType) Type() protoreflect.EnumType { return &file_MonitorDataProtocol_Ministry_V3_proto_enumTypes[1] } func (x MonitoryType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use MonitoryType.Descriptor instead. func (MonitoryType) EnumDescriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{1} } // 复合类型 type ComplexData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 各个监测数据组成的数据,解开后循环解析,生成CRC后进行加密 SensorData []*DataDefinition `protobuf:"bytes,1,rep,name=sensorData,proto3" json:"sensorData,omitempty"` } func (x *ComplexData) Reset() { *x = ComplexData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComplexData) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComplexData) ProtoMessage() {} func (x *ComplexData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 ComplexData.ProtoReflect.Descriptor instead. func (*ComplexData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{0} } func (x *ComplexData) GetSensorData() []*DataDefinition { if x != nil { return x.SensorData } return nil } // 定义数据内容 type DataDefinition struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DataType DataType `protobuf:"varint,1,opt,name=dataType,proto3,enum=MonitorDataProtocol.DataType" json:"dataType,omitempty"` // 设施唯一编码 UniqueCode string `protobuf:"bytes,14,opt,name=uniqueCode,proto3" json:"uniqueCode,omitempty"` // 省份代码 不传该字段 PlatformCode string `protobuf:"bytes,15,opt,name=platformCode,proto3" json:"platformCode,omitempty"` // Types that are assignable to DataBody: // // *DataDefinition_RealTimeData // *DataDefinition_StatisticData DataBody isDataDefinition_DataBody `protobuf_oneof:"dataBody"` } func (x *DataDefinition) Reset() { *x = DataDefinition{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DataDefinition) String() string { return protoimpl.X.MessageStringOf(x) } func (*DataDefinition) ProtoMessage() {} func (x *DataDefinition) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[1] 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 DataDefinition.ProtoReflect.Descriptor instead. func (*DataDefinition) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{1} } func (x *DataDefinition) GetDataType() DataType { if x != nil { return x.DataType } return DataType_REALTIME } func (x *DataDefinition) GetUniqueCode() string { if x != nil { return x.UniqueCode } return "" } func (x *DataDefinition) GetPlatformCode() string { if x != nil { return x.PlatformCode } return "" } func (m *DataDefinition) GetDataBody() isDataDefinition_DataBody { if m != nil { return m.DataBody } return nil } func (x *DataDefinition) GetRealTimeData() *RealTimeData { if x, ok := x.GetDataBody().(*DataDefinition_RealTimeData); ok { return x.RealTimeData } return nil } func (x *DataDefinition) GetStatisticData() *StatisticData { if x, ok := x.GetDataBody().(*DataDefinition_StatisticData); ok { return x.StatisticData } return nil } type isDataDefinition_DataBody interface { isDataDefinition_DataBody() } type DataDefinition_RealTimeData struct { // 实时数据 RealTimeData *RealTimeData `protobuf:"bytes,2,opt,name=realTimeData,proto3,oneof"` } type DataDefinition_StatisticData struct { // 特征值数据 StatisticData *StatisticData `protobuf:"bytes,3,opt,name=statisticData,proto3,oneof"` } func (*DataDefinition_RealTimeData) isDataDefinition_DataBody() {} func (*DataDefinition_StatisticData) isDataDefinition_DataBody() {} // 实时数据 type RealTimeData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 监测类型 MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=MonitorDataProtocol.MonitoryType" json:"monitorType,omitempty"` // 测点编码唯一编码 2位省份编码+4位桥梁序号+5位桥梁测点序号 测点必须先注册后才可以发送 MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` // 记录时间戳 EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` // 实时数据 // // Types that are assignable to DataBody: // // *RealTimeData_Uan // *RealTimeData_Rhs // *RealTimeData_Tmp // *RealTimeData_Gnss // *RealTimeData_Vic // *RealTimeData_Dic // *RealTimeData_Dis // *RealTimeData_Hpt // *RealTimeData_Rsg // *RealTimeData_Inc // *RealTimeData_Vie // *RealTimeData_Tmd // *RealTimeData_Vib // *RealTimeData_Hsd // *RealTimeData_Pws // *RealTimeData_Frz // *RealTimeData_Lmz // *RealTimeData_Stf // *RealTimeData_Sco // *RealTimeData_Crk // *RealTimeData_Cor // *RealTimeData_Vis // *RealTimeData_Str // *RealTimeData_Brk // *RealTimeData_Btf // *RealTimeData_Csp // *RealTimeData_Vsb // *RealTimeData_Acn // *RealTimeData_Wlv // *RealTimeData_Pld // *RealTimeData_Wdp // *RealTimeData_And // *RealTimeData_Vid // *RealTimeData_Wywd // *RealTimeData_Ypbx // *RealTimeData_Gdcj // *RealTimeData_Gysl // *RealTimeData_Lkbx // *RealTimeData_Cqyl // *RealTimeData_Crsg // *RealTimeData_Srsg // *RealTimeData_Mgyl // *RealTimeData_Ypls // *RealTimeData_Dbwy // *RealTimeData_Scwy // *RealTimeData_Dtqqx // *RealTimeData_Dblf // *RealTimeData_Ksy // *RealTimeData_Dxsw // *RealTimeData_Cqlf DataBody isRealTimeData_DataBody `protobuf_oneof:"dataBody"` } func (x *RealTimeData) Reset() { *x = RealTimeData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RealTimeData) String() string { return protoimpl.X.MessageStringOf(x) } func (*RealTimeData) ProtoMessage() {} func (x *RealTimeData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 RealTimeData.ProtoReflect.Descriptor instead. func (*RealTimeData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{2} } func (x *RealTimeData) GetMonitorType() MonitoryType { if x != nil { return x.MonitorType } return MonitoryType_UAN } func (x *RealTimeData) GetMonitorCode() int64 { if x != nil { return x.MonitorCode } return 0 } func (x *RealTimeData) GetEventTime() int64 { if x != nil { return x.EventTime } return 0 } func (m *RealTimeData) GetDataBody() isRealTimeData_DataBody { if m != nil { return m.DataBody } return nil } func (x *RealTimeData) GetUan() *UANRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Uan); ok { return x.Uan } return nil } func (x *RealTimeData) GetRhs() *RHSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Rhs); ok { return x.Rhs } return nil } func (x *RealTimeData) GetTmp() *TMPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Tmp); ok { return x.Tmp } return nil } func (x *RealTimeData) GetGnss() *GNSSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Gnss); ok { return x.Gnss } return nil } func (x *RealTimeData) GetVic() *VICRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vic); ok { return x.Vic } return nil } func (x *RealTimeData) GetDic() *DICRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dic); ok { return x.Dic } return nil } func (x *RealTimeData) GetDis() *DISRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dis); ok { return x.Dis } return nil } func (x *RealTimeData) GetHpt() *HPTRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Hpt); ok { return x.Hpt } return nil } func (x *RealTimeData) GetRsg() *RSGRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Rsg); ok { return x.Rsg } return nil } func (x *RealTimeData) GetInc() *INCRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Inc); ok { return x.Inc } return nil } func (x *RealTimeData) GetVie() *VIERealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vie); ok { return x.Vie } return nil } func (x *RealTimeData) GetTmd() *TMDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Tmd); ok { return x.Tmd } return nil } func (x *RealTimeData) GetVib() *VIBRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vib); ok { return x.Vib } return nil } func (x *RealTimeData) GetHsd() *HSDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Hsd); ok { return x.Hsd } return nil } func (x *RealTimeData) GetPws() *PWSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Pws); ok { return x.Pws } return nil } func (x *RealTimeData) GetFrz() *FRZRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Frz); ok { return x.Frz } return nil } func (x *RealTimeData) GetLmz() *LMZRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Lmz); ok { return x.Lmz } return nil } func (x *RealTimeData) GetStf() *STFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Stf); ok { return x.Stf } return nil } func (x *RealTimeData) GetSco() *SCORealTime { if x, ok := x.GetDataBody().(*RealTimeData_Sco); ok { return x.Sco } return nil } func (x *RealTimeData) GetCrk() *CRKRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Crk); ok { return x.Crk } return nil } func (x *RealTimeData) GetCor() *CORRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Cor); ok { return x.Cor } return nil } func (x *RealTimeData) GetVis() *VISRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vis); ok { return x.Vis } return nil } func (x *RealTimeData) GetStr() *STRRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Str); ok { return x.Str } return nil } func (x *RealTimeData) GetBrk() *BRKRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Brk); ok { return x.Brk } return nil } func (x *RealTimeData) GetBtf() *BTFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Btf); ok { return x.Btf } return nil } func (x *RealTimeData) GetCsp() *CSPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Csp); ok { return x.Csp } return nil } func (x *RealTimeData) GetVsb() *VSBRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vsb); ok { return x.Vsb } return nil } func (x *RealTimeData) GetAcn() *ACNRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Acn); ok { return x.Acn } return nil } func (x *RealTimeData) GetWlv() *WLVRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Wlv); ok { return x.Wlv } return nil } func (x *RealTimeData) GetPld() *PLDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Pld); ok { return x.Pld } return nil } func (x *RealTimeData) GetWdp() *WDPRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Wdp); ok { return x.Wdp } return nil } func (x *RealTimeData) GetAnd() *ANDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_And); ok { return x.And } return nil } func (x *RealTimeData) GetVid() *VIDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Vid); ok { return x.Vid } return nil } func (x *RealTimeData) GetWywd() *WYWDRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Wywd); ok { return x.Wywd } return nil } func (x *RealTimeData) GetYpbx() *YPBXRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Ypbx); ok { return x.Ypbx } return nil } func (x *RealTimeData) GetGdcj() *GDCJRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Gdcj); ok { return x.Gdcj } return nil } func (x *RealTimeData) GetGysl() *GYSLRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Gysl); ok { return x.Gysl } return nil } func (x *RealTimeData) GetLkbx() *LKBXRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Lkbx); ok { return x.Lkbx } return nil } func (x *RealTimeData) GetCqyl() *CQYLRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Cqyl); ok { return x.Cqyl } return nil } func (x *RealTimeData) GetCrsg() *CRSGRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Crsg); ok { return x.Crsg } return nil } func (x *RealTimeData) GetSrsg() *SRSGRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Srsg); ok { return x.Srsg } return nil } func (x *RealTimeData) GetMgyl() *MGYLRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Mgyl); ok { return x.Mgyl } return nil } func (x *RealTimeData) GetYpls() *YPLSRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Ypls); ok { return x.Ypls } return nil } func (x *RealTimeData) GetDbwy() *DBWYRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dbwy); ok { return x.Dbwy } return nil } func (x *RealTimeData) GetScwy() *SCWYRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Scwy); ok { return x.Scwy } return nil } func (x *RealTimeData) GetDtqqx() *DTQQXRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dtqqx); ok { return x.Dtqqx } return nil } func (x *RealTimeData) GetDblf() *DBLFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dblf); ok { return x.Dblf } return nil } func (x *RealTimeData) GetKsy() *KSYRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Ksy); ok { return x.Ksy } return nil } func (x *RealTimeData) GetDxsw() *DXSWRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Dxsw); ok { return x.Dxsw } return nil } func (x *RealTimeData) GetCqlf() *CQLFRealTime { if x, ok := x.GetDataBody().(*RealTimeData_Cqlf); ok { return x.Cqlf } return nil } type isRealTimeData_DataBody interface { isRealTimeData_DataBody() } type RealTimeData_Uan struct { // 风速风向 Uan *UANRealTime `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` } type RealTimeData_Rhs struct { // 温湿度 Rhs *RHSRealTime `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` } type RealTimeData_Tmp struct { // 结构温度 Tmp *TMPRealTime `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` } type RealTimeData_Gnss struct { // 空间变形 Gnss *GNSSRealTime `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` } type RealTimeData_Vic struct { // 索力 Vic *VICRealTime `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` } type RealTimeData_Dic struct { // 直接法测索力 Dic *DICRealTime `protobuf:"bytes,9,opt,name=dic,proto3,oneof"` } type RealTimeData_Dis struct { // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) Dis *DISRealTime `protobuf:"bytes,10,opt,name=dis,proto3,oneof"` } type RealTimeData_Hpt struct { // 挠度 Hpt *HPTRealTime `protobuf:"bytes,11,opt,name=hpt,proto3,oneof"` } type RealTimeData_Rsg struct { // 应变 Rsg *RSGRealTime `protobuf:"bytes,12,opt,name=rsg,proto3,oneof"` } type RealTimeData_Inc struct { // 转角 Inc *INCRealTime `protobuf:"bytes,13,opt,name=inc,proto3,oneof"` } type RealTimeData_Vie struct { // 地震 Vie *VIERealTime `protobuf:"bytes,14,opt,name=vie,proto3,oneof"` } type RealTimeData_Tmd struct { // TMD Tmd *TMDRealTime `protobuf:"bytes,15,opt,name=tmd,proto3,oneof"` } type RealTimeData_Vib struct { // 动力特性 Vib *VIBRealTime `protobuf:"bytes,16,opt,name=vib,proto3,oneof"` } type RealTimeData_Hsd struct { // 车辆荷载 Hsd *HSDRealTime `protobuf:"bytes,17,opt,name=hsd,proto3,oneof"` } type RealTimeData_Pws struct { // 雨量 Pws *PWSRealTime `protobuf:"bytes,18,opt,name=pws,proto3,oneof"` } type RealTimeData_Frz struct { // 结冰 Frz *FRZRealTime `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` } type RealTimeData_Lmz struct { // 路面状况 Lmz *LMZRealTime `protobuf:"bytes,20,opt,name=lmz,proto3,oneof"` } type RealTimeData_Stf struct { // 支反力 Stf *STFRealTime `protobuf:"bytes,21,opt,name=stf,proto3,oneof"` } type RealTimeData_Sco struct { // 基础冲刷 Sco *SCORealTime `protobuf:"bytes,22,opt,name=sco,proto3,oneof"` } type RealTimeData_Crk struct { // 裂缝 Crk *CRKRealTime `protobuf:"bytes,23,opt,name=crk,proto3,oneof"` } type RealTimeData_Cor struct { // 腐蚀 Cor *CORRealTime `protobuf:"bytes,25,opt,name=cor,proto3,oneof"` } type RealTimeData_Vis struct { // 振动法预应力 Vis *VISRealTime `protobuf:"bytes,26,opt,name=vis,proto3,oneof"` } type RealTimeData_Str struct { // 预应力 Str *STRRealTime `protobuf:"bytes,27,opt,name=str,proto3,oneof"` } type RealTimeData_Brk struct { // 断丝 Brk *BRKRealTime `protobuf:"bytes,28,opt,name=brk,proto3,oneof"` } type RealTimeData_Btf struct { // 螺栓紧固力 Btf *BTFRealTime `protobuf:"bytes,29,opt,name=btf,proto3,oneof"` } type RealTimeData_Csp struct { // 滑移 Csp *CSPRealTime `protobuf:"bytes,30,opt,name=csp,proto3,oneof"` } type RealTimeData_Vsb struct { // 能见度 Vsb *VSBRealTime `protobuf:"bytes,31,opt,name=vsb,proto3,oneof"` } type RealTimeData_Acn struct { // 大气浓度 Acn *ACNRealTime `protobuf:"bytes,32,opt,name=acn,proto3,oneof"` } type RealTimeData_Wlv struct { // 水位 Wlv *WLVRealTime `protobuf:"bytes,33,opt,name=wlv,proto3,oneof"` } type RealTimeData_Pld struct { // 表面变形监测 Pld *PLDRealTime `protobuf:"bytes,34,opt,name=pld,proto3,oneof"` } type RealTimeData_Wdp struct { // 风压 Wdp *WDPRealTime `protobuf:"bytes,35,opt,name=wdp,proto3,oneof"` } type RealTimeData_And struct { // 位移 And *ANDRealTime `protobuf:"bytes,36,opt,name=and,proto3,oneof"` } type RealTimeData_Vid struct { // 船舶撞击 Vid *VIDRealTime `protobuf:"bytes,37,opt,name=vid,proto3,oneof"` } type RealTimeData_Wywd struct { // 围岩温度 Wywd *WYWDRealTime `protobuf:"bytes,38,opt,name=wywd,proto3,oneof"` } type RealTimeData_Ypbx struct { // 仰坡变形 Ypbx *YPBXRealTime `protobuf:"bytes,39,opt,name=ypbx,proto3,oneof"` } type RealTimeData_Gdcj struct { // 拱顶沉降 Gdcj *GDCJRealTime `protobuf:"bytes,40,opt,name=gdcj,proto3,oneof"` } type RealTimeData_Gysl struct { // 拱腰收敛 Gysl *GYSLRealTime `protobuf:"bytes,41,opt,name=gysl,proto3,oneof"` } type RealTimeData_Lkbx struct { // 轮廓变形 Lkbx *LKBXRealTime `protobuf:"bytes,42,opt,name=lkbx,proto3,oneof"` } type RealTimeData_Cqyl struct { // 衬砌应力 Cqyl *CQYLRealTime `protobuf:"bytes,43,opt,name=cqyl,proto3,oneof"` } type RealTimeData_Crsg struct { // 混凝土结构应变 Crsg *CRSGRealTime `protobuf:"bytes,44,opt,name=crsg,proto3,oneof"` } type RealTimeData_Srsg struct { // 钢结构应变 Srsg *SRSGRealTime `protobuf:"bytes,45,opt,name=srsg,proto3,oneof"` } type RealTimeData_Mgyl struct { // 锚杆索力 Mgyl *MGYLRealTime `protobuf:"bytes,46,opt,name=mgyl,proto3,oneof"` } type RealTimeData_Ypls struct { // 仰坡落石 Ypls *YPLSRealTime `protobuf:"bytes,47,opt,name=ypls,proto3,oneof"` } type RealTimeData_Dbwy struct { // 地表位移 Dbwy *DBWYRealTime `protobuf:"bytes,48,opt,name=dbwy,proto3,oneof"` } type RealTimeData_Scwy struct { // 深层位移 Scwy *SCWYRealTime `protobuf:"bytes,49,opt,name=scwy,proto3,oneof"` } type RealTimeData_Dtqqx struct { // 挡土墙倾斜 Dtqqx *DTQQXRealTime `protobuf:"bytes,50,opt,name=dtqqx,proto3,oneof"` } type RealTimeData_Dblf struct { // 地表裂缝 Dblf *DBLFRealTime `protobuf:"bytes,51,opt,name=dblf,proto3,oneof"` } type RealTimeData_Ksy struct { // 孔隙水压力 Ksy *KSYRealTime `protobuf:"bytes,52,opt,name=ksy,proto3,oneof"` } type RealTimeData_Dxsw struct { // 地下水位 Dxsw *DXSWRealTime `protobuf:"bytes,53,opt,name=dxsw,proto3,oneof"` } type RealTimeData_Cqlf struct { // 衬砌裂缝 Cqlf *CQLFRealTime `protobuf:"bytes,54,opt,name=cqlf,proto3,oneof"` } func (*RealTimeData_Uan) isRealTimeData_DataBody() {} func (*RealTimeData_Rhs) isRealTimeData_DataBody() {} func (*RealTimeData_Tmp) isRealTimeData_DataBody() {} func (*RealTimeData_Gnss) isRealTimeData_DataBody() {} func (*RealTimeData_Vic) isRealTimeData_DataBody() {} func (*RealTimeData_Dic) isRealTimeData_DataBody() {} func (*RealTimeData_Dis) isRealTimeData_DataBody() {} func (*RealTimeData_Hpt) isRealTimeData_DataBody() {} func (*RealTimeData_Rsg) isRealTimeData_DataBody() {} func (*RealTimeData_Inc) isRealTimeData_DataBody() {} func (*RealTimeData_Vie) isRealTimeData_DataBody() {} func (*RealTimeData_Tmd) isRealTimeData_DataBody() {} func (*RealTimeData_Vib) isRealTimeData_DataBody() {} func (*RealTimeData_Hsd) isRealTimeData_DataBody() {} func (*RealTimeData_Pws) isRealTimeData_DataBody() {} func (*RealTimeData_Frz) isRealTimeData_DataBody() {} func (*RealTimeData_Lmz) isRealTimeData_DataBody() {} func (*RealTimeData_Stf) isRealTimeData_DataBody() {} func (*RealTimeData_Sco) isRealTimeData_DataBody() {} func (*RealTimeData_Crk) isRealTimeData_DataBody() {} func (*RealTimeData_Cor) isRealTimeData_DataBody() {} func (*RealTimeData_Vis) isRealTimeData_DataBody() {} func (*RealTimeData_Str) isRealTimeData_DataBody() {} func (*RealTimeData_Brk) isRealTimeData_DataBody() {} func (*RealTimeData_Btf) isRealTimeData_DataBody() {} func (*RealTimeData_Csp) isRealTimeData_DataBody() {} func (*RealTimeData_Vsb) isRealTimeData_DataBody() {} func (*RealTimeData_Acn) isRealTimeData_DataBody() {} func (*RealTimeData_Wlv) isRealTimeData_DataBody() {} func (*RealTimeData_Pld) isRealTimeData_DataBody() {} func (*RealTimeData_Wdp) isRealTimeData_DataBody() {} func (*RealTimeData_And) isRealTimeData_DataBody() {} func (*RealTimeData_Vid) isRealTimeData_DataBody() {} func (*RealTimeData_Wywd) isRealTimeData_DataBody() {} func (*RealTimeData_Ypbx) isRealTimeData_DataBody() {} func (*RealTimeData_Gdcj) isRealTimeData_DataBody() {} func (*RealTimeData_Gysl) isRealTimeData_DataBody() {} func (*RealTimeData_Lkbx) isRealTimeData_DataBody() {} func (*RealTimeData_Cqyl) isRealTimeData_DataBody() {} func (*RealTimeData_Crsg) isRealTimeData_DataBody() {} func (*RealTimeData_Srsg) isRealTimeData_DataBody() {} func (*RealTimeData_Mgyl) isRealTimeData_DataBody() {} func (*RealTimeData_Ypls) isRealTimeData_DataBody() {} func (*RealTimeData_Dbwy) isRealTimeData_DataBody() {} func (*RealTimeData_Scwy) isRealTimeData_DataBody() {} func (*RealTimeData_Dtqqx) isRealTimeData_DataBody() {} func (*RealTimeData_Dblf) isRealTimeData_DataBody() {} func (*RealTimeData_Ksy) isRealTimeData_DataBody() {} func (*RealTimeData_Dxsw) isRealTimeData_DataBody() {} func (*RealTimeData_Cqlf) isRealTimeData_DataBody() {} // 风速风向指标 type UANRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 风速 WindVelocity float32 `protobuf:"fixed32,1,opt,name=windVelocity,proto3" json:"windVelocity,omitempty"` // 风向 WindDirection float32 `protobuf:"fixed32,2,opt,name=windDirection,proto3" json:"windDirection,omitempty"` // 风攻角 WindAttackAngle *float32 `protobuf:"fixed32,3,opt,name=windAttackAngle,proto3,oneof" json:"windAttackAngle,omitempty"` } func (x *UANRealTime) Reset() { *x = UANRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UANRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*UANRealTime) ProtoMessage() {} func (x *UANRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 UANRealTime.ProtoReflect.Descriptor instead. func (*UANRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{3} } func (x *UANRealTime) GetWindVelocity() float32 { if x != nil { return x.WindVelocity } return 0 } func (x *UANRealTime) GetWindDirection() float32 { if x != nil { return x.WindDirection } return 0 } func (x *UANRealTime) GetWindAttackAngle() float32 { if x != nil && x.WindAttackAngle != nil { return *x.WindAttackAngle } return 0 } // 温湿度指标 type RHSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 温度 Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` // 湿度 Humidity float32 `protobuf:"fixed32,2,opt,name=humidity,proto3" json:"humidity,omitempty"` } func (x *RHSRealTime) Reset() { *x = RHSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RHSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*RHSRealTime) ProtoMessage() {} func (x *RHSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 RHSRealTime.ProtoReflect.Descriptor instead. func (*RHSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{4} } func (x *RHSRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } func (x *RHSRealTime) GetHumidity() float32 { if x != nil { return x.Humidity } return 0 } // 温度指标 type TMPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 温度 Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *TMPRealTime) Reset() { *x = TMPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMPRealTime) ProtoMessage() {} func (x *TMPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 TMPRealTime.ProtoReflect.Descriptor instead. func (*TMPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{5} } func (x *TMPRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 空间变形指标 type GNSSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 竖向 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *GNSSRealTime) Reset() { *x = GNSSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNSSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNSSRealTime) ProtoMessage() {} func (x *GNSSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 GNSSRealTime.ProtoReflect.Descriptor instead. func (*GNSSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{6} } func (x *GNSSRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *GNSSRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *GNSSRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 索力监测 type VICRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 索力值 CableForce float32 `protobuf:"fixed32,1,opt,name=cableForce,proto3" json:"cableForce,omitempty"` // 基频 FundamentalFrequency *float32 `protobuf:"fixed32,2,opt,name=fundamentalFrequency,proto3,oneof" json:"fundamentalFrequency,omitempty"` } func (x *VICRealTime) Reset() { *x = VICRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VICRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VICRealTime) ProtoMessage() {} func (x *VICRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 mi.MessageOf(x) } // Deprecated: Use VICRealTime.ProtoReflect.Descriptor instead. func (*VICRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{7} } func (x *VICRealTime) GetCableForce() float32 { if x != nil { return x.CableForce } return 0 } func (x *VICRealTime) GetFundamentalFrequency() float32 { if x != nil && x.FundamentalFrequency != nil { return *x.FundamentalFrequency } return 0 } // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) type DISRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *DISRealTime) Reset() { *x = DISRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DISRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DISRealTime) ProtoMessage() {} func (x *DISRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DISRealTime.ProtoReflect.Descriptor instead. func (*DISRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{8} } func (x *DISRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } func (x *DISRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 裂缝 type CRKRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 裂缝宽度 CrackWidth float32 `protobuf:"fixed32,1,opt,name=crackWidth,proto3" json:"crackWidth,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CRKRealTime) Reset() { *x = CRKRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRKRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRKRealTime) ProtoMessage() {} func (x *CRKRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CRKRealTime.ProtoReflect.Descriptor instead. func (*CRKRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{9} } func (x *CRKRealTime) GetCrackWidth() float32 { if x != nil { return x.CrackWidth } return 0 } func (x *CRKRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 挠度监测 type HPTRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 挠度值 Deflection float32 `protobuf:"fixed32,1,opt,name=deflection,proto3" json:"deflection,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *HPTRealTime) Reset() { *x = HPTRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HPTRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*HPTRealTime) ProtoMessage() {} func (x *HPTRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 HPTRealTime.ProtoReflect.Descriptor instead. func (*HPTRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{10} } func (x *HPTRealTime) GetDeflection() float32 { if x != nil { return x.Deflection } return 0 } func (x *HPTRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 静应变监测 type RSGRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 应变值 Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *RSGRealTime) Reset() { *x = RSGRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RSGRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*RSGRealTime) ProtoMessage() {} func (x *RSGRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 RSGRealTime.ProtoReflect.Descriptor instead. func (*RSGRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{11} } func (x *RSGRealTime) GetStrain() float32 { if x != nil { return x.Strain } return 0 } func (x *RSGRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 梁端转角监测 type INCRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向X X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向Y Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 传感器有温度数据 Temperature []float32 `protobuf:"fixed32,3,rep,packed,name=temperature,proto3" json:"temperature,omitempty"` } func (x *INCRealTime) Reset() { *x = INCRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *INCRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*INCRealTime) ProtoMessage() {} func (x *INCRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 INCRealTime.ProtoReflect.Descriptor instead. func (*INCRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{12} } func (x *INCRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *INCRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *INCRealTime) GetTemperature() []float32 { if x != nil { return x.Temperature } return nil } // 动力特性指标 type VIBRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIBRealTime) Reset() { *x = VIBRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIBRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIBRealTime) ProtoMessage() {} func (x *VIBRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 VIBRealTime.ProtoReflect.Descriptor instead. func (*VIBRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{13} } func (x *VIBRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 地震指标 type VIERealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 多通道监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIERealTime) Reset() { *x = VIERealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIERealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIERealTime) ProtoMessage() {} func (x *VIERealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 VIERealTime.ProtoReflect.Descriptor instead. func (*VIERealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{14} } func (x *VIERealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // TMD指标 type TMDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // TMD监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *TMDRealTime) Reset() { *x = TMDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMDRealTime) ProtoMessage() {} func (x *TMDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 TMDRealTime.ProtoReflect.Descriptor instead. func (*TMDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{15} } func (x *TMDRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 车辆荷载指标 type HSDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // * // 车道号 // 1,2,3,4... LaneId int32 `protobuf:"varint,1,opt,name=laneId,proto3" json:"laneId,omitempty"` // * // 上下行 // 0:上行 // 1:下行 OperDirec int32 `protobuf:"varint,2,opt,name=operDirec,proto3" json:"operDirec,omitempty"` // * // 车型 // 0:两轴车型 // 1:三轴车型 // 2:四轴车型 // 3:五轴车型 // 4:六轴及以上车型 VehType int32 `protobuf:"varint,3,opt,name=vehType,proto3" json:"vehType,omitempty"` // 车速 Speed int32 `protobuf:"varint,4,opt,name=speed,proto3" json:"speed,omitempty"` // 轴数 AxleNum int32 `protobuf:"varint,5,opt,name=axleNum,proto3" json:"axleNum,omitempty"` // 车重 GrossLoad int32 `protobuf:"varint,6,opt,name=grossLoad,proto3" json:"grossLoad,omitempty"` // 轴重(轴1重,轴2重……) AxleWeight []int32 `protobuf:"varint,7,rep,packed,name=axleWeight,proto3" json:"axleWeight,omitempty"` // 车牌号 LicencePlate *string `protobuf:"bytes,8,opt,name=licencePlate,proto3,oneof" json:"licencePlate,omitempty"` // 车牌颜色 LicencePlateColor *string `protobuf:"bytes,9,opt,name=licencePlateColor,proto3,oneof" json:"licencePlateColor,omitempty"` } func (x *HSDRealTime) Reset() { *x = HSDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HSDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*HSDRealTime) ProtoMessage() {} func (x *HSDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 HSDRealTime.ProtoReflect.Descriptor instead. func (*HSDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{16} } func (x *HSDRealTime) GetLaneId() int32 { if x != nil { return x.LaneId } return 0 } func (x *HSDRealTime) GetOperDirec() int32 { if x != nil { return x.OperDirec } return 0 } func (x *HSDRealTime) GetVehType() int32 { if x != nil { return x.VehType } return 0 } func (x *HSDRealTime) GetSpeed() int32 { if x != nil { return x.Speed } return 0 } func (x *HSDRealTime) GetAxleNum() int32 { if x != nil { return x.AxleNum } return 0 } func (x *HSDRealTime) GetGrossLoad() int32 { if x != nil { return x.GrossLoad } return 0 } func (x *HSDRealTime) GetAxleWeight() []int32 { if x != nil { return x.AxleWeight } return nil } func (x *HSDRealTime) GetLicencePlate() string { if x != nil && x.LicencePlate != nil { return *x.LicencePlate } return "" } func (x *HSDRealTime) GetLicencePlateColor() string { if x != nil && x.LicencePlateColor != nil { return *x.LicencePlateColor } return "" } // 雨量指标 type PWSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 雨量 Rainfall float32 `protobuf:"fixed32,1,opt,name=rainfall,proto3" json:"rainfall,omitempty"` } func (x *PWSRealTime) Reset() { *x = PWSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PWSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*PWSRealTime) ProtoMessage() {} func (x *PWSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 PWSRealTime.ProtoReflect.Descriptor instead. func (*PWSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{17} } func (x *PWSRealTime) GetRainfall() float32 { if x != nil { return x.Rainfall } return 0 } // 结冰指标 type FRZRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 结冰厚度 IceThickness float32 `protobuf:"fixed32,1,opt,name=iceThickness,proto3" json:"iceThickness,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *FRZRealTime) Reset() { *x = FRZRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FRZRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*FRZRealTime) ProtoMessage() {} func (x *FRZRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 FRZRealTime.ProtoReflect.Descriptor instead. func (*FRZRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{18} } func (x *FRZRealTime) GetIceThickness() float32 { if x != nil { return x.IceThickness } return 0 } func (x *FRZRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 路面状况指标 type LMZRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 路面状况 RoadCondition float32 `protobuf:"fixed32,1,opt,name=roadCondition,proto3" json:"roadCondition,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *LMZRealTime) Reset() { *x = LMZRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LMZRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*LMZRealTime) ProtoMessage() {} func (x *LMZRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 LMZRealTime.ProtoReflect.Descriptor instead. func (*LMZRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{19} } func (x *LMZRealTime) GetRoadCondition() float32 { if x != nil { return x.RoadCondition } return 0 } func (x *LMZRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 直接法测索力指标 type DICRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 索力值 CableForce float32 `protobuf:"fixed32,1,opt,name=cableForce,proto3" json:"cableForce,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *DICRealTime) Reset() { *x = DICRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DICRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DICRealTime) ProtoMessage() {} func (x *DICRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DICRealTime.ProtoReflect.Descriptor instead. func (*DICRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{20} } func (x *DICRealTime) GetCableForce() float32 { if x != nil { return x.CableForce } return 0 } func (x *DICRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 支反力指标 type STFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 反力值 SupportAction float32 `protobuf:"fixed32,1,opt,name=supportAction,proto3" json:"supportAction,omitempty"` // 传感器温度数据 Temperature float32 `protobuf:"fixed32,2,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *STFRealTime) Reset() { *x = STFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*STFRealTime) ProtoMessage() {} func (x *STFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 STFRealTime.ProtoReflect.Descriptor instead. func (*STFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{21} } func (x *STFRealTime) GetSupportAction() float32 { if x != nil { return x.SupportAction } return 0 } func (x *STFRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 基础冲刷指标 type SCORealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 深度 Depth float32 `protobuf:"fixed32,1,opt,name=depth,proto3" json:"depth,omitempty"` } func (x *SCORealTime) Reset() { *x = SCORealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCORealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCORealTime) ProtoMessage() {} func (x *SCORealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 SCORealTime.ProtoReflect.Descriptor instead. func (*SCORealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{22} } func (x *SCORealTime) GetDepth() float32 { if x != nil { return x.Depth } return 0 } // 腐蚀指标 type CORRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 氯离子浓度 ChlorideConcentration float32 `protobuf:"fixed32,1,opt,name=chlorideConcentration,proto3" json:"chlorideConcentration,omitempty"` // 侵蚀深度 CorrosionDepth float32 `protobuf:"fixed32,2,opt,name=corrosionDepth,proto3" json:"corrosionDepth,omitempty"` } func (x *CORRealTime) Reset() { *x = CORRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CORRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CORRealTime) ProtoMessage() {} func (x *CORRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CORRealTime.ProtoReflect.Descriptor instead. func (*CORRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{23} } func (x *CORRealTime) GetChlorideConcentration() float32 { if x != nil { return x.ChlorideConcentration } return 0 } func (x *CORRealTime) GetCorrosionDepth() float32 { if x != nil { return x.CorrosionDepth } return 0 } // 振动法预应力指标 type VISRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 预应力 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VISRealTime) Reset() { *x = VISRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VISRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VISRealTime) ProtoMessage() {} func (x *VISRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 VISRealTime.ProtoReflect.Descriptor instead. func (*VISRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{24} } func (x *VISRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 预应力指标 type STRRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 预应力值 Stress float32 `protobuf:"fixed32,1,opt,name=stress,proto3" json:"stress,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *STRRealTime) Reset() { *x = STRRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STRRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*STRRealTime) ProtoMessage() {} func (x *STRRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 STRRealTime.ProtoReflect.Descriptor instead. func (*STRRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{25} } func (x *STRRealTime) GetStress() float32 { if x != nil { return x.Stress } return 0 } func (x *STRRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 断丝指标 type BRKRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 状态 State bool `protobuf:"varint,1,opt,name=state,proto3" json:"state,omitempty"` } func (x *BRKRealTime) Reset() { *x = BRKRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BRKRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*BRKRealTime) ProtoMessage() {} func (x *BRKRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 BRKRealTime.ProtoReflect.Descriptor instead. func (*BRKRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{26} } func (x *BRKRealTime) GetState() bool { if x != nil { return x.State } return false } // 螺栓紧固力指标 type BTFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 力值 BoltTightForce float32 `protobuf:"fixed32,1,opt,name=boltTightForce,proto3" json:"boltTightForce,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *BTFRealTime) Reset() { *x = BTFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BTFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*BTFRealTime) ProtoMessage() {} func (x *BTFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 BTFRealTime.ProtoReflect.Descriptor instead. func (*BTFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{27} } func (x *BTFRealTime) GetBoltTightForce() float32 { if x != nil { return x.BoltTightForce } return 0 } func (x *BTFRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 滑移指标 type CSPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CSPRealTime) Reset() { *x = CSPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPRealTime) ProtoMessage() {} func (x *CSPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CSPRealTime.ProtoReflect.Descriptor instead. func (*CSPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{28} } func (x *CSPRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } func (x *CSPRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 能见度指标 type VSBRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 能见度值 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *VSBRealTime) Reset() { *x = VSBRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VSBRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VSBRealTime) ProtoMessage() {} func (x *VSBRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 VSBRealTime.ProtoReflect.Descriptor instead. func (*VSBRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{29} } func (x *VSBRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 大气浓度指标 type ACNRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 大气浓度最大值 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *ACNRealTime) Reset() { *x = ACNRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ACNRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ACNRealTime) ProtoMessage() {} func (x *ACNRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 ACNRealTime.ProtoReflect.Descriptor instead. func (*ACNRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{30} } func (x *ACNRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 水位指标 type WLVRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 水位 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *WLVRealTime) Reset() { *x = WLVRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WLVRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*WLVRealTime) ProtoMessage() {} func (x *WLVRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 WLVRealTime.ProtoReflect.Descriptor instead. func (*WLVRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{31} } func (x *WLVRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 表面变形监测 type PLDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // X方向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // Y方向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // Z方向 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *PLDRealTime) Reset() { *x = PLDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PLDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*PLDRealTime) ProtoMessage() {} func (x *PLDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 PLDRealTime.ProtoReflect.Descriptor instead. func (*PLDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{32} } func (x *PLDRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *PLDRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *PLDRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 风压监测 type WDPRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 风压 Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` } func (x *WDPRealTime) Reset() { *x = WDPRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDPRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDPRealTime) ProtoMessage() {} func (x *WDPRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 WDPRealTime.ProtoReflect.Descriptor instead. func (*WDPRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{33} } func (x *WDPRealTime) GetValue() float32 { if x != nil { return x.Value } return 0 } // 位移(锚碇位移、拱脚位移、桥墩沉降) type ANDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横桥向位移值 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 纵桥向位移值 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 竖向位移值 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *ANDRealTime) Reset() { *x = ANDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ANDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*ANDRealTime) ProtoMessage() {} func (x *ANDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 ANDRealTime.ProtoReflect.Descriptor instead. func (*ANDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{34} } func (x *ANDRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *ANDRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *ANDRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 船舶撞击 type VIDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 多通道监测值 MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *VIDRealTime) Reset() { *x = VIDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIDRealTime) ProtoMessage() {} func (x *VIDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 VIDRealTime.ProtoReflect.Descriptor instead. func (*VIDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{35} } func (x *VIDRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 围岩温度 type WYWDRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 温度 Temperature float32 `protobuf:"fixed32,1,opt,name=temperature,proto3" json:"temperature,omitempty"` } func (x *WYWDRealTime) Reset() { *x = WYWDRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WYWDRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*WYWDRealTime) ProtoMessage() {} func (x *WYWDRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 WYWDRealTime.ProtoReflect.Descriptor instead. func (*WYWDRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{36} } func (x *WYWDRealTime) GetTemperature() float32 { if x != nil { return x.Temperature } return 0 } // 仰坡变形 type YPBXRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` } func (x *YPBXRealTime) Reset() { *x = YPBXRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YPBXRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*YPBXRealTime) ProtoMessage() {} func (x *YPBXRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 YPBXRealTime.ProtoReflect.Descriptor instead. func (*YPBXRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{37} } func (x *YPBXRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } // 拱顶沉降 type GDCJRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` } func (x *GDCJRealTime) Reset() { *x = GDCJRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GDCJRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*GDCJRealTime) ProtoMessage() {} func (x *GDCJRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 GDCJRealTime.ProtoReflect.Descriptor instead. func (*GDCJRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{38} } func (x *GDCJRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } // 拱腰收敛 type GYSLRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` } func (x *GYSLRealTime) Reset() { *x = GYSLRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GYSLRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*GYSLRealTime) ProtoMessage() {} func (x *GYSLRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 GYSLRealTime.ProtoReflect.Descriptor instead. func (*GYSLRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{39} } func (x *GYSLRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } // 轮廓变形 type LKBXRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 位移值 Displacement float32 `protobuf:"fixed32,1,opt,name=displacement,proto3" json:"displacement,omitempty"` } func (x *LKBXRealTime) Reset() { *x = LKBXRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LKBXRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*LKBXRealTime) ProtoMessage() {} func (x *LKBXRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 LKBXRealTime.ProtoReflect.Descriptor instead. func (*LKBXRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{40} } func (x *LKBXRealTime) GetDisplacement() float32 { if x != nil { return x.Displacement } return 0 } // 衬砌应力 type CQYLRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 应变值 Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CQYLRealTime) Reset() { *x = CQYLRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CQYLRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CQYLRealTime) ProtoMessage() {} func (x *CQYLRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CQYLRealTime.ProtoReflect.Descriptor instead. func (*CQYLRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{41} } func (x *CQYLRealTime) GetStrain() float32 { if x != nil { return x.Strain } return 0 } func (x *CQYLRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 混凝土结构应变 type CRSGRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 应变值 Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *CRSGRealTime) Reset() { *x = CRSGRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRSGRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRSGRealTime) ProtoMessage() {} func (x *CRSGRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CRSGRealTime.ProtoReflect.Descriptor instead. func (*CRSGRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{42} } func (x *CRSGRealTime) GetStrain() float32 { if x != nil { return x.Strain } return 0 } func (x *CRSGRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 钢结构应变 type SRSGRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 应变值 Strain float32 `protobuf:"fixed32,1,opt,name=strain,proto3" json:"strain,omitempty"` // 传感器温度数据 Temperature *float32 `protobuf:"fixed32,2,opt,name=temperature,proto3,oneof" json:"temperature,omitempty"` } func (x *SRSGRealTime) Reset() { *x = SRSGRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SRSGRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*SRSGRealTime) ProtoMessage() {} func (x *SRSGRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 SRSGRealTime.ProtoReflect.Descriptor instead. func (*SRSGRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{43} } func (x *SRSGRealTime) GetStrain() float32 { if x != nil { return x.Strain } return 0 } func (x *SRSGRealTime) GetTemperature() float32 { if x != nil && x.Temperature != nil { return *x.Temperature } return 0 } // 锚杆索力 type MGYLRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 力值 ForceValue float32 `protobuf:"fixed32,1,opt,name=forceValue,proto3" json:"forceValue,omitempty"` } func (x *MGYLRealTime) Reset() { *x = MGYLRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MGYLRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*MGYLRealTime) ProtoMessage() {} func (x *MGYLRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 MGYLRealTime.ProtoReflect.Descriptor instead. func (*MGYLRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{44} } func (x *MGYLRealTime) GetForceValue() float32 { if x != nil { return x.ForceValue } return 0 } // 仰坡落石 type YPLSRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields MonitorValues []float32 `protobuf:"fixed32,1,rep,packed,name=monitorValues,proto3" json:"monitorValues,omitempty"` } func (x *YPLSRealTime) Reset() { *x = YPLSRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YPLSRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*YPLSRealTime) ProtoMessage() {} func (x *YPLSRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 YPLSRealTime.ProtoReflect.Descriptor instead. func (*YPLSRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{45} } func (x *YPLSRealTime) GetMonitorValues() []float32 { if x != nil { return x.MonitorValues } return nil } // 地表位移 type DBWYRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横坡方向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 顺坡方向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` // 竖向 Z float32 `protobuf:"fixed32,3,opt,name=z,proto3" json:"z,omitempty"` } func (x *DBWYRealTime) Reset() { *x = DBWYRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DBWYRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DBWYRealTime) ProtoMessage() {} func (x *DBWYRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DBWYRealTime.ProtoReflect.Descriptor instead. func (*DBWYRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{46} } func (x *DBWYRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *DBWYRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } func (x *DBWYRealTime) GetZ() float32 { if x != nil { return x.Z } return 0 } // 深层位移 type SCWYRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横坡方向 X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 顺坡方向 Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` } func (x *SCWYRealTime) Reset() { *x = SCWYRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCWYRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCWYRealTime) ProtoMessage() {} func (x *SCWYRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 SCWYRealTime.ProtoReflect.Descriptor instead. func (*SCWYRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{47} } func (x *SCWYRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *SCWYRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } // 挡土墙倾斜 type DTQQXRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 横坡方向X X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` // 顺坡方向Y Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` } func (x *DTQQXRealTime) Reset() { *x = DTQQXRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DTQQXRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DTQQXRealTime) ProtoMessage() {} func (x *DTQQXRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DTQQXRealTime.ProtoReflect.Descriptor instead. func (*DTQQXRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{48} } func (x *DTQQXRealTime) GetX() float32 { if x != nil { return x.X } return 0 } func (x *DTQQXRealTime) GetY() float32 { if x != nil { return x.Y } return 0 } // 地表裂缝 type DBLFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 裂缝宽度(mm) CrackWidth float32 `protobuf:"fixed32,1,opt,name=crackWidth,proto3" json:"crackWidth,omitempty"` } func (x *DBLFRealTime) Reset() { *x = DBLFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DBLFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DBLFRealTime) ProtoMessage() {} func (x *DBLFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DBLFRealTime.ProtoReflect.Descriptor instead. func (*DBLFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{49} } func (x *DBLFRealTime) GetCrackWidth() float32 { if x != nil { return x.CrackWidth } return 0 } // 孔隙水压力 type KSYRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 压力(KPa) Pressure float32 `protobuf:"fixed32,1,opt,name=pressure,proto3" json:"pressure,omitempty"` } func (x *KSYRealTime) Reset() { *x = KSYRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KSYRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*KSYRealTime) ProtoMessage() {} func (x *KSYRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 KSYRealTime.ProtoReflect.Descriptor instead. func (*KSYRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{50} } func (x *KSYRealTime) GetPressure() float32 { if x != nil { return x.Pressure } return 0 } // 地下水位 type DXSWRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 水位高度(m) WaterLevel float32 `protobuf:"fixed32,1,opt,name=waterLevel,proto3" json:"waterLevel,omitempty"` } func (x *DXSWRealTime) Reset() { *x = DXSWRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DXSWRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*DXSWRealTime) ProtoMessage() {} func (x *DXSWRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 DXSWRealTime.ProtoReflect.Descriptor instead. func (*DXSWRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{51} } func (x *DXSWRealTime) GetWaterLevel() float32 { if x != nil { return x.WaterLevel } return 0 } // 衬砌裂缝 type CQLFRealTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 裂缝宽度(mm) CrackWidth float32 `protobuf:"fixed32,1,opt,name=crackWidth,proto3" json:"crackWidth,omitempty"` } func (x *CQLFRealTime) Reset() { *x = CQLFRealTime{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CQLFRealTime) String() string { return protoimpl.X.MessageStringOf(x) } func (*CQLFRealTime) ProtoMessage() {} func (x *CQLFRealTime) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 CQLFRealTime.ProtoReflect.Descriptor instead. func (*CQLFRealTime) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{52} } func (x *CQLFRealTime) GetCrackWidth() float32 { if x != nil { return x.CrackWidth } return 0 } // 特征值 type StatisticData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 监测类型 MonitorType MonitoryType `protobuf:"varint,1,opt,name=monitorType,proto3,enum=MonitorDataProtocol.MonitoryType" json:"monitorType,omitempty"` // 测点编码唯一编码 2位省份编码+4位桥梁序号+5位桥梁测点序号 测点必须先注册后才可以发送 MonitorCode int64 `protobuf:"varint,2,opt,name=monitorCode,proto3" json:"monitorCode,omitempty"` // 记录时间戳 EventTime int64 `protobuf:"varint,3,opt,name=eventTime,proto3" json:"eventTime,omitempty"` // 采样周期 Interval int32 `protobuf:"varint,100,opt,name=interval,proto3" json:"interval,omitempty"` // Types that are assignable to DataBody: // // *StatisticData_Uan // *StatisticData_Rhs // *StatisticData_Tmp // *StatisticData_Gnss // *StatisticData_Vic // *StatisticData_Dis // *StatisticData_Hpt // *StatisticData_Rsg // *StatisticData_Inc // *StatisticData_Vie // *StatisticData_Tmd // *StatisticData_Vib // *StatisticData_Hsd // *StatisticData_And // *StatisticData_Crk // *StatisticData_Frz // *StatisticData_Pws // *StatisticData_Vsb // *StatisticData_Acn // *StatisticData_Wlv // *StatisticData_Btf // *StatisticData_Csp // *StatisticData_Pld // *StatisticData_Vid // *StatisticData_Wdp // *StatisticData_Stf // *StatisticData_Sco // *StatisticData_Cor // *StatisticData_Str // *StatisticData_Wywd // *StatisticData_Ypbx // *StatisticData_Gdcj // *StatisticData_Gysl // *StatisticData_Lkbx // *StatisticData_Cqyl // *StatisticData_Crsg // *StatisticData_Srsg // *StatisticData_Mgyl // *StatisticData_Ypls // *StatisticData_Dbwy // *StatisticData_Scwy // *StatisticData_Dtqqx // *StatisticData_Dblf // *StatisticData_Ksy // *StatisticData_Cqlf // *StatisticData_Dxsw DataBody isStatisticData_DataBody `protobuf_oneof:"dataBody"` } func (x *StatisticData) Reset() { *x = StatisticData{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StatisticData) String() string { return protoimpl.X.MessageStringOf(x) } func (*StatisticData) ProtoMessage() {} func (x *StatisticData) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 StatisticData.ProtoReflect.Descriptor instead. func (*StatisticData) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{53} } func (x *StatisticData) GetMonitorType() MonitoryType { if x != nil { return x.MonitorType } return MonitoryType_UAN } func (x *StatisticData) GetMonitorCode() int64 { if x != nil { return x.MonitorCode } return 0 } func (x *StatisticData) GetEventTime() int64 { if x != nil { return x.EventTime } return 0 } func (x *StatisticData) GetInterval() int32 { if x != nil { return x.Interval } return 0 } func (m *StatisticData) GetDataBody() isStatisticData_DataBody { if m != nil { return m.DataBody } return nil } func (x *StatisticData) GetUan() *UANStatistic { if x, ok := x.GetDataBody().(*StatisticData_Uan); ok { return x.Uan } return nil } func (x *StatisticData) GetRhs() *RHSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Rhs); ok { return x.Rhs } return nil } func (x *StatisticData) GetTmp() *TMPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Tmp); ok { return x.Tmp } return nil } func (x *StatisticData) GetGnss() *GNSSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Gnss); ok { return x.Gnss } return nil } func (x *StatisticData) GetVic() *VICStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vic); ok { return x.Vic } return nil } func (x *StatisticData) GetDis() *DISStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dis); ok { return x.Dis } return nil } func (x *StatisticData) GetHpt() *HPTStatistic { if x, ok := x.GetDataBody().(*StatisticData_Hpt); ok { return x.Hpt } return nil } func (x *StatisticData) GetRsg() *RSGStatistic { if x, ok := x.GetDataBody().(*StatisticData_Rsg); ok { return x.Rsg } return nil } func (x *StatisticData) GetInc() *INCStatistic { if x, ok := x.GetDataBody().(*StatisticData_Inc); ok { return x.Inc } return nil } func (x *StatisticData) GetVie() *VIEStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vie); ok { return x.Vie } return nil } func (x *StatisticData) GetTmd() *TMDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Tmd); ok { return x.Tmd } return nil } func (x *StatisticData) GetVib() *VIBStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vib); ok { return x.Vib } return nil } func (x *StatisticData) GetHsd() *HSDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Hsd); ok { return x.Hsd } return nil } func (x *StatisticData) GetAnd() *ANDStatistic { if x, ok := x.GetDataBody().(*StatisticData_And); ok { return x.And } return nil } func (x *StatisticData) GetCrk() *CRKStatistic { if x, ok := x.GetDataBody().(*StatisticData_Crk); ok { return x.Crk } return nil } func (x *StatisticData) GetFrz() *FRZStatistic { if x, ok := x.GetDataBody().(*StatisticData_Frz); ok { return x.Frz } return nil } func (x *StatisticData) GetPws() *PWSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Pws); ok { return x.Pws } return nil } func (x *StatisticData) GetVsb() *VSBStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vsb); ok { return x.Vsb } return nil } func (x *StatisticData) GetAcn() *ACNStatistic { if x, ok := x.GetDataBody().(*StatisticData_Acn); ok { return x.Acn } return nil } func (x *StatisticData) GetWlv() *WLVStatistic { if x, ok := x.GetDataBody().(*StatisticData_Wlv); ok { return x.Wlv } return nil } func (x *StatisticData) GetBtf() *BTFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Btf); ok { return x.Btf } return nil } func (x *StatisticData) GetCsp() *CSPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Csp); ok { return x.Csp } return nil } func (x *StatisticData) GetPld() *PLDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Pld); ok { return x.Pld } return nil } func (x *StatisticData) GetVid() *VIDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Vid); ok { return x.Vid } return nil } func (x *StatisticData) GetWdp() *WDPStatistic { if x, ok := x.GetDataBody().(*StatisticData_Wdp); ok { return x.Wdp } return nil } func (x *StatisticData) GetStf() *STFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Stf); ok { return x.Stf } return nil } func (x *StatisticData) GetSco() *SCOStatistic { if x, ok := x.GetDataBody().(*StatisticData_Sco); ok { return x.Sco } return nil } func (x *StatisticData) GetCor() *CORStatistic { if x, ok := x.GetDataBody().(*StatisticData_Cor); ok { return x.Cor } return nil } func (x *StatisticData) GetStr() *STRStatistic { if x, ok := x.GetDataBody().(*StatisticData_Str); ok { return x.Str } return nil } func (x *StatisticData) GetWywd() *WYWDStatistic { if x, ok := x.GetDataBody().(*StatisticData_Wywd); ok { return x.Wywd } return nil } func (x *StatisticData) GetYpbx() *YPBXStatistic { if x, ok := x.GetDataBody().(*StatisticData_Ypbx); ok { return x.Ypbx } return nil } func (x *StatisticData) GetGdcj() *GDCJStatistic { if x, ok := x.GetDataBody().(*StatisticData_Gdcj); ok { return x.Gdcj } return nil } func (x *StatisticData) GetGysl() *GYSLStatistic { if x, ok := x.GetDataBody().(*StatisticData_Gysl); ok { return x.Gysl } return nil } func (x *StatisticData) GetLkbx() *LKBXStatistic { if x, ok := x.GetDataBody().(*StatisticData_Lkbx); ok { return x.Lkbx } return nil } func (x *StatisticData) GetCqyl() *CQYLStatistic { if x, ok := x.GetDataBody().(*StatisticData_Cqyl); ok { return x.Cqyl } return nil } func (x *StatisticData) GetCrsg() *CRSGStatistic { if x, ok := x.GetDataBody().(*StatisticData_Crsg); ok { return x.Crsg } return nil } func (x *StatisticData) GetSrsg() *SRSGStatistic { if x, ok := x.GetDataBody().(*StatisticData_Srsg); ok { return x.Srsg } return nil } func (x *StatisticData) GetMgyl() *MGYLStatistic { if x, ok := x.GetDataBody().(*StatisticData_Mgyl); ok { return x.Mgyl } return nil } func (x *StatisticData) GetYpls() *YPLSStatistic { if x, ok := x.GetDataBody().(*StatisticData_Ypls); ok { return x.Ypls } return nil } func (x *StatisticData) GetDbwy() *DBWYStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dbwy); ok { return x.Dbwy } return nil } func (x *StatisticData) GetScwy() *SCWYStatistic { if x, ok := x.GetDataBody().(*StatisticData_Scwy); ok { return x.Scwy } return nil } func (x *StatisticData) GetDtqqx() *DTQQXStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dtqqx); ok { return x.Dtqqx } return nil } func (x *StatisticData) GetDblf() *DBLFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dblf); ok { return x.Dblf } return nil } func (x *StatisticData) GetKsy() *KSYStatistic { if x, ok := x.GetDataBody().(*StatisticData_Ksy); ok { return x.Ksy } return nil } func (x *StatisticData) GetCqlf() *CQLFStatistic { if x, ok := x.GetDataBody().(*StatisticData_Cqlf); ok { return x.Cqlf } return nil } func (x *StatisticData) GetDxsw() *DXSWStatistic { if x, ok := x.GetDataBody().(*StatisticData_Dxsw); ok { return x.Dxsw } return nil } type isStatisticData_DataBody interface { isStatisticData_DataBody() } type StatisticData_Uan struct { // 风速风向 Uan *UANStatistic `protobuf:"bytes,4,opt,name=uan,proto3,oneof"` } type StatisticData_Rhs struct { // 温湿度 Rhs *RHSStatistic `protobuf:"bytes,5,opt,name=rhs,proto3,oneof"` } type StatisticData_Tmp struct { // 结构温度 Tmp *TMPStatistic `protobuf:"bytes,6,opt,name=tmp,proto3,oneof"` } type StatisticData_Gnss struct { // 空间变形 Gnss *GNSSStatistic `protobuf:"bytes,7,opt,name=gnss,proto3,oneof"` } type StatisticData_Vic struct { // 索力 Vic *VICStatistic `protobuf:"bytes,8,opt,name=vic,proto3,oneof"` } type StatisticData_Dis struct { // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) Dis *DISStatistic `protobuf:"bytes,9,opt,name=dis,proto3,oneof"` } type StatisticData_Hpt struct { // 挠度 Hpt *HPTStatistic `protobuf:"bytes,10,opt,name=hpt,proto3,oneof"` } type StatisticData_Rsg struct { // 应变 Rsg *RSGStatistic `protobuf:"bytes,11,opt,name=rsg,proto3,oneof"` } type StatisticData_Inc struct { // 转角 Inc *INCStatistic `protobuf:"bytes,12,opt,name=inc,proto3,oneof"` } type StatisticData_Vie struct { // 地震 Vie *VIEStatistic `protobuf:"bytes,13,opt,name=vie,proto3,oneof"` } type StatisticData_Tmd struct { // TMD Tmd *TMDStatistic `protobuf:"bytes,14,opt,name=tmd,proto3,oneof"` } type StatisticData_Vib struct { // 动力特性 Vib *VIBStatistic `protobuf:"bytes,15,opt,name=vib,proto3,oneof"` } type StatisticData_Hsd struct { // 车辆荷载 Hsd *HSDStatistic `protobuf:"bytes,16,opt,name=hsd,proto3,oneof"` } type StatisticData_And struct { // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 And *ANDStatistic `protobuf:"bytes,17,opt,name=and,proto3,oneof"` } type StatisticData_Crk struct { // 裂缝 Crk *CRKStatistic `protobuf:"bytes,18,opt,name=crk,proto3,oneof"` } type StatisticData_Frz struct { // 结冰 Frz *FRZStatistic `protobuf:"bytes,19,opt,name=frz,proto3,oneof"` } type StatisticData_Pws struct { // 降雨量 Pws *PWSStatistic `protobuf:"bytes,20,opt,name=pws,proto3,oneof"` } type StatisticData_Vsb struct { // 能见度 Vsb *VSBStatistic `protobuf:"bytes,21,opt,name=vsb,proto3,oneof"` } type StatisticData_Acn struct { // 大气浓度 Acn *ACNStatistic `protobuf:"bytes,22,opt,name=acn,proto3,oneof"` } type StatisticData_Wlv struct { // 水位 Wlv *WLVStatistic `protobuf:"bytes,23,opt,name=wlv,proto3,oneof"` } type StatisticData_Btf struct { // 螺杆状态 Btf *BTFStatistic `protobuf:"bytes,24,opt,name=btf,proto3,oneof"` } type StatisticData_Csp struct { // 滑移 Csp *CSPStatistic `protobuf:"bytes,25,opt,name=csp,proto3,oneof"` } type StatisticData_Pld struct { // 表面变形 Pld *PLDStatistic `protobuf:"bytes,26,opt,name=pld,proto3,oneof"` } type StatisticData_Vid struct { // 船舶撞击 Vid *VIDStatistic `protobuf:"bytes,27,opt,name=vid,proto3,oneof"` } type StatisticData_Wdp struct { // 风压 Wdp *WDPStatistic `protobuf:"bytes,28,opt,name=wdp,proto3,oneof"` } type StatisticData_Stf struct { // 支反力 Stf *STFStatistic `protobuf:"bytes,29,opt,name=stf,proto3,oneof"` } type StatisticData_Sco struct { // 基础冲刷 Sco *SCOStatistic `protobuf:"bytes,30,opt,name=sco,proto3,oneof"` } type StatisticData_Cor struct { // 腐蚀 Cor *CORStatistic `protobuf:"bytes,31,opt,name=cor,proto3,oneof"` } type StatisticData_Str struct { // 直接法预应力 Str *STRStatistic `protobuf:"bytes,32,opt,name=str,proto3,oneof"` } type StatisticData_Wywd struct { // 围岩温度 Wywd *WYWDStatistic `protobuf:"bytes,33,opt,name=wywd,proto3,oneof"` } type StatisticData_Ypbx struct { // 仰坡变形 Ypbx *YPBXStatistic `protobuf:"bytes,34,opt,name=ypbx,proto3,oneof"` } type StatisticData_Gdcj struct { // 拱顶沉降 Gdcj *GDCJStatistic `protobuf:"bytes,35,opt,name=gdcj,proto3,oneof"` } type StatisticData_Gysl struct { // 拱腰收敛 Gysl *GYSLStatistic `protobuf:"bytes,36,opt,name=gysl,proto3,oneof"` } type StatisticData_Lkbx struct { // 轮廓变形 Lkbx *LKBXStatistic `protobuf:"bytes,37,opt,name=lkbx,proto3,oneof"` } type StatisticData_Cqyl struct { // 衬砌应力 Cqyl *CQYLStatistic `protobuf:"bytes,38,opt,name=cqyl,proto3,oneof"` } type StatisticData_Crsg struct { // 混凝土结构应变 Crsg *CRSGStatistic `protobuf:"bytes,39,opt,name=crsg,proto3,oneof"` } type StatisticData_Srsg struct { // 钢结构应变 Srsg *SRSGStatistic `protobuf:"bytes,40,opt,name=srsg,proto3,oneof"` } type StatisticData_Mgyl struct { // 锚杆索力 Mgyl *MGYLStatistic `protobuf:"bytes,41,opt,name=mgyl,proto3,oneof"` } type StatisticData_Ypls struct { // 仰坡落石 Ypls *YPLSStatistic `protobuf:"bytes,42,opt,name=ypls,proto3,oneof"` } type StatisticData_Dbwy struct { // 地表位移 Dbwy *DBWYStatistic `protobuf:"bytes,43,opt,name=dbwy,proto3,oneof"` } type StatisticData_Scwy struct { // 深层位移 Scwy *SCWYStatistic `protobuf:"bytes,44,opt,name=scwy,proto3,oneof"` } type StatisticData_Dtqqx struct { // 挡土墙倾斜 Dtqqx *DTQQXStatistic `protobuf:"bytes,45,opt,name=dtqqx,proto3,oneof"` } type StatisticData_Dblf struct { // 地表裂缝 Dblf *DBLFStatistic `protobuf:"bytes,46,opt,name=dblf,proto3,oneof"` } type StatisticData_Ksy struct { // 孔隙水压力 Ksy *KSYStatistic `protobuf:"bytes,47,opt,name=ksy,proto3,oneof"` } type StatisticData_Cqlf struct { // 衬砌应力 Cqlf *CQLFStatistic `protobuf:"bytes,48,opt,name=cqlf,proto3,oneof"` } type StatisticData_Dxsw struct { // 地下水位 Dxsw *DXSWStatistic `protobuf:"bytes,49,opt,name=dxsw,proto3,oneof"` } func (*StatisticData_Uan) isStatisticData_DataBody() {} func (*StatisticData_Rhs) isStatisticData_DataBody() {} func (*StatisticData_Tmp) isStatisticData_DataBody() {} func (*StatisticData_Gnss) isStatisticData_DataBody() {} func (*StatisticData_Vic) isStatisticData_DataBody() {} func (*StatisticData_Dis) isStatisticData_DataBody() {} func (*StatisticData_Hpt) isStatisticData_DataBody() {} func (*StatisticData_Rsg) isStatisticData_DataBody() {} func (*StatisticData_Inc) isStatisticData_DataBody() {} func (*StatisticData_Vie) isStatisticData_DataBody() {} func (*StatisticData_Tmd) isStatisticData_DataBody() {} func (*StatisticData_Vib) isStatisticData_DataBody() {} func (*StatisticData_Hsd) isStatisticData_DataBody() {} func (*StatisticData_And) isStatisticData_DataBody() {} func (*StatisticData_Crk) isStatisticData_DataBody() {} func (*StatisticData_Frz) isStatisticData_DataBody() {} func (*StatisticData_Pws) isStatisticData_DataBody() {} func (*StatisticData_Vsb) isStatisticData_DataBody() {} func (*StatisticData_Acn) isStatisticData_DataBody() {} func (*StatisticData_Wlv) isStatisticData_DataBody() {} func (*StatisticData_Btf) isStatisticData_DataBody() {} func (*StatisticData_Csp) isStatisticData_DataBody() {} func (*StatisticData_Pld) isStatisticData_DataBody() {} func (*StatisticData_Vid) isStatisticData_DataBody() {} func (*StatisticData_Wdp) isStatisticData_DataBody() {} func (*StatisticData_Stf) isStatisticData_DataBody() {} func (*StatisticData_Sco) isStatisticData_DataBody() {} func (*StatisticData_Cor) isStatisticData_DataBody() {} func (*StatisticData_Str) isStatisticData_DataBody() {} func (*StatisticData_Wywd) isStatisticData_DataBody() {} func (*StatisticData_Ypbx) isStatisticData_DataBody() {} func (*StatisticData_Gdcj) isStatisticData_DataBody() {} func (*StatisticData_Gysl) isStatisticData_DataBody() {} func (*StatisticData_Lkbx) isStatisticData_DataBody() {} func (*StatisticData_Cqyl) isStatisticData_DataBody() {} func (*StatisticData_Crsg) isStatisticData_DataBody() {} func (*StatisticData_Srsg) isStatisticData_DataBody() {} func (*StatisticData_Mgyl) isStatisticData_DataBody() {} func (*StatisticData_Ypls) isStatisticData_DataBody() {} func (*StatisticData_Dbwy) isStatisticData_DataBody() {} func (*StatisticData_Scwy) isStatisticData_DataBody() {} func (*StatisticData_Dtqqx) isStatisticData_DataBody() {} func (*StatisticData_Dblf) isStatisticData_DataBody() {} func (*StatisticData_Ksy) isStatisticData_DataBody() {} func (*StatisticData_Cqlf) isStatisticData_DataBody() {} func (*StatisticData_Dxsw) isStatisticData_DataBody() {} // 风速风向监测特征值 周期 10min type UANStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的风速平均值 AvgVelocity float32 `protobuf:"fixed32,1,opt,name=avgVelocity,proto3" json:"avgVelocity,omitempty"` // 统计时间范围内的风向平均值 AvgDirection float32 `protobuf:"fixed32,2,opt,name=avgDirection,proto3" json:"avgDirection,omitempty"` // 统计时间范围内的风攻角平均值 AvgAttackAngle *float32 `protobuf:"fixed32,3,opt,name=avgAttackAngle,proto3,oneof" json:"avgAttackAngle,omitempty"` } func (x *UANStatistic) Reset() { *x = UANStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UANStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*UANStatistic) ProtoMessage() {} func (x *UANStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 UANStatistic.ProtoReflect.Descriptor instead. func (*UANStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{54} } func (x *UANStatistic) GetAvgVelocity() float32 { if x != nil { return x.AvgVelocity } return 0 } func (x *UANStatistic) GetAvgDirection() float32 { if x != nil { return x.AvgDirection } return 0 } func (x *UANStatistic) GetAvgAttackAngle() float32 { if x != nil && x.AvgAttackAngle != nil { return *x.AvgAttackAngle } return 0 } // 温湿度监测特征值 周期 1h type RHSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的温度最大值 MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` // 统计时间范围内的温度最小值 MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` // 统计时间范围内的温差值 MaxTemperatureDifference float32 `protobuf:"fixed32,4,opt,name=maxTemperatureDifference,proto3" json:"maxTemperatureDifference,omitempty"` // 统计时间范围内的湿度最大值 MaxHumidity float32 `protobuf:"fixed32,5,opt,name=maxHumidity,proto3" json:"maxHumidity,omitempty"` // 统计时间范围内的湿度最小值 MinHumidity float32 `protobuf:"fixed32,6,opt,name=minHumidity,proto3" json:"minHumidity,omitempty"` // 统计时间范围内的湿度平均值 AvgHumidity float32 `protobuf:"fixed32,7,opt,name=avgHumidity,proto3" json:"avgHumidity,omitempty"` // 湿度超限持续时间,分钟 HumidityExceedDuration int32 `protobuf:"varint,8,opt,name=humidityExceedDuration,proto3" json:"humidityExceedDuration,omitempty"` } func (x *RHSStatistic) Reset() { *x = RHSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RHSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*RHSStatistic) ProtoMessage() {} func (x *RHSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[55] 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 RHSStatistic.ProtoReflect.Descriptor instead. func (*RHSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{55} } func (x *RHSStatistic) GetMaxTemperature() float32 { if x != nil { return x.MaxTemperature } return 0 } func (x *RHSStatistic) GetMinTemperature() float32 { if x != nil { return x.MinTemperature } return 0 } func (x *RHSStatistic) GetAvgTemperature() float32 { if x != nil { return x.AvgTemperature } return 0 } func (x *RHSStatistic) GetMaxTemperatureDifference() float32 { if x != nil { return x.MaxTemperatureDifference } return 0 } func (x *RHSStatistic) GetMaxHumidity() float32 { if x != nil { return x.MaxHumidity } return 0 } func (x *RHSStatistic) GetMinHumidity() float32 { if x != nil { return x.MinHumidity } return 0 } func (x *RHSStatistic) GetAvgHumidity() float32 { if x != nil { return x.AvgHumidity } return 0 } func (x *RHSStatistic) GetHumidityExceedDuration() int32 { if x != nil { return x.HumidityExceedDuration } return 0 } // 温度监测特征值 周期 1h type TMPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的温度最大值 MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` // 统计时间范围内的温度最小值 MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` // 统计时间范围内的温差值 MaxDifference float32 `protobuf:"fixed32,4,opt,name=maxDifference,proto3" json:"maxDifference,omitempty"` } func (x *TMPStatistic) Reset() { *x = TMPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMPStatistic) ProtoMessage() {} func (x *TMPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 TMPStatistic.ProtoReflect.Descriptor instead. func (*TMPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{56} } func (x *TMPStatistic) GetMaxTemperature() float32 { if x != nil { return x.MaxTemperature } return 0 } func (x *TMPStatistic) GetMinTemperature() float32 { if x != nil { return x.MinTemperature } return 0 } func (x *TMPStatistic) GetAvgTemperature() float32 { if x != nil { return x.AvgTemperature } return 0 } func (x *TMPStatistic) GetMaxDifference() float32 { if x != nil { return x.MaxDifference } return 0 } // 结构空间变形监测特征值 周期: 1h type GNSSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *GNSSStatistic) Reset() { *x = GNSSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GNSSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*GNSSStatistic) ProtoMessage() {} func (x *GNSSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GNSSStatistic.ProtoReflect.Descriptor instead. func (*GNSSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{57} } func (x *GNSSStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *GNSSStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *GNSSStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *GNSSStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *GNSSStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *GNSSStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *GNSSStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *GNSSStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *GNSSStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 位移(锚定位移、拱脚位移、桥墩沉降)监测特征值数据表 周期 24h type ANDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *ANDStatistic) Reset() { *x = ANDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ANDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*ANDStatistic) ProtoMessage() {} func (x *ANDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_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 ANDStatistic.ProtoReflect.Descriptor instead. func (*ANDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{58} } func (x *ANDStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *ANDStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *ANDStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *ANDStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *ANDStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *ANDStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *ANDStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *ANDStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *ANDStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 位移(支座位移、梁端纵向位移、高墩墩顶位移、拱顶位移、主梁横向位移) 周期 1h type DISStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *DISStatistic) Reset() { *x = DISStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DISStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DISStatistic) ProtoMessage() {} func (x *DISStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[59] 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 DISStatistic.ProtoReflect.Descriptor instead. func (*DISStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{59} } func (x *DISStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *DISStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *DISStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *DISStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 挠度监测特征值 周期 1h type HPTStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *HPTStatistic) Reset() { *x = HPTStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HPTStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*HPTStatistic) ProtoMessage() {} func (x *HPTStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[60] 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 HPTStatistic.ProtoReflect.Descriptor instead. func (*HPTStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{60} } func (x *HPTStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *HPTStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *HPTStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 转角监测特征值 周期 1h type INCStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内横桥向的绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内横桥向的转角平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内横桥向的转角均方根值 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内纵桥向的绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内纵桥向的转角平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内纵桥向的转角均方根值 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` } func (x *INCStatistic) Reset() { *x = INCStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *INCStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*INCStatistic) ProtoMessage() {} func (x *INCStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[61] 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 INCStatistic.ProtoReflect.Descriptor instead. func (*INCStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{61} } func (x *INCStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *INCStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *INCStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *INCStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *INCStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *INCStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } // 应变监测特征值 周期 1h type RSGStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的应变/应力绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的应变/应力平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` } func (x *RSGStatistic) Reset() { *x = RSGStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RSGStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*RSGStatistic) ProtoMessage() {} func (x *RSGStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[62] 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 RSGStatistic.ProtoReflect.Descriptor instead. func (*RSGStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{62} } func (x *RSGStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *RSGStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *RSGStatistic) GetAvgTemperature() float32 { if x != nil && x.AvgTemperature != nil { return *x.AvgTemperature } return 0 } // 索力监测特征值 周期 1h type VICStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的索力最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的索力最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的索力平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的索力均方根值 RootMeanSquare float32 `protobuf:"fixed32,4,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VICStatistic) Reset() { *x = VICStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VICStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VICStatistic) ProtoMessage() {} func (x *VICStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[63] 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 VICStatistic.ProtoReflect.Descriptor instead. func (*VICStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{63} } func (x *VICStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *VICStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *VICStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *VICStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 动力特性监测特征值 振动(主梁、索塔、拱圈) 周期 10min type VIBStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIBStatistic) Reset() { *x = VIBStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIBStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIBStatistic) ProtoMessage() {} func (x *VIBStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[64] 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 VIBStatistic.ProtoReflect.Descriptor instead. func (*VIBStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{64} } func (x *VIBStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIBStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 地震船撞特性监测特征值 周期 10min type VIEStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIEStatistic) Reset() { *x = VIEStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIEStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIEStatistic) ProtoMessage() {} func (x *VIEStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[65] 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 VIEStatistic.ProtoReflect.Descriptor instead. func (*VIEStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{65} } func (x *VIEStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIEStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } type VIDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *VIDStatistic) Reset() { *x = VIDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VIDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VIDStatistic) ProtoMessage() {} func (x *VIDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[66] 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 VIDStatistic.ProtoReflect.Descriptor instead. func (*VIDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{66} } func (x *VIDStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *VIDStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // TMD监测特征值 周期 10min type TMDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *TMDStatistic) Reset() { *x = TMDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TMDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*TMDStatistic) ProtoMessage() {} func (x *TMDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[67] 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 TMDStatistic.ProtoReflect.Descriptor instead. func (*TMDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{67} } func (x *TMDStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *TMDStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 车辆载荷监测特征值-动态称重 周期 1h type HSDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的车流量 TrafficFlow int32 `protobuf:"varint,1,opt,name=trafficFlow,proto3" json:"trafficFlow,omitempty"` // 统计时间范围内的最大车重 MaxTotalLoad int32 `protobuf:"varint,2,opt,name=maxTotalLoad,proto3" json:"maxTotalLoad,omitempty"` // 统计时间范围内的最大轴重 MaxAxleLoad int32 `protobuf:"varint,3,opt,name=maxAxleLoad,proto3" json:"maxAxleLoad,omitempty"` // 统计时间范围内的超载车数量 OverLoadCount int32 `protobuf:"varint,4,opt,name=overLoadCount,proto3" json:"overLoadCount,omitempty"` // 统计时间范围内的平均车重(kg) AvgLoad float32 `protobuf:"fixed32,5,opt,name=avgLoad,proto3" json:"avgLoad,omitempty"` } func (x *HSDStatistic) Reset() { *x = HSDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HSDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*HSDStatistic) ProtoMessage() {} func (x *HSDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[68] 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 HSDStatistic.ProtoReflect.Descriptor instead. func (*HSDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{68} } func (x *HSDStatistic) GetTrafficFlow() int32 { if x != nil { return x.TrafficFlow } return 0 } func (x *HSDStatistic) GetMaxTotalLoad() int32 { if x != nil { return x.MaxTotalLoad } return 0 } func (x *HSDStatistic) GetMaxAxleLoad() int32 { if x != nil { return x.MaxAxleLoad } return 0 } func (x *HSDStatistic) GetOverLoadCount() int32 { if x != nil { return x.OverLoadCount } return 0 } func (x *HSDStatistic) GetAvgLoad() float32 { if x != nil { return x.AvgLoad } return 0 } // 裂缝监测特征值 位移 周期 1h type CRKStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *CRKStatistic) Reset() { *x = CRKStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRKStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRKStatistic) ProtoMessage() {} func (x *CRKStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[69] 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 CRKStatistic.ProtoReflect.Descriptor instead. func (*CRKStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{69} } func (x *CRKStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CRKStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CRKStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *CRKStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 结冰 周期 1h type FRZStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的结冰最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的结冰最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的结冰平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *FRZStatistic) Reset() { *x = FRZStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FRZStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*FRZStatistic) ProtoMessage() {} func (x *FRZStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[70] 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 FRZStatistic.ProtoReflect.Descriptor instead. func (*FRZStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{70} } func (x *FRZStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *FRZStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *FRZStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 降雨量 周期 10min type PWSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的降雨量平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *PWSStatistic) Reset() { *x = PWSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PWSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*PWSStatistic) ProtoMessage() {} func (x *PWSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[71] 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 PWSStatistic.ProtoReflect.Descriptor instead. func (*PWSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{71} } func (x *PWSStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 能见度 周期 10min type VSBStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的能见度值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *VSBStatistic) Reset() { *x = VSBStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *VSBStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*VSBStatistic) ProtoMessage() {} func (x *VSBStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[72] 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 VSBStatistic.ProtoReflect.Descriptor instead. func (*VSBStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{72} } func (x *VSBStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 大气浓度 周期 1h type ACNStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的大气浓度最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的大气浓度最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的大气浓度平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *ACNStatistic) Reset() { *x = ACNStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ACNStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*ACNStatistic) ProtoMessage() {} func (x *ACNStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[73] 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 ACNStatistic.ProtoReflect.Descriptor instead. func (*ACNStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{73} } func (x *ACNStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *ACNStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *ACNStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 水位 周期 1h type WLVStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的水位最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的水位最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的水位平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *WLVStatistic) Reset() { *x = WLVStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WLVStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*WLVStatistic) ProtoMessage() {} func (x *WLVStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[74] 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 WLVStatistic.ProtoReflect.Descriptor instead. func (*WLVStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{74} } func (x *WLVStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *WLVStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *WLVStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 螺杆状态 周期 1h type BTFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的螺杆状态平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的螺杆状态绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的螺杆状态均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *BTFStatistic) Reset() { *x = BTFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BTFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*BTFStatistic) ProtoMessage() {} func (x *BTFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[75] 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 BTFStatistic.ProtoReflect.Descriptor instead. func (*BTFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{75} } func (x *BTFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *BTFStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *BTFStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 滑移 周期 1h type CSPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的索夹滑移平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的索夹滑移绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,2,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的索夹滑移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *CSPStatistic) Reset() { *x = CSPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CSPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CSPStatistic) ProtoMessage() {} func (x *CSPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[76] 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 CSPStatistic.ProtoReflect.Descriptor instead. func (*CSPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{76} } func (x *CSPStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CSPStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CSPStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 表面变形监测特征值 周期: 1h type PLDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的空间变形X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的空间变形X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的空间变形X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的空间变形Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的空间变形Y平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的空间变形Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的空间变形Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,7,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的空间变形Z平均值 AvgValueZ float32 `protobuf:"fixed32,8,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的空间变形Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,9,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` } func (x *PLDStatistic) Reset() { *x = PLDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PLDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*PLDStatistic) ProtoMessage() {} func (x *PLDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[77] 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 PLDStatistic.ProtoReflect.Descriptor instead. func (*PLDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{77} } func (x *PLDStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *PLDStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *PLDStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *PLDStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *PLDStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *PLDStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *PLDStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *PLDStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *PLDStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } // 风压监测特征值 周期: 10分钟 type WDPStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的风压平均值 AvgValue float32 `protobuf:"fixed32,1,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的风压均方根 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *WDPStatistic) Reset() { *x = WDPStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WDPStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*WDPStatistic) ProtoMessage() {} func (x *WDPStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[78] 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 WDPStatistic.ProtoReflect.Descriptor instead. func (*WDPStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{78} } func (x *WDPStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *WDPStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 支反力监测特征值 周期: 1小时 type STFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的支反力最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的支反力最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的支反力平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *STFStatistic) Reset() { *x = STFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*STFStatistic) ProtoMessage() {} func (x *STFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[79] 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 STFStatistic.ProtoReflect.Descriptor instead. func (*STFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{79} } func (x *STFStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *STFStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *STFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 基础冲刷监测特征值 周期: 1小时 type SCOStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的冲刷深度最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的冲刷范围 ScourRange float32 `protobuf:"fixed32,2,opt,name=scourRange,proto3" json:"scourRange,omitempty"` } func (x *SCOStatistic) Reset() { *x = SCOStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCOStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCOStatistic) ProtoMessage() {} func (x *SCOStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[80] 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 SCOStatistic.ProtoReflect.Descriptor instead. func (*SCOStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{80} } func (x *SCOStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *SCOStatistic) GetScourRange() float32 { if x != nil { return x.ScourRange } return 0 } // 腐蚀监测特征值 周期: 24小时 type CORStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 氯离子浓度最大值 ChlorideConcentrationMaxValue float32 `protobuf:"fixed32,1,opt,name=chlorideConcentrationMaxValue,proto3" json:"chlorideConcentrationMaxValue,omitempty"` // 氯离子浓度最小值 ChlorideConcentrationMinValue float32 `protobuf:"fixed32,2,opt,name=chlorideConcentrationMinValue,proto3" json:"chlorideConcentrationMinValue,omitempty"` // 氯离子浓度平均值 ChlorideConcentrationAvgValue float32 `protobuf:"fixed32,3,opt,name=chlorideConcentrationAvgValue,proto3" json:"chlorideConcentrationAvgValue,omitempty"` // 侵蚀深度最大值 CorrosionDepthMaxValue float32 `protobuf:"fixed32,4,opt,name=corrosionDepthMaxValue,proto3" json:"corrosionDepthMaxValue,omitempty"` // 侵蚀深度最小值 CorrosionDepthMinValue float32 `protobuf:"fixed32,5,opt,name=corrosionDepthMinValue,proto3" json:"corrosionDepthMinValue,omitempty"` // 侵蚀深度平均值 CorrosionDepthAvgValue float32 `protobuf:"fixed32,6,opt,name=corrosionDepthAvgValue,proto3" json:"corrosionDepthAvgValue,omitempty"` } func (x *CORStatistic) Reset() { *x = CORStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CORStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CORStatistic) ProtoMessage() {} func (x *CORStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[81] 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 CORStatistic.ProtoReflect.Descriptor instead. func (*CORStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{81} } func (x *CORStatistic) GetChlorideConcentrationMaxValue() float32 { if x != nil { return x.ChlorideConcentrationMaxValue } return 0 } func (x *CORStatistic) GetChlorideConcentrationMinValue() float32 { if x != nil { return x.ChlorideConcentrationMinValue } return 0 } func (x *CORStatistic) GetChlorideConcentrationAvgValue() float32 { if x != nil { return x.ChlorideConcentrationAvgValue } return 0 } func (x *CORStatistic) GetCorrosionDepthMaxValue() float32 { if x != nil { return x.CorrosionDepthMaxValue } return 0 } func (x *CORStatistic) GetCorrosionDepthMinValue() float32 { if x != nil { return x.CorrosionDepthMinValue } return 0 } func (x *CORStatistic) GetCorrosionDepthAvgValue() float32 { if x != nil { return x.CorrosionDepthAvgValue } return 0 } // 直接法预应力监测 周期:24小时 type STRStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *STRStatistic) Reset() { *x = STRStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *STRStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*STRStatistic) ProtoMessage() {} func (x *STRStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[82] 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 STRStatistic.ProtoReflect.Descriptor instead. func (*STRStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{82} } func (x *STRStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *STRStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *STRStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 围岩温度 周期:1小时 type WYWDStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的温度最大值 MaxTemperature float32 `protobuf:"fixed32,1,opt,name=maxTemperature,proto3" json:"maxTemperature,omitempty"` // 统计时间范围内的温度最小值 MinTemperature float32 `protobuf:"fixed32,2,opt,name=minTemperature,proto3" json:"minTemperature,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3" json:"avgTemperature,omitempty"` // 统计时间范围内的温差值 MaxDifference float32 `protobuf:"fixed32,4,opt,name=maxDifference,proto3" json:"maxDifference,omitempty"` } func (x *WYWDStatistic) Reset() { *x = WYWDStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WYWDStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*WYWDStatistic) ProtoMessage() {} func (x *WYWDStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[83] 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 WYWDStatistic.ProtoReflect.Descriptor instead. func (*WYWDStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{83} } func (x *WYWDStatistic) GetMaxTemperature() float32 { if x != nil { return x.MaxTemperature } return 0 } func (x *WYWDStatistic) GetMinTemperature() float32 { if x != nil { return x.MinTemperature } return 0 } func (x *WYWDStatistic) GetAvgTemperature() float32 { if x != nil { return x.AvgTemperature } return 0 } func (x *WYWDStatistic) GetMaxDifference() float32 { if x != nil { return x.MaxDifference } return 0 } // 仰坡变形 周期:1小时 type YPBXStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *YPBXStatistic) Reset() { *x = YPBXStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YPBXStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*YPBXStatistic) ProtoMessage() {} func (x *YPBXStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[84] 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 YPBXStatistic.ProtoReflect.Descriptor instead. func (*YPBXStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{84} } func (x *YPBXStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *YPBXStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *YPBXStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *YPBXStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 拱顶沉降 周期:1小时 type GDCJStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *GDCJStatistic) Reset() { *x = GDCJStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GDCJStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*GDCJStatistic) ProtoMessage() {} func (x *GDCJStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[85] 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 GDCJStatistic.ProtoReflect.Descriptor instead. func (*GDCJStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{85} } func (x *GDCJStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *GDCJStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *GDCJStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *GDCJStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 拱腰收敛 周期:1小时 type GYSLStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *GYSLStatistic) Reset() { *x = GYSLStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GYSLStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*GYSLStatistic) ProtoMessage() {} func (x *GYSLStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[86] 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 GYSLStatistic.ProtoReflect.Descriptor instead. func (*GYSLStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{86} } func (x *GYSLStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *GYSLStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *GYSLStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *GYSLStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 轮廓变形 周期:1小时 type LKBXStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的位移平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的位移均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *LKBXStatistic) Reset() { *x = LKBXStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *LKBXStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*LKBXStatistic) ProtoMessage() {} func (x *LKBXStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[87] 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 LKBXStatistic.ProtoReflect.Descriptor instead. func (*LKBXStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{87} } func (x *LKBXStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *LKBXStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *LKBXStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *LKBXStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 衬砌应力 周期:1小时 type CQYLStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的应变/应力绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的应变/应力平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` } func (x *CQYLStatistic) Reset() { *x = CQYLStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CQYLStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CQYLStatistic) ProtoMessage() {} func (x *CQYLStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[88] 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 CQYLStatistic.ProtoReflect.Descriptor instead. func (*CQYLStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{88} } func (x *CQYLStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CQYLStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CQYLStatistic) GetAvgTemperature() float32 { if x != nil && x.AvgTemperature != nil { return *x.AvgTemperature } return 0 } // 混凝土结构应变 周期:1小时 type CRSGStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的应变/应力绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的应变/应力平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` } func (x *CRSGStatistic) Reset() { *x = CRSGStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CRSGStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CRSGStatistic) ProtoMessage() {} func (x *CRSGStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[89] 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 CRSGStatistic.ProtoReflect.Descriptor instead. func (*CRSGStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{89} } func (x *CRSGStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CRSGStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CRSGStatistic) GetAvgTemperature() float32 { if x != nil && x.AvgTemperature != nil { return *x.AvgTemperature } return 0 } // 钢结构应变 周期:1小时 type SRSGStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的应变/应力绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的应变/应力平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的温度平均值 AvgTemperature *float32 `protobuf:"fixed32,3,opt,name=avgTemperature,proto3,oneof" json:"avgTemperature,omitempty"` } func (x *SRSGStatistic) Reset() { *x = SRSGStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SRSGStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*SRSGStatistic) ProtoMessage() {} func (x *SRSGStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[90] 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 SRSGStatistic.ProtoReflect.Descriptor instead. func (*SRSGStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{90} } func (x *SRSGStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *SRSGStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *SRSGStatistic) GetAvgTemperature() float32 { if x != nil && x.AvgTemperature != nil { return *x.AvgTemperature } return 0 } // 锚杆索力 周期:1小时 type MGYLStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的最大值 MaxValue float32 `protobuf:"fixed32,1,opt,name=maxValue,proto3" json:"maxValue,omitempty"` // 统计时间范围内的最小值 MinValue float32 `protobuf:"fixed32,2,opt,name=minValue,proto3" json:"minValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,3,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *MGYLStatistic) Reset() { *x = MGYLStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *MGYLStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*MGYLStatistic) ProtoMessage() {} func (x *MGYLStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[91] 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 MGYLStatistic.ProtoReflect.Descriptor instead. func (*MGYLStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{91} } func (x *MGYLStatistic) GetMaxValue() float32 { if x != nil { return x.MaxValue } return 0 } func (x *MGYLStatistic) GetMinValue() float32 { if x != nil { return x.MinValue } return 0 } func (x *MGYLStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 仰坡落石 10分钟 type YPLSStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,2,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` } func (x *YPLSStatistic) Reset() { *x = YPLSStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *YPLSStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*YPLSStatistic) ProtoMessage() {} func (x *YPLSStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[92] 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 YPLSStatistic.ProtoReflect.Descriptor instead. func (*YPLSStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{92} } func (x *YPLSStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *YPLSStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } // 衬砌裂缝 周期:1小时 type CQLFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *CQLFStatistic) Reset() { *x = CQLFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CQLFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*CQLFStatistic) ProtoMessage() {} func (x *CQLFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[93] 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 CQLFStatistic.ProtoReflect.Descriptor instead. func (*CQLFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{93} } func (x *CQLFStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *CQLFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *CQLFStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *CQLFStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 地表位移 1小时 type DBWYStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的X绝对值累积量 TotalAbsoluteValueX float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValueX,proto3" json:"totalAbsoluteValueX,omitempty"` // 统计时间范围内的Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,5,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的Y平均值 AvgValueY float32 `protobuf:"fixed32,6,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,7,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的Y绝对值累积量 TotalAbsoluteValueY float32 `protobuf:"fixed32,8,opt,name=totalAbsoluteValueY,proto3" json:"totalAbsoluteValueY,omitempty"` // 统计时间范围内的Z绝对最大值 MaxAbsoluteValueZ float32 `protobuf:"fixed32,9,opt,name=maxAbsoluteValueZ,proto3" json:"maxAbsoluteValueZ,omitempty"` // 统计时间范围内的Z平均值 AvgValueZ float32 `protobuf:"fixed32,10,opt,name=avgValueZ,proto3" json:"avgValueZ,omitempty"` // 统计时间范围内的Z均方根 RootMeanSquareZ float32 `protobuf:"fixed32,11,opt,name=rootMeanSquareZ,proto3" json:"rootMeanSquareZ,omitempty"` // 统计时间范围内的Z绝对值累积量 TotalAbsoluteValueZ float32 `protobuf:"fixed32,12,opt,name=totalAbsoluteValueZ,proto3" json:"totalAbsoluteValueZ,omitempty"` } func (x *DBWYStatistic) Reset() { *x = DBWYStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DBWYStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DBWYStatistic) ProtoMessage() {} func (x *DBWYStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[94] 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 DBWYStatistic.ProtoReflect.Descriptor instead. func (*DBWYStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{94} } func (x *DBWYStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *DBWYStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *DBWYStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *DBWYStatistic) GetTotalAbsoluteValueX() float32 { if x != nil { return x.TotalAbsoluteValueX } return 0 } func (x *DBWYStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *DBWYStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *DBWYStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *DBWYStatistic) GetTotalAbsoluteValueY() float32 { if x != nil { return x.TotalAbsoluteValueY } return 0 } func (x *DBWYStatistic) GetMaxAbsoluteValueZ() float32 { if x != nil { return x.MaxAbsoluteValueZ } return 0 } func (x *DBWYStatistic) GetAvgValueZ() float32 { if x != nil { return x.AvgValueZ } return 0 } func (x *DBWYStatistic) GetRootMeanSquareZ() float32 { if x != nil { return x.RootMeanSquareZ } return 0 } func (x *DBWYStatistic) GetTotalAbsoluteValueZ() float32 { if x != nil { return x.TotalAbsoluteValueZ } return 0 } // 深层位移 1小时 type SCWYStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的X绝对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内的X平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内的X均方根 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内的X绝对值累积量 TotalAbsoluteValueX float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValueX,proto3" json:"totalAbsoluteValueX,omitempty"` // 统计时间范围内的Y绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,5,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内的Y平均值 AvgValueY float32 `protobuf:"fixed32,6,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内的Y均方根 RootMeanSquareY float32 `protobuf:"fixed32,7,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` // 统计时间范围内的Y绝对值累积量 TotalAbsoluteValueY float32 `protobuf:"fixed32,8,opt,name=totalAbsoluteValueY,proto3" json:"totalAbsoluteValueY,omitempty"` } func (x *SCWYStatistic) Reset() { *x = SCWYStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SCWYStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*SCWYStatistic) ProtoMessage() {} func (x *SCWYStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[95] 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 SCWYStatistic.ProtoReflect.Descriptor instead. func (*SCWYStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{95} } func (x *SCWYStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *SCWYStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *SCWYStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *SCWYStatistic) GetTotalAbsoluteValueX() float32 { if x != nil { return x.TotalAbsoluteValueX } return 0 } func (x *SCWYStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *SCWYStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *SCWYStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } func (x *SCWYStatistic) GetTotalAbsoluteValueY() float32 { if x != nil { return x.TotalAbsoluteValueY } return 0 } // 挡土墙倾斜 1小时 type DTQQXStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内X的对最大值 MaxAbsoluteValueX float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValueX,proto3" json:"maxAbsoluteValueX,omitempty"` // 统计时间范围内X的平均值 AvgValueX float32 `protobuf:"fixed32,2,opt,name=avgValueX,proto3" json:"avgValueX,omitempty"` // 统计时间范围内X的均方根值 RootMeanSquareX float32 `protobuf:"fixed32,3,opt,name=rootMeanSquareX,proto3" json:"rootMeanSquareX,omitempty"` // 统计时间范围内Y的绝对最大值 MaxAbsoluteValueY float32 `protobuf:"fixed32,4,opt,name=maxAbsoluteValueY,proto3" json:"maxAbsoluteValueY,omitempty"` // 统计时间范围内Y的平均值 AvgValueY float32 `protobuf:"fixed32,5,opt,name=avgValueY,proto3" json:"avgValueY,omitempty"` // 统计时间范围内Y的均方根值 RootMeanSquareY float32 `protobuf:"fixed32,6,opt,name=rootMeanSquareY,proto3" json:"rootMeanSquareY,omitempty"` } func (x *DTQQXStatistic) Reset() { *x = DTQQXStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DTQQXStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DTQQXStatistic) ProtoMessage() {} func (x *DTQQXStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[96] 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 DTQQXStatistic.ProtoReflect.Descriptor instead. func (*DTQQXStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{96} } func (x *DTQQXStatistic) GetMaxAbsoluteValueX() float32 { if x != nil { return x.MaxAbsoluteValueX } return 0 } func (x *DTQQXStatistic) GetAvgValueX() float32 { if x != nil { return x.AvgValueX } return 0 } func (x *DTQQXStatistic) GetRootMeanSquareX() float32 { if x != nil { return x.RootMeanSquareX } return 0 } func (x *DTQQXStatistic) GetMaxAbsoluteValueY() float32 { if x != nil { return x.MaxAbsoluteValueY } return 0 } func (x *DTQQXStatistic) GetAvgValueY() float32 { if x != nil { return x.AvgValueY } return 0 } func (x *DTQQXStatistic) GetRootMeanSquareY() float32 { if x != nil { return x.RootMeanSquareY } return 0 } // 地表裂缝 1小时 type DBLFStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` // 统计时间范围内的均方根值 RootMeanSquare float32 `protobuf:"fixed32,3,opt,name=rootMeanSquare,proto3" json:"rootMeanSquare,omitempty"` // 统计时间范围内的绝对值累积量 TotalAbsoluteValue float32 `protobuf:"fixed32,4,opt,name=totalAbsoluteValue,proto3" json:"totalAbsoluteValue,omitempty"` } func (x *DBLFStatistic) Reset() { *x = DBLFStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DBLFStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DBLFStatistic) ProtoMessage() {} func (x *DBLFStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[97] 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 DBLFStatistic.ProtoReflect.Descriptor instead. func (*DBLFStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{97} } func (x *DBLFStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *DBLFStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } func (x *DBLFStatistic) GetRootMeanSquare() float32 { if x != nil { return x.RootMeanSquare } return 0 } func (x *DBLFStatistic) GetTotalAbsoluteValue() float32 { if x != nil { return x.TotalAbsoluteValue } return 0 } // 孔隙水压力 1小时 type KSYStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *KSYStatistic) Reset() { *x = KSYStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *KSYStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*KSYStatistic) ProtoMessage() {} func (x *KSYStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[98] 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 KSYStatistic.ProtoReflect.Descriptor instead. func (*KSYStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{98} } func (x *KSYStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *KSYStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } // 地下水位 1小时 type DXSWStatistic struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 统计时间范围内的绝对最大值 MaxAbsoluteValue float32 `protobuf:"fixed32,1,opt,name=maxAbsoluteValue,proto3" json:"maxAbsoluteValue,omitempty"` // 统计时间范围内的平均值 AvgValue float32 `protobuf:"fixed32,2,opt,name=avgValue,proto3" json:"avgValue,omitempty"` } func (x *DXSWStatistic) Reset() { *x = DXSWStatistic{} if protoimpl.UnsafeEnabled { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DXSWStatistic) String() string { return protoimpl.X.MessageStringOf(x) } func (*DXSWStatistic) ProtoMessage() {} func (x *DXSWStatistic) ProtoReflect() protoreflect.Message { mi := &file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[99] 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 DXSWStatistic.ProtoReflect.Descriptor instead. func (*DXSWStatistic) Descriptor() ([]byte, []int) { return file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP(), []int{99} } func (x *DXSWStatistic) GetMaxAbsoluteValue() float32 { if x != nil { return x.MaxAbsoluteValue } return 0 } func (x *DXSWStatistic) GetAvgValue() float32 { if x != nil { return x.AvgValue } return 0 } var File_MonitorDataProtocol_Ministry_V3_proto protoreflect.FileDescriptor var file_MonitorDataProtocol_Ministry_V3_proto_rawDesc = []byte{ 0x0a, 0x25, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2d, 0x4d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x72, 0x79, 0x2d, 0x56, 0x33, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x52, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x22, 0xb0, 0x02, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4a, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xe1, 0x16, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x37, 0x0a, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x03, 0x64, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x63, 0x12, 0x34, 0x0a, 0x03, 0x64, 0x69, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x34, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x03, 0x69, 0x6e, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x45, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x34, 0x0a, 0x03, 0x74, 0x6d, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x4d, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x62, 0x12, 0x34, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x68, 0x73, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x34, 0x0a, 0x03, 0x6c, 0x6d, 0x7a, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x6c, 0x6d, 0x7a, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x74, 0x66, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x66, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x63, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x72, 0x6b, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6f, 0x72, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x34, 0x0a, 0x03, 0x62, 0x72, 0x6b, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x72, 0x6b, 0x12, 0x34, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x34, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x73, 0x62, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x53, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x73, 0x62, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x63, 0x6e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x43, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, 0x34, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x4c, 0x56, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, 0x76, 0x12, 0x34, 0x0a, 0x03, 0x70, 0x6c, 0x64, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x4c, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6c, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x77, 0x64, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x44, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x77, 0x64, 0x70, 0x12, 0x34, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x4e, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x34, 0x0a, 0x03, 0x76, 0x69, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x04, 0x77, 0x79, 0x77, 0x64, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x59, 0x57, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x77, 0x79, 0x77, 0x64, 0x12, 0x37, 0x0a, 0x04, 0x79, 0x70, 0x62, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x59, 0x50, 0x42, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x79, 0x70, 0x62, 0x78, 0x12, 0x37, 0x0a, 0x04, 0x67, 0x64, 0x63, 0x6a, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x44, 0x43, 0x4a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x67, 0x64, 0x63, 0x6a, 0x12, 0x37, 0x0a, 0x04, 0x67, 0x79, 0x73, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x59, 0x53, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x67, 0x79, 0x73, 0x6c, 0x12, 0x37, 0x0a, 0x04, 0x6c, 0x6b, 0x62, 0x78, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x4b, 0x42, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6b, 0x62, 0x78, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x71, 0x79, 0x6c, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x51, 0x59, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x63, 0x71, 0x79, 0x6c, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x72, 0x73, 0x67, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x63, 0x72, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x73, 0x72, 0x73, 0x67, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x72, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x6d, 0x67, 0x79, 0x6c, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x47, 0x59, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x67, 0x79, 0x6c, 0x12, 0x37, 0x0a, 0x04, 0x79, 0x70, 0x6c, 0x73, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x59, 0x50, 0x4c, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x79, 0x70, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x62, 0x77, 0x79, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x42, 0x57, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x62, 0x77, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x73, 0x63, 0x77, 0x79, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x43, 0x57, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x63, 0x77, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x74, 0x71, 0x71, 0x78, 0x18, 0x32, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x54, 0x51, 0x51, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x05, 0x64, 0x74, 0x71, 0x71, 0x78, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x62, 0x6c, 0x66, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x42, 0x4c, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x62, 0x6c, 0x66, 0x12, 0x34, 0x0a, 0x03, 0x6b, 0x73, 0x79, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x53, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x73, 0x79, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x78, 0x73, 0x77, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x58, 0x53, 0x57, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x78, 0x73, 0x77, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x71, 0x6c, 0x66, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x51, 0x4c, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x04, 0x63, 0x71, 0x6c, 0x66, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x0b, 0x55, 0x41, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x77, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0x4b, 0x0a, 0x0b, 0x52, 0x48, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x22, 0x2f, 0x0a, 0x0b, 0x54, 0x4d, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x47, 0x4e, 0x53, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x7f, 0x0a, 0x0b, 0x56, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x37, 0x0a, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x14, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x66, 0x75, 0x6e, 0x64, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x46, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x68, 0x0a, 0x0b, 0x44, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b, 0x43, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x64, 0x0a, 0x0b, 0x48, 0x50, 0x54, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5c, 0x0a, 0x0b, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x49, 0x4e, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x45, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x37, 0x0a, 0x0b, 0x54, 0x4d, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xd2, 0x02, 0x0a, 0x0b, 0x48, 0x53, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6c, 0x61, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x44, 0x69, 0x72, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x78, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x61, 0x78, 0x6c, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x73, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x11, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x29, 0x0a, 0x0b, 0x50, 0x57, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x61, 0x6c, 0x6c, 0x22, 0x53, 0x0a, 0x0b, 0x46, 0x52, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x69, 0x63, 0x65, 0x54, 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x4c, 0x4d, 0x5a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x72, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x44, 0x49, 0x43, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x55, 0x0a, 0x0b, 0x53, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x43, 0x4f, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x64, 0x65, 0x70, 0x74, 0x68, 0x22, 0x6b, 0x0a, 0x0b, 0x43, 0x4f, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x0b, 0x53, 0x54, 0x52, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x42, 0x52, 0x4b, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6c, 0x0a, 0x0b, 0x42, 0x54, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x62, 0x6f, 0x6c, 0x74, 0x54, 0x69, 0x67, 0x68, 0x74, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x68, 0x0a, 0x0b, 0x43, 0x53, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x56, 0x53, 0x42, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x41, 0x43, 0x4e, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x57, 0x4c, 0x56, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x50, 0x4c, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x23, 0x0a, 0x0b, 0x57, 0x44, 0x50, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, 0x0b, 0x41, 0x4e, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x37, 0x0a, 0x0b, 0x56, 0x49, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x30, 0x0a, 0x0c, 0x57, 0x59, 0x57, 0x44, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x32, 0x0a, 0x0c, 0x59, 0x50, 0x42, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x32, 0x0a, 0x0c, 0x47, 0x44, 0x43, 0x4a, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x32, 0x0a, 0x0c, 0x47, 0x59, 0x53, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x32, 0x0a, 0x0c, 0x4c, 0x4b, 0x42, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5d, 0x0a, 0x0c, 0x43, 0x51, 0x59, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5d, 0x0a, 0x0c, 0x43, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x5d, 0x0a, 0x0c, 0x53, 0x52, 0x53, 0x47, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x2e, 0x0a, 0x0c, 0x4d, 0x47, 0x59, 0x4c, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x59, 0x50, 0x4c, 0x53, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x38, 0x0a, 0x0c, 0x44, 0x42, 0x57, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x7a, 0x22, 0x2a, 0x0a, 0x0c, 0x53, 0x43, 0x57, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x2b, 0x0a, 0x0d, 0x44, 0x54, 0x51, 0x51, 0x58, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x2e, 0x0a, 0x0c, 0x44, 0x42, 0x4c, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x29, 0x0a, 0x0b, 0x4b, 0x53, 0x59, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x22, 0x2e, 0x0a, 0x0c, 0x44, 0x58, 0x53, 0x57, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x61, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x77, 0x61, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x2e, 0x0a, 0x0c, 0x43, 0x51, 0x4c, 0x46, 0x52, 0x65, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0xd4, 0x15, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x64, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x03, 0x75, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x55, 0x41, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x75, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x03, 0x72, 0x68, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x48, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x72, 0x68, 0x73, 0x12, 0x35, 0x0a, 0x03, 0x74, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x4d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x70, 0x12, 0x38, 0x0a, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x6e, 0x73, 0x73, 0x12, 0x35, 0x0a, 0x03, 0x76, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x03, 0x64, 0x69, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x49, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x64, 0x69, 0x73, 0x12, 0x35, 0x0a, 0x03, 0x68, 0x70, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x68, 0x70, 0x74, 0x12, 0x35, 0x0a, 0x03, 0x72, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x72, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x03, 0x69, 0x6e, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x69, 0x6e, 0x63, 0x12, 0x35, 0x0a, 0x03, 0x76, 0x69, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x65, 0x12, 0x35, 0x0a, 0x03, 0x74, 0x6d, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x54, 0x4d, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x74, 0x6d, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x76, 0x69, 0x62, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x62, 0x12, 0x35, 0x0a, 0x03, 0x68, 0x73, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x68, 0x73, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x61, 0x6e, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x4e, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x63, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x72, 0x6b, 0x12, 0x35, 0x0a, 0x03, 0x66, 0x72, 0x7a, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x46, 0x52, 0x5a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x66, 0x72, 0x7a, 0x12, 0x35, 0x0a, 0x03, 0x70, 0x77, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x70, 0x77, 0x73, 0x12, 0x35, 0x0a, 0x03, 0x76, 0x73, 0x62, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x73, 0x62, 0x12, 0x35, 0x0a, 0x03, 0x61, 0x63, 0x6e, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x41, 0x43, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x61, 0x63, 0x6e, 0x12, 0x35, 0x0a, 0x03, 0x77, 0x6c, 0x76, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x77, 0x6c, 0x76, 0x12, 0x35, 0x0a, 0x03, 0x62, 0x74, 0x66, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x62, 0x74, 0x66, 0x12, 0x35, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x53, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x03, 0x70, 0x6c, 0x64, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x50, 0x4c, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x70, 0x6c, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x76, 0x69, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x56, 0x49, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x76, 0x69, 0x64, 0x12, 0x35, 0x0a, 0x03, 0x77, 0x64, 0x70, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x77, 0x64, 0x70, 0x12, 0x35, 0x0a, 0x03, 0x73, 0x74, 0x66, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x66, 0x12, 0x35, 0x0a, 0x03, 0x73, 0x63, 0x6f, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x43, 0x4f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x63, 0x6f, 0x12, 0x35, 0x0a, 0x03, 0x63, 0x6f, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x4f, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x63, 0x6f, 0x72, 0x12, 0x35, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x54, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x38, 0x0a, 0x04, 0x77, 0x79, 0x77, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x57, 0x59, 0x57, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x77, 0x79, 0x77, 0x64, 0x12, 0x38, 0x0a, 0x04, 0x79, 0x70, 0x62, 0x78, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x59, 0x50, 0x42, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x79, 0x70, 0x62, 0x78, 0x12, 0x38, 0x0a, 0x04, 0x67, 0x64, 0x63, 0x6a, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x44, 0x43, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x64, 0x63, 0x6a, 0x12, 0x38, 0x0a, 0x04, 0x67, 0x79, 0x73, 0x6c, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x47, 0x59, 0x53, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x67, 0x79, 0x73, 0x6c, 0x12, 0x38, 0x0a, 0x04, 0x6c, 0x6b, 0x62, 0x78, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4c, 0x4b, 0x42, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6b, 0x62, 0x78, 0x12, 0x38, 0x0a, 0x04, 0x63, 0x71, 0x79, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x51, 0x59, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x63, 0x71, 0x79, 0x6c, 0x12, 0x38, 0x0a, 0x04, 0x63, 0x72, 0x73, 0x67, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x63, 0x72, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x73, 0x72, 0x73, 0x67, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x73, 0x72, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x6d, 0x67, 0x79, 0x6c, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4d, 0x47, 0x59, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x67, 0x79, 0x6c, 0x12, 0x38, 0x0a, 0x04, 0x79, 0x70, 0x6c, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x59, 0x50, 0x4c, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x79, 0x70, 0x6c, 0x73, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x62, 0x77, 0x79, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x42, 0x57, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x64, 0x62, 0x77, 0x79, 0x12, 0x38, 0x0a, 0x04, 0x73, 0x63, 0x77, 0x79, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x53, 0x43, 0x57, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x73, 0x63, 0x77, 0x79, 0x12, 0x3b, 0x0a, 0x05, 0x64, 0x74, 0x71, 0x71, 0x78, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x54, 0x51, 0x51, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x05, 0x64, 0x74, 0x71, 0x71, 0x78, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x62, 0x6c, 0x66, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x42, 0x4c, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x64, 0x62, 0x6c, 0x66, 0x12, 0x35, 0x0a, 0x03, 0x6b, 0x73, 0x79, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x4b, 0x53, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x03, 0x6b, 0x73, 0x79, 0x12, 0x38, 0x0a, 0x04, 0x63, 0x71, 0x6c, 0x66, 0x18, 0x30, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x51, 0x4c, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x63, 0x71, 0x6c, 0x66, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x78, 0x73, 0x77, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x44, 0x61, 0x74, 0x61, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x44, 0x58, 0x53, 0x57, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x48, 0x00, 0x52, 0x04, 0x64, 0x78, 0x73, 0x77, 0x42, 0x0a, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x0c, 0x55, 0x41, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x56, 0x65, 0x6c, 0x6f, 0x63, 0x69, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c, 0x61, 0x76, 0x67, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x22, 0xe0, 0x02, 0x0a, 0x0c, 0x52, 0x48, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x48, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x12, 0x36, 0x0a, 0x16, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x68, 0x75, 0x6d, 0x69, 0x64, 0x69, 0x74, 0x79, 0x45, 0x78, 0x63, 0x65, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x54, 0x4d, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x02, 0x0a, 0x0d, 0x47, 0x4e, 0x53, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xf0, 0x02, 0x0a, 0x0c, 0x41, 0x4e, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x48, 0x50, 0x54, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xfa, 0x01, 0x0a, 0x0c, 0x49, 0x4e, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x22, 0x96, 0x01, 0x0a, 0x0c, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x56, 0x49, 0x43, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x45, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x56, 0x49, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x54, 0x4d, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x0c, 0x48, 0x53, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x4c, 0x6f, 0x61, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x61, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x61, 0x76, 0x67, 0x4c, 0x6f, 0x61, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x43, 0x52, 0x4b, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x46, 0x52, 0x5a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x50, 0x57, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x2a, 0x0a, 0x0c, 0x56, 0x53, 0x42, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x41, 0x43, 0x4e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x57, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x42, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x7e, 0x0a, 0x0c, 0x43, 0x53, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xf0, 0x02, 0x0a, 0x0c, 0x50, 0x4c, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x22, 0x52, 0x0a, 0x0c, 0x57, 0x44, 0x50, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x54, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4a, 0x0a, 0x0c, 0x53, 0x43, 0x4f, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x75, 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0c, 0x43, 0x4f, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x44, 0x0a, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1d, 0x63, 0x68, 0x6c, 0x6f, 0x72, 0x69, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x4d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x63, 0x6f, 0x72, 0x72, 0x6f, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x70, 0x74, 0x68, 0x41, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x57, 0x59, 0x57, 0x44, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x59, 0x50, 0x42, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x47, 0x44, 0x43, 0x4a, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x47, 0x59, 0x53, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x4c, 0x4b, 0x42, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x51, 0x59, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x43, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x52, 0x53, 0x47, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2b, 0x0a, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x76, 0x67, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x63, 0x0a, 0x0d, 0x4d, 0x47, 0x59, 0x4c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x63, 0x0a, 0x0d, 0x59, 0x50, 0x4c, 0x53, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x43, 0x51, 0x4c, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x87, 0x04, 0x0a, 0x0d, 0x44, 0x42, 0x57, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5a, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x5a, 0x22, 0xdf, 0x02, 0x0a, 0x0d, 0x53, 0x43, 0x57, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x22, 0xfc, 0x01, 0x0a, 0x0e, 0x44, 0x54, 0x51, 0x51, 0x58, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x58, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x58, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x59, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x59, 0x22, 0xaf, 0x01, 0x0a, 0x0d, 0x44, 0x42, 0x4c, 0x46, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x4d, 0x65, 0x61, 0x6e, 0x53, 0x71, 0x75, 0x61, 0x72, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x56, 0x0a, 0x0c, 0x4b, 0x53, 0x59, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x0d, 0x44, 0x58, 0x53, 0x57, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x41, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x76, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x4a, 0x0a, 0x08, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x41, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54, 0x49, 0x53, 0x54, 0x49, 0x43, 0x53, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x50, 0x45, 0x43, 0x49, 0x41, 0x4c, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x2a, 0xeb, 0x03, 0x0a, 0x0c, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x55, 0x41, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x48, 0x53, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x4e, 0x53, 0x53, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x43, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x43, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x49, 0x53, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x50, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x52, 0x53, 0x47, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x49, 0x4e, 0x43, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x42, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x45, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4d, 0x44, 0x10, 0x0b, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x53, 0x44, 0x10, 0x0c, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x4d, 0x50, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x57, 0x53, 0x10, 0x0e, 0x12, 0x07, 0x0a, 0x03, 0x46, 0x52, 0x5a, 0x10, 0x0f, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4d, 0x5a, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x46, 0x10, 0x11, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x43, 0x4f, 0x10, 0x12, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x52, 0x4b, 0x10, 0x13, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4f, 0x52, 0x10, 0x14, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x53, 0x10, 0x15, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x54, 0x52, 0x10, 0x16, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x52, 0x4b, 0x10, 0x17, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x54, 0x46, 0x10, 0x18, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x53, 0x50, 0x10, 0x19, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x44, 0x50, 0x10, 0x1a, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x1e, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x49, 0x44, 0x10, 0x21, 0x12, 0x07, 0x0a, 0x03, 0x56, 0x53, 0x42, 0x10, 0x22, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x43, 0x4e, 0x10, 0x23, 0x12, 0x07, 0x0a, 0x03, 0x57, 0x4c, 0x56, 0x10, 0x24, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x59, 0x57, 0x44, 0x10, 0x25, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x50, 0x42, 0x58, 0x10, 0x26, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x44, 0x43, 0x4a, 0x10, 0x27, 0x12, 0x08, 0x0a, 0x04, 0x47, 0x59, 0x53, 0x4c, 0x10, 0x28, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4b, 0x42, 0x58, 0x10, 0x29, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x51, 0x59, 0x4c, 0x10, 0x2a, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x52, 0x53, 0x47, 0x10, 0x2b, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x52, 0x53, 0x47, 0x10, 0x2c, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x47, 0x59, 0x4c, 0x10, 0x2d, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x51, 0x4c, 0x46, 0x10, 0x2e, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x50, 0x4c, 0x53, 0x10, 0x2f, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x42, 0x57, 0x59, 0x10, 0x30, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x43, 0x57, 0x59, 0x10, 0x31, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x54, 0x51, 0x51, 0x58, 0x10, 0x32, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x42, 0x4c, 0x46, 0x10, 0x33, 0x12, 0x07, 0x0a, 0x03, 0x4b, 0x53, 0x59, 0x10, 0x34, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x58, 0x53, 0x57, 0x10, 0x35, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x4c, 0x44, 0x10, 0x61, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x4d, 0x4d, 0x10, 0x63, 0x42, 0x12, 0x5a, 0x10, 0x2e, 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_MonitorDataProtocol_Ministry_V3_proto_rawDescOnce sync.Once file_MonitorDataProtocol_Ministry_V3_proto_rawDescData = file_MonitorDataProtocol_Ministry_V3_proto_rawDesc ) func file_MonitorDataProtocol_Ministry_V3_proto_rawDescGZIP() []byte { file_MonitorDataProtocol_Ministry_V3_proto_rawDescOnce.Do(func() { file_MonitorDataProtocol_Ministry_V3_proto_rawDescData = protoimpl.X.CompressGZIP(file_MonitorDataProtocol_Ministry_V3_proto_rawDescData) }) return file_MonitorDataProtocol_Ministry_V3_proto_rawDescData } var file_MonitorDataProtocol_Ministry_V3_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_MonitorDataProtocol_Ministry_V3_proto_msgTypes = make([]protoimpl.MessageInfo, 100) var file_MonitorDataProtocol_Ministry_V3_proto_goTypes = []interface{}{ (DataType)(0), // 0: MonitorDataProtocol.DataType (MonitoryType)(0), // 1: MonitorDataProtocol.MonitoryType (*ComplexData)(nil), // 2: MonitorDataProtocol.ComplexData (*DataDefinition)(nil), // 3: MonitorDataProtocol.DataDefinition (*RealTimeData)(nil), // 4: MonitorDataProtocol.RealTimeData (*UANRealTime)(nil), // 5: MonitorDataProtocol.UANRealTime (*RHSRealTime)(nil), // 6: MonitorDataProtocol.RHSRealTime (*TMPRealTime)(nil), // 7: MonitorDataProtocol.TMPRealTime (*GNSSRealTime)(nil), // 8: MonitorDataProtocol.GNSSRealTime (*VICRealTime)(nil), // 9: MonitorDataProtocol.VICRealTime (*DISRealTime)(nil), // 10: MonitorDataProtocol.DISRealTime (*CRKRealTime)(nil), // 11: MonitorDataProtocol.CRKRealTime (*HPTRealTime)(nil), // 12: MonitorDataProtocol.HPTRealTime (*RSGRealTime)(nil), // 13: MonitorDataProtocol.RSGRealTime (*INCRealTime)(nil), // 14: MonitorDataProtocol.INCRealTime (*VIBRealTime)(nil), // 15: MonitorDataProtocol.VIBRealTime (*VIERealTime)(nil), // 16: MonitorDataProtocol.VIERealTime (*TMDRealTime)(nil), // 17: MonitorDataProtocol.TMDRealTime (*HSDRealTime)(nil), // 18: MonitorDataProtocol.HSDRealTime (*PWSRealTime)(nil), // 19: MonitorDataProtocol.PWSRealTime (*FRZRealTime)(nil), // 20: MonitorDataProtocol.FRZRealTime (*LMZRealTime)(nil), // 21: MonitorDataProtocol.LMZRealTime (*DICRealTime)(nil), // 22: MonitorDataProtocol.DICRealTime (*STFRealTime)(nil), // 23: MonitorDataProtocol.STFRealTime (*SCORealTime)(nil), // 24: MonitorDataProtocol.SCORealTime (*CORRealTime)(nil), // 25: MonitorDataProtocol.CORRealTime (*VISRealTime)(nil), // 26: MonitorDataProtocol.VISRealTime (*STRRealTime)(nil), // 27: MonitorDataProtocol.STRRealTime (*BRKRealTime)(nil), // 28: MonitorDataProtocol.BRKRealTime (*BTFRealTime)(nil), // 29: MonitorDataProtocol.BTFRealTime (*CSPRealTime)(nil), // 30: MonitorDataProtocol.CSPRealTime (*VSBRealTime)(nil), // 31: MonitorDataProtocol.VSBRealTime (*ACNRealTime)(nil), // 32: MonitorDataProtocol.ACNRealTime (*WLVRealTime)(nil), // 33: MonitorDataProtocol.WLVRealTime (*PLDRealTime)(nil), // 34: MonitorDataProtocol.PLDRealTime (*WDPRealTime)(nil), // 35: MonitorDataProtocol.WDPRealTime (*ANDRealTime)(nil), // 36: MonitorDataProtocol.ANDRealTime (*VIDRealTime)(nil), // 37: MonitorDataProtocol.VIDRealTime (*WYWDRealTime)(nil), // 38: MonitorDataProtocol.WYWDRealTime (*YPBXRealTime)(nil), // 39: MonitorDataProtocol.YPBXRealTime (*GDCJRealTime)(nil), // 40: MonitorDataProtocol.GDCJRealTime (*GYSLRealTime)(nil), // 41: MonitorDataProtocol.GYSLRealTime (*LKBXRealTime)(nil), // 42: MonitorDataProtocol.LKBXRealTime (*CQYLRealTime)(nil), // 43: MonitorDataProtocol.CQYLRealTime (*CRSGRealTime)(nil), // 44: MonitorDataProtocol.CRSGRealTime (*SRSGRealTime)(nil), // 45: MonitorDataProtocol.SRSGRealTime (*MGYLRealTime)(nil), // 46: MonitorDataProtocol.MGYLRealTime (*YPLSRealTime)(nil), // 47: MonitorDataProtocol.YPLSRealTime (*DBWYRealTime)(nil), // 48: MonitorDataProtocol.DBWYRealTime (*SCWYRealTime)(nil), // 49: MonitorDataProtocol.SCWYRealTime (*DTQQXRealTime)(nil), // 50: MonitorDataProtocol.DTQQXRealTime (*DBLFRealTime)(nil), // 51: MonitorDataProtocol.DBLFRealTime (*KSYRealTime)(nil), // 52: MonitorDataProtocol.KSYRealTime (*DXSWRealTime)(nil), // 53: MonitorDataProtocol.DXSWRealTime (*CQLFRealTime)(nil), // 54: MonitorDataProtocol.CQLFRealTime (*StatisticData)(nil), // 55: MonitorDataProtocol.StatisticData (*UANStatistic)(nil), // 56: MonitorDataProtocol.UANStatistic (*RHSStatistic)(nil), // 57: MonitorDataProtocol.RHSStatistic (*TMPStatistic)(nil), // 58: MonitorDataProtocol.TMPStatistic (*GNSSStatistic)(nil), // 59: MonitorDataProtocol.GNSSStatistic (*ANDStatistic)(nil), // 60: MonitorDataProtocol.ANDStatistic (*DISStatistic)(nil), // 61: MonitorDataProtocol.DISStatistic (*HPTStatistic)(nil), // 62: MonitorDataProtocol.HPTStatistic (*INCStatistic)(nil), // 63: MonitorDataProtocol.INCStatistic (*RSGStatistic)(nil), // 64: MonitorDataProtocol.RSGStatistic (*VICStatistic)(nil), // 65: MonitorDataProtocol.VICStatistic (*VIBStatistic)(nil), // 66: MonitorDataProtocol.VIBStatistic (*VIEStatistic)(nil), // 67: MonitorDataProtocol.VIEStatistic (*VIDStatistic)(nil), // 68: MonitorDataProtocol.VIDStatistic (*TMDStatistic)(nil), // 69: MonitorDataProtocol.TMDStatistic (*HSDStatistic)(nil), // 70: MonitorDataProtocol.HSDStatistic (*CRKStatistic)(nil), // 71: MonitorDataProtocol.CRKStatistic (*FRZStatistic)(nil), // 72: MonitorDataProtocol.FRZStatistic (*PWSStatistic)(nil), // 73: MonitorDataProtocol.PWSStatistic (*VSBStatistic)(nil), // 74: MonitorDataProtocol.VSBStatistic (*ACNStatistic)(nil), // 75: MonitorDataProtocol.ACNStatistic (*WLVStatistic)(nil), // 76: MonitorDataProtocol.WLVStatistic (*BTFStatistic)(nil), // 77: MonitorDataProtocol.BTFStatistic (*CSPStatistic)(nil), // 78: MonitorDataProtocol.CSPStatistic (*PLDStatistic)(nil), // 79: MonitorDataProtocol.PLDStatistic (*WDPStatistic)(nil), // 80: MonitorDataProtocol.WDPStatistic (*STFStatistic)(nil), // 81: MonitorDataProtocol.STFStatistic (*SCOStatistic)(nil), // 82: MonitorDataProtocol.SCOStatistic (*CORStatistic)(nil), // 83: MonitorDataProtocol.CORStatistic (*STRStatistic)(nil), // 84: MonitorDataProtocol.STRStatistic (*WYWDStatistic)(nil), // 85: MonitorDataProtocol.WYWDStatistic (*YPBXStatistic)(nil), // 86: MonitorDataProtocol.YPBXStatistic (*GDCJStatistic)(nil), // 87: MonitorDataProtocol.GDCJStatistic (*GYSLStatistic)(nil), // 88: MonitorDataProtocol.GYSLStatistic (*LKBXStatistic)(nil), // 89: MonitorDataProtocol.LKBXStatistic (*CQYLStatistic)(nil), // 90: MonitorDataProtocol.CQYLStatistic (*CRSGStatistic)(nil), // 91: MonitorDataProtocol.CRSGStatistic (*SRSGStatistic)(nil), // 92: MonitorDataProtocol.SRSGStatistic (*MGYLStatistic)(nil), // 93: MonitorDataProtocol.MGYLStatistic (*YPLSStatistic)(nil), // 94: MonitorDataProtocol.YPLSStatistic (*CQLFStatistic)(nil), // 95: MonitorDataProtocol.CQLFStatistic (*DBWYStatistic)(nil), // 96: MonitorDataProtocol.DBWYStatistic (*SCWYStatistic)(nil), // 97: MonitorDataProtocol.SCWYStatistic (*DTQQXStatistic)(nil), // 98: MonitorDataProtocol.DTQQXStatistic (*DBLFStatistic)(nil), // 99: MonitorDataProtocol.DBLFStatistic (*KSYStatistic)(nil), // 100: MonitorDataProtocol.KSYStatistic (*DXSWStatistic)(nil), // 101: MonitorDataProtocol.DXSWStatistic } var file_MonitorDataProtocol_Ministry_V3_proto_depIdxs = []int32{ 3, // 0: MonitorDataProtocol.ComplexData.sensorData:type_name -> MonitorDataProtocol.DataDefinition 0, // 1: MonitorDataProtocol.DataDefinition.dataType:type_name -> MonitorDataProtocol.DataType 4, // 2: MonitorDataProtocol.DataDefinition.realTimeData:type_name -> MonitorDataProtocol.RealTimeData 55, // 3: MonitorDataProtocol.DataDefinition.statisticData:type_name -> MonitorDataProtocol.StatisticData 1, // 4: MonitorDataProtocol.RealTimeData.monitorType:type_name -> MonitorDataProtocol.MonitoryType 5, // 5: MonitorDataProtocol.RealTimeData.uan:type_name -> MonitorDataProtocol.UANRealTime 6, // 6: MonitorDataProtocol.RealTimeData.rhs:type_name -> MonitorDataProtocol.RHSRealTime 7, // 7: MonitorDataProtocol.RealTimeData.tmp:type_name -> MonitorDataProtocol.TMPRealTime 8, // 8: MonitorDataProtocol.RealTimeData.gnss:type_name -> MonitorDataProtocol.GNSSRealTime 9, // 9: MonitorDataProtocol.RealTimeData.vic:type_name -> MonitorDataProtocol.VICRealTime 22, // 10: MonitorDataProtocol.RealTimeData.dic:type_name -> MonitorDataProtocol.DICRealTime 10, // 11: MonitorDataProtocol.RealTimeData.dis:type_name -> MonitorDataProtocol.DISRealTime 12, // 12: MonitorDataProtocol.RealTimeData.hpt:type_name -> MonitorDataProtocol.HPTRealTime 13, // 13: MonitorDataProtocol.RealTimeData.rsg:type_name -> MonitorDataProtocol.RSGRealTime 14, // 14: MonitorDataProtocol.RealTimeData.inc:type_name -> MonitorDataProtocol.INCRealTime 16, // 15: MonitorDataProtocol.RealTimeData.vie:type_name -> MonitorDataProtocol.VIERealTime 17, // 16: MonitorDataProtocol.RealTimeData.tmd:type_name -> MonitorDataProtocol.TMDRealTime 15, // 17: MonitorDataProtocol.RealTimeData.vib:type_name -> MonitorDataProtocol.VIBRealTime 18, // 18: MonitorDataProtocol.RealTimeData.hsd:type_name -> MonitorDataProtocol.HSDRealTime 19, // 19: MonitorDataProtocol.RealTimeData.pws:type_name -> MonitorDataProtocol.PWSRealTime 20, // 20: MonitorDataProtocol.RealTimeData.frz:type_name -> MonitorDataProtocol.FRZRealTime 21, // 21: MonitorDataProtocol.RealTimeData.lmz:type_name -> MonitorDataProtocol.LMZRealTime 23, // 22: MonitorDataProtocol.RealTimeData.stf:type_name -> MonitorDataProtocol.STFRealTime 24, // 23: MonitorDataProtocol.RealTimeData.sco:type_name -> MonitorDataProtocol.SCORealTime 11, // 24: MonitorDataProtocol.RealTimeData.crk:type_name -> MonitorDataProtocol.CRKRealTime 25, // 25: MonitorDataProtocol.RealTimeData.cor:type_name -> MonitorDataProtocol.CORRealTime 26, // 26: MonitorDataProtocol.RealTimeData.vis:type_name -> MonitorDataProtocol.VISRealTime 27, // 27: MonitorDataProtocol.RealTimeData.str:type_name -> MonitorDataProtocol.STRRealTime 28, // 28: MonitorDataProtocol.RealTimeData.brk:type_name -> MonitorDataProtocol.BRKRealTime 29, // 29: MonitorDataProtocol.RealTimeData.btf:type_name -> MonitorDataProtocol.BTFRealTime 30, // 30: MonitorDataProtocol.RealTimeData.csp:type_name -> MonitorDataProtocol.CSPRealTime 31, // 31: MonitorDataProtocol.RealTimeData.vsb:type_name -> MonitorDataProtocol.VSBRealTime 32, // 32: MonitorDataProtocol.RealTimeData.acn:type_name -> MonitorDataProtocol.ACNRealTime 33, // 33: MonitorDataProtocol.RealTimeData.wlv:type_name -> MonitorDataProtocol.WLVRealTime 34, // 34: MonitorDataProtocol.RealTimeData.pld:type_name -> MonitorDataProtocol.PLDRealTime 35, // 35: MonitorDataProtocol.RealTimeData.wdp:type_name -> MonitorDataProtocol.WDPRealTime 36, // 36: MonitorDataProtocol.RealTimeData.and:type_name -> MonitorDataProtocol.ANDRealTime 37, // 37: MonitorDataProtocol.RealTimeData.vid:type_name -> MonitorDataProtocol.VIDRealTime 38, // 38: MonitorDataProtocol.RealTimeData.wywd:type_name -> MonitorDataProtocol.WYWDRealTime 39, // 39: MonitorDataProtocol.RealTimeData.ypbx:type_name -> MonitorDataProtocol.YPBXRealTime 40, // 40: MonitorDataProtocol.RealTimeData.gdcj:type_name -> MonitorDataProtocol.GDCJRealTime 41, // 41: MonitorDataProtocol.RealTimeData.gysl:type_name -> MonitorDataProtocol.GYSLRealTime 42, // 42: MonitorDataProtocol.RealTimeData.lkbx:type_name -> MonitorDataProtocol.LKBXRealTime 43, // 43: MonitorDataProtocol.RealTimeData.cqyl:type_name -> MonitorDataProtocol.CQYLRealTime 44, // 44: MonitorDataProtocol.RealTimeData.crsg:type_name -> MonitorDataProtocol.CRSGRealTime 45, // 45: MonitorDataProtocol.RealTimeData.srsg:type_name -> MonitorDataProtocol.SRSGRealTime 46, // 46: MonitorDataProtocol.RealTimeData.mgyl:type_name -> MonitorDataProtocol.MGYLRealTime 47, // 47: MonitorDataProtocol.RealTimeData.ypls:type_name -> MonitorDataProtocol.YPLSRealTime 48, // 48: MonitorDataProtocol.RealTimeData.dbwy:type_name -> MonitorDataProtocol.DBWYRealTime 49, // 49: MonitorDataProtocol.RealTimeData.scwy:type_name -> MonitorDataProtocol.SCWYRealTime 50, // 50: MonitorDataProtocol.RealTimeData.dtqqx:type_name -> MonitorDataProtocol.DTQQXRealTime 51, // 51: MonitorDataProtocol.RealTimeData.dblf:type_name -> MonitorDataProtocol.DBLFRealTime 52, // 52: MonitorDataProtocol.RealTimeData.ksy:type_name -> MonitorDataProtocol.KSYRealTime 53, // 53: MonitorDataProtocol.RealTimeData.dxsw:type_name -> MonitorDataProtocol.DXSWRealTime 54, // 54: MonitorDataProtocol.RealTimeData.cqlf:type_name -> MonitorDataProtocol.CQLFRealTime 1, // 55: MonitorDataProtocol.StatisticData.monitorType:type_name -> MonitorDataProtocol.MonitoryType 56, // 56: MonitorDataProtocol.StatisticData.uan:type_name -> MonitorDataProtocol.UANStatistic 57, // 57: MonitorDataProtocol.StatisticData.rhs:type_name -> MonitorDataProtocol.RHSStatistic 58, // 58: MonitorDataProtocol.StatisticData.tmp:type_name -> MonitorDataProtocol.TMPStatistic 59, // 59: MonitorDataProtocol.StatisticData.gnss:type_name -> MonitorDataProtocol.GNSSStatistic 65, // 60: MonitorDataProtocol.StatisticData.vic:type_name -> MonitorDataProtocol.VICStatistic 61, // 61: MonitorDataProtocol.StatisticData.dis:type_name -> MonitorDataProtocol.DISStatistic 62, // 62: MonitorDataProtocol.StatisticData.hpt:type_name -> MonitorDataProtocol.HPTStatistic 64, // 63: MonitorDataProtocol.StatisticData.rsg:type_name -> MonitorDataProtocol.RSGStatistic 63, // 64: MonitorDataProtocol.StatisticData.inc:type_name -> MonitorDataProtocol.INCStatistic 67, // 65: MonitorDataProtocol.StatisticData.vie:type_name -> MonitorDataProtocol.VIEStatistic 69, // 66: MonitorDataProtocol.StatisticData.tmd:type_name -> MonitorDataProtocol.TMDStatistic 66, // 67: MonitorDataProtocol.StatisticData.vib:type_name -> MonitorDataProtocol.VIBStatistic 70, // 68: MonitorDataProtocol.StatisticData.hsd:type_name -> MonitorDataProtocol.HSDStatistic 60, // 69: MonitorDataProtocol.StatisticData.and:type_name -> MonitorDataProtocol.ANDStatistic 71, // 70: MonitorDataProtocol.StatisticData.crk:type_name -> MonitorDataProtocol.CRKStatistic 72, // 71: MonitorDataProtocol.StatisticData.frz:type_name -> MonitorDataProtocol.FRZStatistic 73, // 72: MonitorDataProtocol.StatisticData.pws:type_name -> MonitorDataProtocol.PWSStatistic 74, // 73: MonitorDataProtocol.StatisticData.vsb:type_name -> MonitorDataProtocol.VSBStatistic 75, // 74: MonitorDataProtocol.StatisticData.acn:type_name -> MonitorDataProtocol.ACNStatistic 76, // 75: MonitorDataProtocol.StatisticData.wlv:type_name -> MonitorDataProtocol.WLVStatistic 77, // 76: MonitorDataProtocol.StatisticData.btf:type_name -> MonitorDataProtocol.BTFStatistic 78, // 77: MonitorDataProtocol.StatisticData.csp:type_name -> MonitorDataProtocol.CSPStatistic 79, // 78: MonitorDataProtocol.StatisticData.pld:type_name -> MonitorDataProtocol.PLDStatistic 68, // 79: MonitorDataProtocol.StatisticData.vid:type_name -> MonitorDataProtocol.VIDStatistic 80, // 80: MonitorDataProtocol.StatisticData.wdp:type_name -> MonitorDataProtocol.WDPStatistic 81, // 81: MonitorDataProtocol.StatisticData.stf:type_name -> MonitorDataProtocol.STFStatistic 82, // 82: MonitorDataProtocol.StatisticData.sco:type_name -> MonitorDataProtocol.SCOStatistic 83, // 83: MonitorDataProtocol.StatisticData.cor:type_name -> MonitorDataProtocol.CORStatistic 84, // 84: MonitorDataProtocol.StatisticData.str:type_name -> MonitorDataProtocol.STRStatistic 85, // 85: MonitorDataProtocol.StatisticData.wywd:type_name -> MonitorDataProtocol.WYWDStatistic 86, // 86: MonitorDataProtocol.StatisticData.ypbx:type_name -> MonitorDataProtocol.YPBXStatistic 87, // 87: MonitorDataProtocol.StatisticData.gdcj:type_name -> MonitorDataProtocol.GDCJStatistic 88, // 88: MonitorDataProtocol.StatisticData.gysl:type_name -> MonitorDataProtocol.GYSLStatistic 89, // 89: MonitorDataProtocol.StatisticData.lkbx:type_name -> MonitorDataProtocol.LKBXStatistic 90, // 90: MonitorDataProtocol.StatisticData.cqyl:type_name -> MonitorDataProtocol.CQYLStatistic 91, // 91: MonitorDataProtocol.StatisticData.crsg:type_name -> MonitorDataProtocol.CRSGStatistic 92, // 92: MonitorDataProtocol.StatisticData.srsg:type_name -> MonitorDataProtocol.SRSGStatistic 93, // 93: MonitorDataProtocol.StatisticData.mgyl:type_name -> MonitorDataProtocol.MGYLStatistic 94, // 94: MonitorDataProtocol.StatisticData.ypls:type_name -> MonitorDataProtocol.YPLSStatistic 96, // 95: MonitorDataProtocol.StatisticData.dbwy:type_name -> MonitorDataProtocol.DBWYStatistic 97, // 96: MonitorDataProtocol.StatisticData.scwy:type_name -> MonitorDataProtocol.SCWYStatistic 98, // 97: MonitorDataProtocol.StatisticData.dtqqx:type_name -> MonitorDataProtocol.DTQQXStatistic 99, // 98: MonitorDataProtocol.StatisticData.dblf:type_name -> MonitorDataProtocol.DBLFStatistic 100, // 99: MonitorDataProtocol.StatisticData.ksy:type_name -> MonitorDataProtocol.KSYStatistic 95, // 100: MonitorDataProtocol.StatisticData.cqlf:type_name -> MonitorDataProtocol.CQLFStatistic 101, // 101: MonitorDataProtocol.StatisticData.dxsw:type_name -> MonitorDataProtocol.DXSWStatistic 102, // [102:102] is the sub-list for method output_type 102, // [102:102] is the sub-list for method input_type 102, // [102:102] is the sub-list for extension type_name 102, // [102:102] is the sub-list for extension extendee 0, // [0:102] is the sub-list for field type_name } func init() { file_MonitorDataProtocol_Ministry_V3_proto_init() } func file_MonitorDataProtocol_Ministry_V3_proto_init() { if File_MonitorDataProtocol_Ministry_V3_proto != nil { return } if !protoimpl.UnsafeEnabled { file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComplexData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DataDefinition); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RealTimeData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UANRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RHSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNSSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VICRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DISRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRKRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HPTRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RSGRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*INCRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIBRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIERealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HSDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PWSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FRZRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LMZRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DICRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCORealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CORRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VISRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STRRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BRKRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BTFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VSBRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ACNRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WLVRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PLDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDPRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ANDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WYWDRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YPBXRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GDCJRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GYSLRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LKBXRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CQYLRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRSGRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SRSGRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MGYLRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YPLSRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBWYRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCWYRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DTQQXRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBLFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KSYRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DXSWRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CQLFRealTime); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StatisticData); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UANStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RHSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GNSSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ANDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DISStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HPTStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*INCStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RSGStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VICStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIBStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIEStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VIDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TMDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HSDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRKStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FRZStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PWSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*VSBStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ACNStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WLVStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BTFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CSPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PLDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WDPStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCOStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CORStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*STRStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WYWDStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YPBXStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GDCJStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GYSLStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LKBXStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CQYLStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CRSGStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SRSGStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MGYLStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*YPLSStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CQLFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBWYStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SCWYStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DTQQXStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DBLFStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*KSYStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DXSWStatistic); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[1].OneofWrappers = []interface{}{ (*DataDefinition_RealTimeData)(nil), (*DataDefinition_StatisticData)(nil), } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[2].OneofWrappers = []interface{}{ (*RealTimeData_Uan)(nil), (*RealTimeData_Rhs)(nil), (*RealTimeData_Tmp)(nil), (*RealTimeData_Gnss)(nil), (*RealTimeData_Vic)(nil), (*RealTimeData_Dic)(nil), (*RealTimeData_Dis)(nil), (*RealTimeData_Hpt)(nil), (*RealTimeData_Rsg)(nil), (*RealTimeData_Inc)(nil), (*RealTimeData_Vie)(nil), (*RealTimeData_Tmd)(nil), (*RealTimeData_Vib)(nil), (*RealTimeData_Hsd)(nil), (*RealTimeData_Pws)(nil), (*RealTimeData_Frz)(nil), (*RealTimeData_Lmz)(nil), (*RealTimeData_Stf)(nil), (*RealTimeData_Sco)(nil), (*RealTimeData_Crk)(nil), (*RealTimeData_Cor)(nil), (*RealTimeData_Vis)(nil), (*RealTimeData_Str)(nil), (*RealTimeData_Brk)(nil), (*RealTimeData_Btf)(nil), (*RealTimeData_Csp)(nil), (*RealTimeData_Vsb)(nil), (*RealTimeData_Acn)(nil), (*RealTimeData_Wlv)(nil), (*RealTimeData_Pld)(nil), (*RealTimeData_Wdp)(nil), (*RealTimeData_And)(nil), (*RealTimeData_Vid)(nil), (*RealTimeData_Wywd)(nil), (*RealTimeData_Ypbx)(nil), (*RealTimeData_Gdcj)(nil), (*RealTimeData_Gysl)(nil), (*RealTimeData_Lkbx)(nil), (*RealTimeData_Cqyl)(nil), (*RealTimeData_Crsg)(nil), (*RealTimeData_Srsg)(nil), (*RealTimeData_Mgyl)(nil), (*RealTimeData_Ypls)(nil), (*RealTimeData_Dbwy)(nil), (*RealTimeData_Scwy)(nil), (*RealTimeData_Dtqqx)(nil), (*RealTimeData_Dblf)(nil), (*RealTimeData_Ksy)(nil), (*RealTimeData_Dxsw)(nil), (*RealTimeData_Cqlf)(nil), } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[3].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[7].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[8].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[9].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[10].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[11].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[16].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[25].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[27].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[28].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[41].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[42].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[43].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[53].OneofWrappers = []interface{}{ (*StatisticData_Uan)(nil), (*StatisticData_Rhs)(nil), (*StatisticData_Tmp)(nil), (*StatisticData_Gnss)(nil), (*StatisticData_Vic)(nil), (*StatisticData_Dis)(nil), (*StatisticData_Hpt)(nil), (*StatisticData_Rsg)(nil), (*StatisticData_Inc)(nil), (*StatisticData_Vie)(nil), (*StatisticData_Tmd)(nil), (*StatisticData_Vib)(nil), (*StatisticData_Hsd)(nil), (*StatisticData_And)(nil), (*StatisticData_Crk)(nil), (*StatisticData_Frz)(nil), (*StatisticData_Pws)(nil), (*StatisticData_Vsb)(nil), (*StatisticData_Acn)(nil), (*StatisticData_Wlv)(nil), (*StatisticData_Btf)(nil), (*StatisticData_Csp)(nil), (*StatisticData_Pld)(nil), (*StatisticData_Vid)(nil), (*StatisticData_Wdp)(nil), (*StatisticData_Stf)(nil), (*StatisticData_Sco)(nil), (*StatisticData_Cor)(nil), (*StatisticData_Str)(nil), (*StatisticData_Wywd)(nil), (*StatisticData_Ypbx)(nil), (*StatisticData_Gdcj)(nil), (*StatisticData_Gysl)(nil), (*StatisticData_Lkbx)(nil), (*StatisticData_Cqyl)(nil), (*StatisticData_Crsg)(nil), (*StatisticData_Srsg)(nil), (*StatisticData_Mgyl)(nil), (*StatisticData_Ypls)(nil), (*StatisticData_Dbwy)(nil), (*StatisticData_Scwy)(nil), (*StatisticData_Dtqqx)(nil), (*StatisticData_Dblf)(nil), (*StatisticData_Ksy)(nil), (*StatisticData_Cqlf)(nil), (*StatisticData_Dxsw)(nil), } file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[54].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[62].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[88].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[89].OneofWrappers = []interface{}{} file_MonitorDataProtocol_Ministry_V3_proto_msgTypes[90].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_MonitorDataProtocol_Ministry_V3_proto_rawDesc, NumEnums: 2, NumMessages: 100, NumExtensions: 0, NumServices: 0, }, GoTypes: file_MonitorDataProtocol_Ministry_V3_proto_goTypes, DependencyIndexes: file_MonitorDataProtocol_Ministry_V3_proto_depIdxs, EnumInfos: file_MonitorDataProtocol_Ministry_V3_proto_enumTypes, MessageInfos: file_MonitorDataProtocol_Ministry_V3_proto_msgTypes, }.Build() File_MonitorDataProtocol_Ministry_V3_proto = out.File file_MonitorDataProtocol_Ministry_V3_proto_rawDesc = nil file_MonitorDataProtocol_Ministry_V3_proto_goTypes = nil file_MonitorDataProtocol_Ministry_V3_proto_depIdxs = nil }