diff --git a/go/dmi/hw.pb.go b/go/dmi/hw.pb.go
index 21d2649..b1e16a1 100644
--- a/go/dmi/hw.pb.go
+++ b/go/dmi/hw.pb.go
@@ -24,23 +24,22 @@
 type ComponentType int32
 
 const (
-	ComponentType_COMPONENT_TYPE_UNDEFINED           ComponentType = 0
-	ComponentType_COMPONENT_TYPE_UNKNOWN             ComponentType = 1
-	ComponentType_COMPONENT_TYPE_CHASSIS             ComponentType = 2
-	ComponentType_COMPONENT_TYPE_BACKPLANE           ComponentType = 3
-	ComponentType_COMPONENT_TYPE_CONTAINER           ComponentType = 4
-	ComponentType_COMPONENT_TYPE_POWER_SUPPLY        ComponentType = 5
-	ComponentType_COMPONENT_TYPE_FAN                 ComponentType = 6
-	ComponentType_COMPONENT_TYPE_SENSOR              ComponentType = 7
-	ComponentType_COMPONENT_TYPE_MODULE              ComponentType = 8
-	ComponentType_COMPONENT_TYPE_PORT                ComponentType = 9
-	ComponentType_COMPONENT_TYPE_CPU                 ComponentType = 10
-	ComponentType_COMPONENT_TYPE_BATTERY             ComponentType = 11
-	ComponentType_COMPONENT_TYPE_STORAGE             ComponentType = 12
-	ComponentType_COMPONENT_TYPE_MEMORY              ComponentType = 13
-	ComponentType_COMPONENT_TYPE_TRANSCEIVER         ComponentType = 14
-	ComponentType_COMPONENT_TYPE_GPON_TRANSCEIVER    ComponentType = 15
-	ComponentType_COMPONENT_TYPE_XGS_PON_TRANSCEIVER ComponentType = 16
+	ComponentType_COMPONENT_TYPE_UNDEFINED    ComponentType = 0
+	ComponentType_COMPONENT_TYPE_UNKNOWN      ComponentType = 1
+	ComponentType_COMPONENT_TYPE_CHASSIS      ComponentType = 2
+	ComponentType_COMPONENT_TYPE_BACKPLANE    ComponentType = 3
+	ComponentType_COMPONENT_TYPE_CONTAINER    ComponentType = 4
+	ComponentType_COMPONENT_TYPE_POWER_SUPPLY ComponentType = 5
+	ComponentType_COMPONENT_TYPE_FAN          ComponentType = 6
+	ComponentType_COMPONENT_TYPE_SENSOR       ComponentType = 7
+	ComponentType_COMPONENT_TYPE_MODULE       ComponentType = 8
+	ComponentType_COMPONENT_TYPE_PORT         ComponentType = 9
+	ComponentType_COMPONENT_TYPE_CPU          ComponentType = 10
+	ComponentType_COMPONENT_TYPE_BATTERY      ComponentType = 11
+	ComponentType_COMPONENT_TYPE_STORAGE      ComponentType = 12
+	ComponentType_COMPONENT_TYPE_MEMORY       ComponentType = 13
+	// A component of type "TRANSCEIVER" could have 0 or more components of type "PORT" as children.
+	ComponentType_COMPONENT_TYPE_TRANSCEIVER ComponentType = 14
 )
 
 var ComponentType_name = map[int32]string{
@@ -59,28 +58,24 @@
 	12: "COMPONENT_TYPE_STORAGE",
 	13: "COMPONENT_TYPE_MEMORY",
 	14: "COMPONENT_TYPE_TRANSCEIVER",
-	15: "COMPONENT_TYPE_GPON_TRANSCEIVER",
-	16: "COMPONENT_TYPE_XGS_PON_TRANSCEIVER",
 }
 
 var ComponentType_value = map[string]int32{
-	"COMPONENT_TYPE_UNDEFINED":           0,
-	"COMPONENT_TYPE_UNKNOWN":             1,
-	"COMPONENT_TYPE_CHASSIS":             2,
-	"COMPONENT_TYPE_BACKPLANE":           3,
-	"COMPONENT_TYPE_CONTAINER":           4,
-	"COMPONENT_TYPE_POWER_SUPPLY":        5,
-	"COMPONENT_TYPE_FAN":                 6,
-	"COMPONENT_TYPE_SENSOR":              7,
-	"COMPONENT_TYPE_MODULE":              8,
-	"COMPONENT_TYPE_PORT":                9,
-	"COMPONENT_TYPE_CPU":                 10,
-	"COMPONENT_TYPE_BATTERY":             11,
-	"COMPONENT_TYPE_STORAGE":             12,
-	"COMPONENT_TYPE_MEMORY":              13,
-	"COMPONENT_TYPE_TRANSCEIVER":         14,
-	"COMPONENT_TYPE_GPON_TRANSCEIVER":    15,
-	"COMPONENT_TYPE_XGS_PON_TRANSCEIVER": 16,
+	"COMPONENT_TYPE_UNDEFINED":    0,
+	"COMPONENT_TYPE_UNKNOWN":      1,
+	"COMPONENT_TYPE_CHASSIS":      2,
+	"COMPONENT_TYPE_BACKPLANE":    3,
+	"COMPONENT_TYPE_CONTAINER":    4,
+	"COMPONENT_TYPE_POWER_SUPPLY": 5,
+	"COMPONENT_TYPE_FAN":          6,
+	"COMPONENT_TYPE_SENSOR":       7,
+	"COMPONENT_TYPE_MODULE":       8,
+	"COMPONENT_TYPE_PORT":         9,
+	"COMPONENT_TYPE_CPU":          10,
+	"COMPONENT_TYPE_BATTERY":      11,
+	"COMPONENT_TYPE_STORAGE":      12,
+	"COMPONENT_TYPE_MEMORY":       13,
+	"COMPONENT_TYPE_TRANSCEIVER":  14,
 }
 
 func (x ComponentType) String() string {
@@ -270,134 +265,134 @@
 	return fileDescriptor_d7c33d745c4ab367, []int{5}
 }
 
-type SensorValueType int32
+type DataValueType int32
 
 const (
-	SensorValueType_SENSOR_VALUE_TYPE_UNDEFINED   SensorValueType = 0
-	SensorValueType_SENSOR_VALUE_TYPE_OTHER       SensorValueType = 1
-	SensorValueType_SENSOR_VALUE_TYPE_UNKNOWN     SensorValueType = 2
-	SensorValueType_SENSOR_VALUE_TYPE_VOLTS_AC    SensorValueType = 3
-	SensorValueType_SENSOR_VALUE_TYPE_VOLTS_DC    SensorValueType = 4
-	SensorValueType_SENSOR_VALUE_TYPE_AMPERES     SensorValueType = 5
-	SensorValueType_SENSOR_VALUE_TYPE_WATTS       SensorValueType = 6
-	SensorValueType_SENSOR_VALUE_TYPE_HERTZ       SensorValueType = 7
-	SensorValueType_SENSOR_VALUE_TYPE_CELSIUS     SensorValueType = 8
-	SensorValueType_SENSOR_VALUE_TYPE_PERCENT_RH  SensorValueType = 9
-	SensorValueType_SENSOR_VALUE_TYPE_RPM         SensorValueType = 10
-	SensorValueType_SENSOR_VALUE_TYPE_CMM         SensorValueType = 11
-	SensorValueType_SENSOR_VALUE_TYPE_TRUTH_VALUE SensorValueType = 12
+	DataValueType_VALUE_TYPE_UNDEFINED   DataValueType = 0
+	DataValueType_VALUE_TYPE_OTHER       DataValueType = 1
+	DataValueType_VALUE_TYPE_UNKNOWN     DataValueType = 2
+	DataValueType_VALUE_TYPE_VOLTS_AC    DataValueType = 3
+	DataValueType_VALUE_TYPE_VOLTS_DC    DataValueType = 4
+	DataValueType_VALUE_TYPE_AMPERES     DataValueType = 5
+	DataValueType_VALUE_TYPE_WATTS       DataValueType = 6
+	DataValueType_VALUE_TYPE_HERTZ       DataValueType = 7
+	DataValueType_VALUE_TYPE_CELSIUS     DataValueType = 8
+	DataValueType_VALUE_TYPE_PERCENT_RH  DataValueType = 9
+	DataValueType_VALUE_TYPE_RPM         DataValueType = 10
+	DataValueType_VALUE_TYPE_CMM         DataValueType = 11
+	DataValueType_VALUE_TYPE_TRUTH_VALUE DataValueType = 12
 )
 
-var SensorValueType_name = map[int32]string{
-	0:  "SENSOR_VALUE_TYPE_UNDEFINED",
-	1:  "SENSOR_VALUE_TYPE_OTHER",
-	2:  "SENSOR_VALUE_TYPE_UNKNOWN",
-	3:  "SENSOR_VALUE_TYPE_VOLTS_AC",
-	4:  "SENSOR_VALUE_TYPE_VOLTS_DC",
-	5:  "SENSOR_VALUE_TYPE_AMPERES",
-	6:  "SENSOR_VALUE_TYPE_WATTS",
-	7:  "SENSOR_VALUE_TYPE_HERTZ",
-	8:  "SENSOR_VALUE_TYPE_CELSIUS",
-	9:  "SENSOR_VALUE_TYPE_PERCENT_RH",
-	10: "SENSOR_VALUE_TYPE_RPM",
-	11: "SENSOR_VALUE_TYPE_CMM",
-	12: "SENSOR_VALUE_TYPE_TRUTH_VALUE",
+var DataValueType_name = map[int32]string{
+	0:  "VALUE_TYPE_UNDEFINED",
+	1:  "VALUE_TYPE_OTHER",
+	2:  "VALUE_TYPE_UNKNOWN",
+	3:  "VALUE_TYPE_VOLTS_AC",
+	4:  "VALUE_TYPE_VOLTS_DC",
+	5:  "VALUE_TYPE_AMPERES",
+	6:  "VALUE_TYPE_WATTS",
+	7:  "VALUE_TYPE_HERTZ",
+	8:  "VALUE_TYPE_CELSIUS",
+	9:  "VALUE_TYPE_PERCENT_RH",
+	10: "VALUE_TYPE_RPM",
+	11: "VALUE_TYPE_CMM",
+	12: "VALUE_TYPE_TRUTH_VALUE",
 }
 
-var SensorValueType_value = map[string]int32{
-	"SENSOR_VALUE_TYPE_UNDEFINED":   0,
-	"SENSOR_VALUE_TYPE_OTHER":       1,
-	"SENSOR_VALUE_TYPE_UNKNOWN":     2,
-	"SENSOR_VALUE_TYPE_VOLTS_AC":    3,
-	"SENSOR_VALUE_TYPE_VOLTS_DC":    4,
-	"SENSOR_VALUE_TYPE_AMPERES":     5,
-	"SENSOR_VALUE_TYPE_WATTS":       6,
-	"SENSOR_VALUE_TYPE_HERTZ":       7,
-	"SENSOR_VALUE_TYPE_CELSIUS":     8,
-	"SENSOR_VALUE_TYPE_PERCENT_RH":  9,
-	"SENSOR_VALUE_TYPE_RPM":         10,
-	"SENSOR_VALUE_TYPE_CMM":         11,
-	"SENSOR_VALUE_TYPE_TRUTH_VALUE": 12,
+var DataValueType_value = map[string]int32{
+	"VALUE_TYPE_UNDEFINED":   0,
+	"VALUE_TYPE_OTHER":       1,
+	"VALUE_TYPE_UNKNOWN":     2,
+	"VALUE_TYPE_VOLTS_AC":    3,
+	"VALUE_TYPE_VOLTS_DC":    4,
+	"VALUE_TYPE_AMPERES":     5,
+	"VALUE_TYPE_WATTS":       6,
+	"VALUE_TYPE_HERTZ":       7,
+	"VALUE_TYPE_CELSIUS":     8,
+	"VALUE_TYPE_PERCENT_RH":  9,
+	"VALUE_TYPE_RPM":         10,
+	"VALUE_TYPE_CMM":         11,
+	"VALUE_TYPE_TRUTH_VALUE": 12,
 }
 
-func (x SensorValueType) String() string {
-	return proto.EnumName(SensorValueType_name, int32(x))
+func (x DataValueType) String() string {
+	return proto.EnumName(DataValueType_name, int32(x))
 }
 
-func (SensorValueType) EnumDescriptor() ([]byte, []int) {
+func (DataValueType) EnumDescriptor() ([]byte, []int) {
 	return fileDescriptor_d7c33d745c4ab367, []int{6}
 }
 
-type SensorValueScale int32
+type ValueScale int32
 
 const (
-	SensorValueScale_SENSOR_VALUE_SCALE_UNDEFINED SensorValueScale = 0
-	SensorValueScale_SENSOR_VALUE_SCALE_YOCTO     SensorValueScale = 1
-	SensorValueScale_SENSOR_VALUE_SCALE_ZEPTO     SensorValueScale = 2
-	SensorValueScale_SENSOR_VALUE_SCALE_ATTO      SensorValueScale = 3
-	SensorValueScale_SENSOR_VALUE_SCALE_FEMTO     SensorValueScale = 4
-	SensorValueScale_SENSOR_VALUE_SCALE_PICO      SensorValueScale = 5
-	SensorValueScale_SENSOR_VALUE_SCALE_NANO      SensorValueScale = 6
-	SensorValueScale_SENSOR_VALUE_SCALE_MICRO     SensorValueScale = 7
-	SensorValueScale_SENSOR_VALUE_SCALE_MILLI     SensorValueScale = 8
-	SensorValueScale_SENSOR_VALUE_SCALE_UNITS     SensorValueScale = 9
-	SensorValueScale_SENSOR_VALUE_SCALE_KILO      SensorValueScale = 10
-	SensorValueScale_SENSOR_VALUE_SCALE_MEGA      SensorValueScale = 11
-	SensorValueScale_SENSOR_VALUE_SCALE_GIGA      SensorValueScale = 12
-	SensorValueScale_SENSOR_VALUE_SCALE_TERA      SensorValueScale = 13
-	SensorValueScale_SENSOR_VALUE_SCALE_PETA      SensorValueScale = 14
-	SensorValueScale_SENSOR_VALUE_SCALE_EXA       SensorValueScale = 15
-	SensorValueScale_SENSOR_VALUE_SCALE_ZETTA     SensorValueScale = 16
-	SensorValueScale_SENSOR_VALUE_SCALE_YOTTA     SensorValueScale = 17
+	ValueScale_VALUE_SCALE_UNDEFINED ValueScale = 0
+	ValueScale_VALUE_SCALE_YOCTO     ValueScale = 1
+	ValueScale_VALUE_SCALE_ZEPTO     ValueScale = 2
+	ValueScale_VALUE_SCALE_ATTO      ValueScale = 3
+	ValueScale_VALUE_SCALE_FEMTO     ValueScale = 4
+	ValueScale_VALUE_SCALE_PICO      ValueScale = 5
+	ValueScale_VALUE_SCALE_NANO      ValueScale = 6
+	ValueScale_VALUE_SCALE_MICRO     ValueScale = 7
+	ValueScale_VALUE_SCALE_MILLI     ValueScale = 8
+	ValueScale_VALUE_SCALE_UNITS     ValueScale = 9
+	ValueScale_VALUE_SCALE_KILO      ValueScale = 10
+	ValueScale_VALUE_SCALE_MEGA      ValueScale = 11
+	ValueScale_VALUE_SCALE_GIGA      ValueScale = 12
+	ValueScale_VALUE_SCALE_TERA      ValueScale = 13
+	ValueScale_VALUE_SCALE_PETA      ValueScale = 14
+	ValueScale_VALUE_SCALE_EXA       ValueScale = 15
+	ValueScale_VALUE_SCALE_ZETTA     ValueScale = 16
+	ValueScale_VALUE_SCALE_YOTTA     ValueScale = 17
 )
 
-var SensorValueScale_name = map[int32]string{
-	0:  "SENSOR_VALUE_SCALE_UNDEFINED",
-	1:  "SENSOR_VALUE_SCALE_YOCTO",
-	2:  "SENSOR_VALUE_SCALE_ZEPTO",
-	3:  "SENSOR_VALUE_SCALE_ATTO",
-	4:  "SENSOR_VALUE_SCALE_FEMTO",
-	5:  "SENSOR_VALUE_SCALE_PICO",
-	6:  "SENSOR_VALUE_SCALE_NANO",
-	7:  "SENSOR_VALUE_SCALE_MICRO",
-	8:  "SENSOR_VALUE_SCALE_MILLI",
-	9:  "SENSOR_VALUE_SCALE_UNITS",
-	10: "SENSOR_VALUE_SCALE_KILO",
-	11: "SENSOR_VALUE_SCALE_MEGA",
-	12: "SENSOR_VALUE_SCALE_GIGA",
-	13: "SENSOR_VALUE_SCALE_TERA",
-	14: "SENSOR_VALUE_SCALE_PETA",
-	15: "SENSOR_VALUE_SCALE_EXA",
-	16: "SENSOR_VALUE_SCALE_ZETTA",
-	17: "SENSOR_VALUE_SCALE_YOTTA",
+var ValueScale_name = map[int32]string{
+	0:  "VALUE_SCALE_UNDEFINED",
+	1:  "VALUE_SCALE_YOCTO",
+	2:  "VALUE_SCALE_ZEPTO",
+	3:  "VALUE_SCALE_ATTO",
+	4:  "VALUE_SCALE_FEMTO",
+	5:  "VALUE_SCALE_PICO",
+	6:  "VALUE_SCALE_NANO",
+	7:  "VALUE_SCALE_MICRO",
+	8:  "VALUE_SCALE_MILLI",
+	9:  "VALUE_SCALE_UNITS",
+	10: "VALUE_SCALE_KILO",
+	11: "VALUE_SCALE_MEGA",
+	12: "VALUE_SCALE_GIGA",
+	13: "VALUE_SCALE_TERA",
+	14: "VALUE_SCALE_PETA",
+	15: "VALUE_SCALE_EXA",
+	16: "VALUE_SCALE_ZETTA",
+	17: "VALUE_SCALE_YOTTA",
 }
 
-var SensorValueScale_value = map[string]int32{
-	"SENSOR_VALUE_SCALE_UNDEFINED": 0,
-	"SENSOR_VALUE_SCALE_YOCTO":     1,
-	"SENSOR_VALUE_SCALE_ZEPTO":     2,
-	"SENSOR_VALUE_SCALE_ATTO":      3,
-	"SENSOR_VALUE_SCALE_FEMTO":     4,
-	"SENSOR_VALUE_SCALE_PICO":      5,
-	"SENSOR_VALUE_SCALE_NANO":      6,
-	"SENSOR_VALUE_SCALE_MICRO":     7,
-	"SENSOR_VALUE_SCALE_MILLI":     8,
-	"SENSOR_VALUE_SCALE_UNITS":     9,
-	"SENSOR_VALUE_SCALE_KILO":      10,
-	"SENSOR_VALUE_SCALE_MEGA":      11,
-	"SENSOR_VALUE_SCALE_GIGA":      12,
-	"SENSOR_VALUE_SCALE_TERA":      13,
-	"SENSOR_VALUE_SCALE_PETA":      14,
-	"SENSOR_VALUE_SCALE_EXA":       15,
-	"SENSOR_VALUE_SCALE_ZETTA":     16,
-	"SENSOR_VALUE_SCALE_YOTTA":     17,
+var ValueScale_value = map[string]int32{
+	"VALUE_SCALE_UNDEFINED": 0,
+	"VALUE_SCALE_YOCTO":     1,
+	"VALUE_SCALE_ZEPTO":     2,
+	"VALUE_SCALE_ATTO":      3,
+	"VALUE_SCALE_FEMTO":     4,
+	"VALUE_SCALE_PICO":      5,
+	"VALUE_SCALE_NANO":      6,
+	"VALUE_SCALE_MICRO":     7,
+	"VALUE_SCALE_MILLI":     8,
+	"VALUE_SCALE_UNITS":     9,
+	"VALUE_SCALE_KILO":      10,
+	"VALUE_SCALE_MEGA":      11,
+	"VALUE_SCALE_GIGA":      12,
+	"VALUE_SCALE_TERA":      13,
+	"VALUE_SCALE_PETA":      14,
+	"VALUE_SCALE_EXA":       15,
+	"VALUE_SCALE_ZETTA":     16,
+	"VALUE_SCALE_YOTTA":     17,
 }
 
-func (x SensorValueScale) String() string {
-	return proto.EnumName(SensorValueScale_name, int32(x))
+func (x ValueScale) String() string {
+	return proto.EnumName(ValueScale_name, int32(x))
 }
 
-func (SensorValueScale) EnumDescriptor() ([]byte, []int) {
+func (ValueScale) EnumDescriptor() ([]byte, []int) {
 	return fileDescriptor_d7c33d745c4ab367, []int{7}
 }
 
@@ -432,6 +427,270 @@
 	return fileDescriptor_d7c33d745c4ab367, []int{8}
 }
 
+type PortComponentAttributes_ConnectorType int32
+
+const (
+	PortComponentAttributes_CONNECTOR_TYPE_UNDEFINED PortComponentAttributes_ConnectorType = 0
+	PortComponentAttributes_RJ45                     PortComponentAttributes_ConnectorType = 1
+	PortComponentAttributes_FIBER_LC                 PortComponentAttributes_ConnectorType = 2
+	PortComponentAttributes_FIBER_SC_PC              PortComponentAttributes_ConnectorType = 3
+	PortComponentAttributes_FIBER_MPO                PortComponentAttributes_ConnectorType = 4
+)
+
+var PortComponentAttributes_ConnectorType_name = map[int32]string{
+	0: "CONNECTOR_TYPE_UNDEFINED",
+	1: "RJ45",
+	2: "FIBER_LC",
+	3: "FIBER_SC_PC",
+	4: "FIBER_MPO",
+}
+
+var PortComponentAttributes_ConnectorType_value = map[string]int32{
+	"CONNECTOR_TYPE_UNDEFINED": 0,
+	"RJ45":                     1,
+	"FIBER_LC":                 2,
+	"FIBER_SC_PC":              3,
+	"FIBER_MPO":                4,
+}
+
+func (x PortComponentAttributes_ConnectorType) String() string {
+	return proto.EnumName(PortComponentAttributes_ConnectorType_name, int32(x))
+}
+
+func (PortComponentAttributes_ConnectorType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{5, 0}
+}
+
+type PortComponentAttributes_Speed int32
+
+const (
+	PortComponentAttributes_SPEED_UNDEFINED PortComponentAttributes_Speed = 0
+	PortComponentAttributes_DYNAMIC         PortComponentAttributes_Speed = 1
+	PortComponentAttributes_GIGABIT_1       PortComponentAttributes_Speed = 2
+	PortComponentAttributes_GIGABIT_10      PortComponentAttributes_Speed = 3
+	PortComponentAttributes_GIGABIT_25      PortComponentAttributes_Speed = 4
+	PortComponentAttributes_GIGABIT_40      PortComponentAttributes_Speed = 5
+	PortComponentAttributes_GIGABIT_100     PortComponentAttributes_Speed = 6
+	PortComponentAttributes_GIGABIT_400     PortComponentAttributes_Speed = 7
+	PortComponentAttributes_MEGABIT_2500    PortComponentAttributes_Speed = 8
+	PortComponentAttributes_MEGABIT_1250    PortComponentAttributes_Speed = 9
+)
+
+var PortComponentAttributes_Speed_name = map[int32]string{
+	0: "SPEED_UNDEFINED",
+	1: "DYNAMIC",
+	2: "GIGABIT_1",
+	3: "GIGABIT_10",
+	4: "GIGABIT_25",
+	5: "GIGABIT_40",
+	6: "GIGABIT_100",
+	7: "GIGABIT_400",
+	8: "MEGABIT_2500",
+	9: "MEGABIT_1250",
+}
+
+var PortComponentAttributes_Speed_value = map[string]int32{
+	"SPEED_UNDEFINED": 0,
+	"DYNAMIC":         1,
+	"GIGABIT_1":       2,
+	"GIGABIT_10":      3,
+	"GIGABIT_25":      4,
+	"GIGABIT_40":      5,
+	"GIGABIT_100":     6,
+	"GIGABIT_400":     7,
+	"MEGABIT_2500":    8,
+	"MEGABIT_1250":    9,
+}
+
+func (x PortComponentAttributes_Speed) String() string {
+	return proto.EnumName(PortComponentAttributes_Speed_name, int32(x))
+}
+
+func (PortComponentAttributes_Speed) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{5, 1}
+}
+
+type PortComponentAttributes_Protocol int32
+
+const (
+	PortComponentAttributes_PROTOCOL_UNDEFINED PortComponentAttributes_Protocol = 0
+	PortComponentAttributes_ETHERNET           PortComponentAttributes_Protocol = 1
+	PortComponentAttributes_GPON               PortComponentAttributes_Protocol = 2
+	PortComponentAttributes_XGPON              PortComponentAttributes_Protocol = 3
+	PortComponentAttributes_XGSPON             PortComponentAttributes_Protocol = 4
+	PortComponentAttributes_GFAST              PortComponentAttributes_Protocol = 5
+	PortComponentAttributes_SERIAL             PortComponentAttributes_Protocol = 6
+	PortComponentAttributes_EPON               PortComponentAttributes_Protocol = 7
+)
+
+var PortComponentAttributes_Protocol_name = map[int32]string{
+	0: "PROTOCOL_UNDEFINED",
+	1: "ETHERNET",
+	2: "GPON",
+	3: "XGPON",
+	4: "XGSPON",
+	5: "GFAST",
+	6: "SERIAL",
+	7: "EPON",
+}
+
+var PortComponentAttributes_Protocol_value = map[string]int32{
+	"PROTOCOL_UNDEFINED": 0,
+	"ETHERNET":           1,
+	"GPON":               2,
+	"XGPON":              3,
+	"XGSPON":             4,
+	"GFAST":              5,
+	"SERIAL":             6,
+	"EPON":               7,
+}
+
+func (x PortComponentAttributes_Protocol) String() string {
+	return proto.EnumName(PortComponentAttributes_Protocol_name, int32(x))
+}
+
+func (PortComponentAttributes_Protocol) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{5, 2}
+}
+
+type PsuComponentAttributes_SupportedVoltage int32
+
+const (
+	PsuComponentAttributes_SUPPORTED_VOLTAGE_UNDEFINED PsuComponentAttributes_SupportedVoltage = 0
+	PsuComponentAttributes_V48                         PsuComponentAttributes_SupportedVoltage = 1
+	PsuComponentAttributes_V230                        PsuComponentAttributes_SupportedVoltage = 2
+	PsuComponentAttributes_V115                        PsuComponentAttributes_SupportedVoltage = 3
+)
+
+var PsuComponentAttributes_SupportedVoltage_name = map[int32]string{
+	0: "SUPPORTED_VOLTAGE_UNDEFINED",
+	1: "V48",
+	2: "V230",
+	3: "V115",
+}
+
+var PsuComponentAttributes_SupportedVoltage_value = map[string]int32{
+	"SUPPORTED_VOLTAGE_UNDEFINED": 0,
+	"V48":                         1,
+	"V230":                        2,
+	"V115":                        3,
+}
+
+func (x PsuComponentAttributes_SupportedVoltage) String() string {
+	return proto.EnumName(PsuComponentAttributes_SupportedVoltage_name, int32(x))
+}
+
+func (PsuComponentAttributes_SupportedVoltage) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{7, 0}
+}
+
+type TransceiverComponentsAttributes_FormFactor int32
+
+const (
+	TransceiverComponentsAttributes_FORM_FACTOR_UNKNOWN TransceiverComponentsAttributes_FormFactor = 0
+	TransceiverComponentsAttributes_QSFP                TransceiverComponentsAttributes_FormFactor = 1
+	TransceiverComponentsAttributes_QSFP_PLUS           TransceiverComponentsAttributes_FormFactor = 2
+	TransceiverComponentsAttributes_QSFP28              TransceiverComponentsAttributes_FormFactor = 3
+	TransceiverComponentsAttributes_SFP                 TransceiverComponentsAttributes_FormFactor = 4
+	TransceiverComponentsAttributes_SFP_PLUS            TransceiverComponentsAttributes_FormFactor = 5
+	TransceiverComponentsAttributes_XFP                 TransceiverComponentsAttributes_FormFactor = 6
+	TransceiverComponentsAttributes_CFP4                TransceiverComponentsAttributes_FormFactor = 7
+	TransceiverComponentsAttributes_CFP2                TransceiverComponentsAttributes_FormFactor = 8
+	TransceiverComponentsAttributes_CPAK                TransceiverComponentsAttributes_FormFactor = 9
+	TransceiverComponentsAttributes_X2                  TransceiverComponentsAttributes_FormFactor = 10
+	TransceiverComponentsAttributes_OTHER               TransceiverComponentsAttributes_FormFactor = 11
+	TransceiverComponentsAttributes_CFP                 TransceiverComponentsAttributes_FormFactor = 12
+	TransceiverComponentsAttributes_CFP2_ACO            TransceiverComponentsAttributes_FormFactor = 13
+	TransceiverComponentsAttributes_CFP2_DCO            TransceiverComponentsAttributes_FormFactor = 14
+)
+
+var TransceiverComponentsAttributes_FormFactor_name = map[int32]string{
+	0:  "FORM_FACTOR_UNKNOWN",
+	1:  "QSFP",
+	2:  "QSFP_PLUS",
+	3:  "QSFP28",
+	4:  "SFP",
+	5:  "SFP_PLUS",
+	6:  "XFP",
+	7:  "CFP4",
+	8:  "CFP2",
+	9:  "CPAK",
+	10: "X2",
+	11: "OTHER",
+	12: "CFP",
+	13: "CFP2_ACO",
+	14: "CFP2_DCO",
+}
+
+var TransceiverComponentsAttributes_FormFactor_value = map[string]int32{
+	"FORM_FACTOR_UNKNOWN": 0,
+	"QSFP":                1,
+	"QSFP_PLUS":           2,
+	"QSFP28":              3,
+	"SFP":                 4,
+	"SFP_PLUS":            5,
+	"XFP":                 6,
+	"CFP4":                7,
+	"CFP2":                8,
+	"CPAK":                9,
+	"X2":                  10,
+	"OTHER":               11,
+	"CFP":                 12,
+	"CFP2_ACO":            13,
+	"CFP2_DCO":            14,
+}
+
+func (x TransceiverComponentsAttributes_FormFactor) String() string {
+	return proto.EnumName(TransceiverComponentsAttributes_FormFactor_name, int32(x))
+}
+
+func (TransceiverComponentsAttributes_FormFactor) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{8, 0}
+}
+
+type TransceiverComponentsAttributes_Type int32
+
+const (
+	TransceiverComponentsAttributes_TYPE_UNKNOWN TransceiverComponentsAttributes_Type = 0
+	TransceiverComponentsAttributes_ETHERNET     TransceiverComponentsAttributes_Type = 1
+	TransceiverComponentsAttributes_GPON         TransceiverComponentsAttributes_Type = 2
+	TransceiverComponentsAttributes_XGPON        TransceiverComponentsAttributes_Type = 3
+	TransceiverComponentsAttributes_XGSPON       TransceiverComponentsAttributes_Type = 4
+	TransceiverComponentsAttributes_CPON         TransceiverComponentsAttributes_Type = 5
+	TransceiverComponentsAttributes_NG_PON2      TransceiverComponentsAttributes_Type = 6
+	TransceiverComponentsAttributes_EPON         TransceiverComponentsAttributes_Type = 7
+)
+
+var TransceiverComponentsAttributes_Type_name = map[int32]string{
+	0: "TYPE_UNKNOWN",
+	1: "ETHERNET",
+	2: "GPON",
+	3: "XGPON",
+	4: "XGSPON",
+	5: "CPON",
+	6: "NG_PON2",
+	7: "EPON",
+}
+
+var TransceiverComponentsAttributes_Type_value = map[string]int32{
+	"TYPE_UNKNOWN": 0,
+	"ETHERNET":     1,
+	"GPON":         2,
+	"XGPON":        3,
+	"XGSPON":       4,
+	"CPON":         5,
+	"NG_PON2":      6,
+	"EPON":         7,
+}
+
+func (x TransceiverComponentsAttributes_Type) String() string {
+	return proto.EnumName(TransceiverComponentsAttributes_Type_name, int32(x))
+}
+
+func (TransceiverComponentsAttributes_Type) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{8, 1}
+}
+
 type Uuid struct {
 	Uuid                 string   `protobuf:"bytes,1,opt,name=uuid,proto3" json:"uuid,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -630,8 +889,8 @@
 
 type ComponentSensorData struct {
 	Value           int32                `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
-	Type            SensorValueType      `protobuf:"varint,2,opt,name=type,proto3,enum=dmi.SensorValueType" json:"type,omitempty"`
-	Scale           SensorValueScale     `protobuf:"varint,3,opt,name=scale,proto3,enum=dmi.SensorValueScale" json:"scale,omitempty"`
+	Type            DataValueType        `protobuf:"varint,2,opt,name=type,proto3,enum=dmi.DataValueType" json:"type,omitempty"`
+	Scale           ValueScale           `protobuf:"varint,3,opt,name=scale,proto3,enum=dmi.ValueScale" json:"scale,omitempty"`
 	Precision       int32                `protobuf:"varint,4,opt,name=precision,proto3" json:"precision,omitempty"`
 	Status          SensorStatus         `protobuf:"varint,5,opt,name=status,proto3,enum=dmi.SensorStatus" json:"status,omitempty"`
 	UnitsDisplay    string               `protobuf:"bytes,6,opt,name=units_display,json=unitsDisplay,proto3" json:"units_display,omitempty"`
@@ -676,18 +935,18 @@
 	return 0
 }
 
-func (m *ComponentSensorData) GetType() SensorValueType {
+func (m *ComponentSensorData) GetType() DataValueType {
 	if m != nil {
 		return m.Type
 	}
-	return SensorValueType_SENSOR_VALUE_TYPE_UNDEFINED
+	return DataValueType_VALUE_TYPE_UNDEFINED
 }
 
-func (m *ComponentSensorData) GetScale() SensorValueScale {
+func (m *ComponentSensorData) GetScale() ValueScale {
 	if m != nil {
 		return m.Scale
 	}
-	return SensorValueScale_SENSOR_VALUE_SCALE_UNDEFINED
+	return ValueScale_VALUE_SCALE_UNDEFINED
 }
 
 func (m *ComponentSensorData) GetPrecision() int32 {
@@ -732,40 +991,280 @@
 	return ""
 }
 
+type PortComponentAttributes struct {
+	ConnectorType        PortComponentAttributes_ConnectorType `protobuf:"varint,1,opt,name=connector_type,json=connectorType,proto3,enum=dmi.PortComponentAttributes_ConnectorType" json:"connector_type,omitempty"`
+	Speed                PortComponentAttributes_Speed         `protobuf:"varint,2,opt,name=speed,proto3,enum=dmi.PortComponentAttributes_Speed" json:"speed,omitempty"`
+	Protocol             PortComponentAttributes_Protocol      `protobuf:"varint,3,opt,name=protocol,proto3,enum=dmi.PortComponentAttributes_Protocol" json:"protocol,omitempty"`
+	PhysicalLabel        string                                `protobuf:"bytes,4,opt,name=physical_label,json=physicalLabel,proto3" json:"physical_label,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                              `json:"-"`
+	XXX_unrecognized     []byte                                `json:"-"`
+	XXX_sizecache        int32                                 `json:"-"`
+}
+
+func (m *PortComponentAttributes) Reset()         { *m = PortComponentAttributes{} }
+func (m *PortComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*PortComponentAttributes) ProtoMessage()    {}
+func (*PortComponentAttributes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{5}
+}
+
+func (m *PortComponentAttributes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_PortComponentAttributes.Unmarshal(m, b)
+}
+func (m *PortComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_PortComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *PortComponentAttributes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PortComponentAttributes.Merge(m, src)
+}
+func (m *PortComponentAttributes) XXX_Size() int {
+	return xxx_messageInfo_PortComponentAttributes.Size(m)
+}
+func (m *PortComponentAttributes) XXX_DiscardUnknown() {
+	xxx_messageInfo_PortComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PortComponentAttributes proto.InternalMessageInfo
+
+func (m *PortComponentAttributes) GetConnectorType() PortComponentAttributes_ConnectorType {
+	if m != nil {
+		return m.ConnectorType
+	}
+	return PortComponentAttributes_CONNECTOR_TYPE_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetSpeed() PortComponentAttributes_Speed {
+	if m != nil {
+		return m.Speed
+	}
+	return PortComponentAttributes_SPEED_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetProtocol() PortComponentAttributes_Protocol {
+	if m != nil {
+		return m.Protocol
+	}
+	return PortComponentAttributes_PROTOCOL_UNDEFINED
+}
+
+func (m *PortComponentAttributes) GetPhysicalLabel() string {
+	if m != nil {
+		return m.PhysicalLabel
+	}
+	return ""
+}
+
+type ContainerComponentAttributes struct {
+	PhysicalLabel        string   `protobuf:"bytes,1,opt,name=physical_label,json=physicalLabel,proto3" json:"physical_label,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *ContainerComponentAttributes) Reset()         { *m = ContainerComponentAttributes{} }
+func (m *ContainerComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*ContainerComponentAttributes) ProtoMessage()    {}
+func (*ContainerComponentAttributes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{6}
+}
+
+func (m *ContainerComponentAttributes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ContainerComponentAttributes.Unmarshal(m, b)
+}
+func (m *ContainerComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ContainerComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *ContainerComponentAttributes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ContainerComponentAttributes.Merge(m, src)
+}
+func (m *ContainerComponentAttributes) XXX_Size() int {
+	return xxx_messageInfo_ContainerComponentAttributes.Size(m)
+}
+func (m *ContainerComponentAttributes) XXX_DiscardUnknown() {
+	xxx_messageInfo_ContainerComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ContainerComponentAttributes proto.InternalMessageInfo
+
+func (m *ContainerComponentAttributes) GetPhysicalLabel() string {
+	if m != nil {
+		return m.PhysicalLabel
+	}
+	return ""
+}
+
+type PsuComponentAttributes struct {
+	SupportedVoltage     PsuComponentAttributes_SupportedVoltage `protobuf:"varint,1,opt,name=supported_voltage,json=supportedVoltage,proto3,enum=dmi.PsuComponentAttributes_SupportedVoltage" json:"supported_voltage,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                                `json:"-"`
+	XXX_unrecognized     []byte                                  `json:"-"`
+	XXX_sizecache        int32                                   `json:"-"`
+}
+
+func (m *PsuComponentAttributes) Reset()         { *m = PsuComponentAttributes{} }
+func (m *PsuComponentAttributes) String() string { return proto.CompactTextString(m) }
+func (*PsuComponentAttributes) ProtoMessage()    {}
+func (*PsuComponentAttributes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{7}
+}
+
+func (m *PsuComponentAttributes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_PsuComponentAttributes.Unmarshal(m, b)
+}
+func (m *PsuComponentAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_PsuComponentAttributes.Marshal(b, m, deterministic)
+}
+func (m *PsuComponentAttributes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_PsuComponentAttributes.Merge(m, src)
+}
+func (m *PsuComponentAttributes) XXX_Size() int {
+	return xxx_messageInfo_PsuComponentAttributes.Size(m)
+}
+func (m *PsuComponentAttributes) XXX_DiscardUnknown() {
+	xxx_messageInfo_PsuComponentAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_PsuComponentAttributes proto.InternalMessageInfo
+
+func (m *PsuComponentAttributes) GetSupportedVoltage() PsuComponentAttributes_SupportedVoltage {
+	if m != nil {
+		return m.SupportedVoltage
+	}
+	return PsuComponentAttributes_SUPPORTED_VOLTAGE_UNDEFINED
+}
+
+type TransceiverComponentsAttributes struct {
+	FormFactor TransceiverComponentsAttributes_FormFactor `protobuf:"varint,1,opt,name=form_factor,json=formFactor,proto3,enum=dmi.TransceiverComponentsAttributes_FormFactor" json:"form_factor,omitempty"`
+	TransType  TransceiverComponentsAttributes_Type       `protobuf:"varint,2,opt,name=trans_type,json=transType,proto3,enum=dmi.TransceiverComponentsAttributes_Type" json:"trans_type,omitempty"`
+	// The maximum reach that can be achieved by this transceiver
+	MaxDistance      uint32     `protobuf:"varint,3,opt,name=max_distance,json=maxDistance,proto3" json:"max_distance,omitempty"`
+	MaxDistanceScale ValueScale `protobuf:"varint,4,opt,name=max_distance_scale,json=maxDistanceScale,proto3,enum=dmi.ValueScale" json:"max_distance_scale,omitempty"`
+	// The receive and transmit wavelengths that the transeiver operates on
+	RxWavelength         []uint32   `protobuf:"varint,5,rep,packed,name=rx_wavelength,json=rxWavelength,proto3" json:"rx_wavelength,omitempty"`
+	TxWavelength         []uint32   `protobuf:"varint,6,rep,packed,name=tx_wavelength,json=txWavelength,proto3" json:"tx_wavelength,omitempty"`
+	WavelengthScale      ValueScale `protobuf:"varint,7,opt,name=wavelength_scale,json=wavelengthScale,proto3,enum=dmi.ValueScale" json:"wavelength_scale,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
+}
+
+func (m *TransceiverComponentsAttributes) Reset()         { *m = TransceiverComponentsAttributes{} }
+func (m *TransceiverComponentsAttributes) String() string { return proto.CompactTextString(m) }
+func (*TransceiverComponentsAttributes) ProtoMessage()    {}
+func (*TransceiverComponentsAttributes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{8}
+}
+
+func (m *TransceiverComponentsAttributes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_TransceiverComponentsAttributes.Unmarshal(m, b)
+}
+func (m *TransceiverComponentsAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_TransceiverComponentsAttributes.Marshal(b, m, deterministic)
+}
+func (m *TransceiverComponentsAttributes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_TransceiverComponentsAttributes.Merge(m, src)
+}
+func (m *TransceiverComponentsAttributes) XXX_Size() int {
+	return xxx_messageInfo_TransceiverComponentsAttributes.Size(m)
+}
+func (m *TransceiverComponentsAttributes) XXX_DiscardUnknown() {
+	xxx_messageInfo_TransceiverComponentsAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TransceiverComponentsAttributes proto.InternalMessageInfo
+
+func (m *TransceiverComponentsAttributes) GetFormFactor() TransceiverComponentsAttributes_FormFactor {
+	if m != nil {
+		return m.FormFactor
+	}
+	return TransceiverComponentsAttributes_FORM_FACTOR_UNKNOWN
+}
+
+func (m *TransceiverComponentsAttributes) GetTransType() TransceiverComponentsAttributes_Type {
+	if m != nil {
+		return m.TransType
+	}
+	return TransceiverComponentsAttributes_TYPE_UNKNOWN
+}
+
+func (m *TransceiverComponentsAttributes) GetMaxDistance() uint32 {
+	if m != nil {
+		return m.MaxDistance
+	}
+	return 0
+}
+
+func (m *TransceiverComponentsAttributes) GetMaxDistanceScale() ValueScale {
+	if m != nil {
+		return m.MaxDistanceScale
+	}
+	return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
+func (m *TransceiverComponentsAttributes) GetRxWavelength() []uint32 {
+	if m != nil {
+		return m.RxWavelength
+	}
+	return nil
+}
+
+func (m *TransceiverComponentsAttributes) GetTxWavelength() []uint32 {
+	if m != nil {
+		return m.TxWavelength
+	}
+	return nil
+}
+
+func (m *TransceiverComponentsAttributes) GetWavelengthScale() ValueScale {
+	if m != nil {
+		return m.WavelengthScale
+	}
+	return ValueScale_VALUE_SCALE_UNDEFINED
+}
+
 type Component struct {
-	// The name of a component uniquely identifies an component within the Hardware
+	// The name of a component uniquely identifies a component within the hardware
 	Name        string        `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
 	Class       ComponentType `protobuf:"varint,2,opt,name=class,proto3,enum=dmi.ComponentType" json:"class,omitempty"`
 	Description string        `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
-	// The name of the parent of this component, empty "" in case of the root component
-	Parent       string               `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
-	ParentRelPos int32                `protobuf:"varint,5,opt,name=parent_rel_pos,json=parentRelPos,proto3" json:"parent_rel_pos,omitempty"`
-	Children     []*Component         `protobuf:"bytes,6,rep,name=children,proto3" json:"children,omitempty"`
-	HardwareRev  string               `protobuf:"bytes,7,opt,name=hardware_rev,json=hardwareRev,proto3" json:"hardware_rev,omitempty"`
-	FirmwareRev  string               `protobuf:"bytes,8,opt,name=firmware_rev,json=firmwareRev,proto3" json:"firmware_rev,omitempty"`
-	SoftwareRev  string               `protobuf:"bytes,9,opt,name=software_rev,json=softwareRev,proto3" json:"software_rev,omitempty"`
-	SerialNum    string               `protobuf:"bytes,10,opt,name=serial_num,json=serialNum,proto3" json:"serial_num,omitempty"`
-	MfgName      string               `protobuf:"bytes,11,opt,name=mfg_name,json=mfgName,proto3" json:"mfg_name,omitempty"`
-	ModelName    string               `protobuf:"bytes,12,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
-	Alias        string               `protobuf:"bytes,13,opt,name=alias,proto3" json:"alias,omitempty"`
-	AssetId      string               `protobuf:"bytes,14,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
-	IsFru        bool                 `protobuf:"varint,15,opt,name=is_fru,json=isFru,proto3" json:"is_fru,omitempty"`
-	MfgDate      *timestamp.Timestamp `protobuf:"bytes,16,opt,name=mfg_date,json=mfgDate,proto3" json:"mfg_date,omitempty"`
-	Uri          *Uri                 `protobuf:"bytes,17,opt,name=uri,proto3" json:"uri,omitempty"`
+	// The name of the parent of this component, empty string("") in case of the root component
+	Parent       string       `protobuf:"bytes,4,opt,name=parent,proto3" json:"parent,omitempty"`
+	ParentRelPos int32        `protobuf:"varint,5,opt,name=parent_rel_pos,json=parentRelPos,proto3" json:"parent_rel_pos,omitempty"`
+	Children     []*Component `protobuf:"bytes,6,rep,name=children,proto3" json:"children,omitempty"`
+	HardwareRev  string       `protobuf:"bytes,7,opt,name=hardware_rev,json=hardwareRev,proto3" json:"hardware_rev,omitempty"`
+	FirmwareRev  string       `protobuf:"bytes,8,opt,name=firmware_rev,json=firmwareRev,proto3" json:"firmware_rev,omitempty"`
+	SoftwareRev  string       `protobuf:"bytes,9,opt,name=software_rev,json=softwareRev,proto3" json:"software_rev,omitempty"`
+	SerialNum    string       `protobuf:"bytes,10,opt,name=serial_num,json=serialNum,proto3" json:"serial_num,omitempty"`
+	MfgName      string       `protobuf:"bytes,11,opt,name=mfg_name,json=mfgName,proto3" json:"mfg_name,omitempty"`
+	// Apart from the definition of this attribute as defined in RFC 8348, implementations could choose to carry
+	// the manufacturer's part number in this attribute.
+	ModelName string               `protobuf:"bytes,12,opt,name=model_name,json=modelName,proto3" json:"model_name,omitempty"`
+	Alias     string               `protobuf:"bytes,13,opt,name=alias,proto3" json:"alias,omitempty"`
+	AssetId   string               `protobuf:"bytes,14,opt,name=asset_id,json=assetId,proto3" json:"asset_id,omitempty"`
+	IsFru     bool                 `protobuf:"varint,15,opt,name=is_fru,json=isFru,proto3" json:"is_fru,omitempty"`
+	MfgDate   *timestamp.Timestamp `protobuf:"bytes,16,opt,name=mfg_date,json=mfgDate,proto3" json:"mfg_date,omitempty"`
+	Uri       *Uri                 `protobuf:"bytes,17,opt,name=uri,proto3" json:"uri,omitempty"`
 	// The uuid of the component uniquely identifies the component across the entire system
-	Uuid                 *Uuid                  `protobuf:"bytes,18,opt,name=uuid,proto3" json:"uuid,omitempty"`
-	State                *ComponentState        `protobuf:"bytes,19,opt,name=state,proto3" json:"state,omitempty"`
-	SensorData           []*ComponentSensorData `protobuf:"bytes,20,rep,name=sensor_data,json=sensorData,proto3" json:"sensor_data,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
-	XXX_unrecognized     []byte                 `json:"-"`
-	XXX_sizecache        int32                  `json:"-"`
+	Uuid       *Uuid                  `protobuf:"bytes,18,opt,name=uuid,proto3" json:"uuid,omitempty"`
+	State      *ComponentState        `protobuf:"bytes,19,opt,name=state,proto3" json:"state,omitempty"`
+	SensorData []*ComponentSensorData `protobuf:"bytes,20,rep,name=sensor_data,json=sensorData,proto3" json:"sensor_data,omitempty"`
+	// The attribute 'specific' can be populated for components where more details are required by the users of the DMI interface
+	//
+	// Types that are valid to be assigned to Specific:
+	//	*Component_PortAttr
+	//	*Component_ContainerAttr
+	//	*Component_PsuAttr
+	//	*Component_TransceiverAttr
+	Specific             isComponent_Specific `protobuf_oneof:"specific"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
 }
 
 func (m *Component) Reset()         { *m = Component{} }
 func (m *Component) String() string { return proto.CompactTextString(m) }
 func (*Component) ProtoMessage()    {}
 func (*Component) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{5}
+	return fileDescriptor_d7c33d745c4ab367, []int{9}
 }
 
 func (m *Component) XXX_Unmarshal(b []byte) error {
@@ -926,21 +1425,97 @@
 	return nil
 }
 
+type isComponent_Specific interface {
+	isComponent_Specific()
+}
+
+type Component_PortAttr struct {
+	PortAttr *PortComponentAttributes `protobuf:"bytes,50,opt,name=port_attr,json=portAttr,proto3,oneof"`
+}
+
+type Component_ContainerAttr struct {
+	ContainerAttr *ContainerComponentAttributes `protobuf:"bytes,51,opt,name=container_attr,json=containerAttr,proto3,oneof"`
+}
+
+type Component_PsuAttr struct {
+	PsuAttr *PsuComponentAttributes `protobuf:"bytes,52,opt,name=psu_attr,json=psuAttr,proto3,oneof"`
+}
+
+type Component_TransceiverAttr struct {
+	TransceiverAttr *TransceiverComponentsAttributes `protobuf:"bytes,53,opt,name=transceiver_attr,json=transceiverAttr,proto3,oneof"`
+}
+
+func (*Component_PortAttr) isComponent_Specific() {}
+
+func (*Component_ContainerAttr) isComponent_Specific() {}
+
+func (*Component_PsuAttr) isComponent_Specific() {}
+
+func (*Component_TransceiverAttr) isComponent_Specific() {}
+
+func (m *Component) GetSpecific() isComponent_Specific {
+	if m != nil {
+		return m.Specific
+	}
+	return nil
+}
+
+func (m *Component) GetPortAttr() *PortComponentAttributes {
+	if x, ok := m.GetSpecific().(*Component_PortAttr); ok {
+		return x.PortAttr
+	}
+	return nil
+}
+
+func (m *Component) GetContainerAttr() *ContainerComponentAttributes {
+	if x, ok := m.GetSpecific().(*Component_ContainerAttr); ok {
+		return x.ContainerAttr
+	}
+	return nil
+}
+
+func (m *Component) GetPsuAttr() *PsuComponentAttributes {
+	if x, ok := m.GetSpecific().(*Component_PsuAttr); ok {
+		return x.PsuAttr
+	}
+	return nil
+}
+
+func (m *Component) GetTransceiverAttr() *TransceiverComponentsAttributes {
+	if x, ok := m.GetSpecific().(*Component_TransceiverAttr); ok {
+		return x.TransceiverAttr
+	}
+	return nil
+}
+
+// XXX_OneofWrappers is for the internal use of the proto package.
+func (*Component) XXX_OneofWrappers() []interface{} {
+	return []interface{}{
+		(*Component_PortAttr)(nil),
+		(*Component_ContainerAttr)(nil),
+		(*Component_PsuAttr)(nil),
+		(*Component_TransceiverAttr)(nil),
+	}
+}
+
 type Hardware struct {
 	LastChange *timestamp.Timestamp `protobuf:"bytes,1,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
 	// Each HW has one parent/root and all other components are children of this
 	// The class of the root component would be set as UNDEFINED
-	Root                 *Component `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+	Root *Component `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"`
+	// TODO: Authentication?
+	// Timestamp at which the hardware last booted
+	LastBooted           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=last_booted,json=lastBooted,proto3" json:"last_booted,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
+	XXX_unrecognized     []byte               `json:"-"`
+	XXX_sizecache        int32                `json:"-"`
 }
 
 func (m *Hardware) Reset()         { *m = Hardware{} }
 func (m *Hardware) String() string { return proto.CompactTextString(m) }
 func (*Hardware) ProtoMessage()    {}
 func (*Hardware) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{6}
+	return fileDescriptor_d7c33d745c4ab367, []int{10}
 }
 
 func (m *Hardware) XXX_Unmarshal(b []byte) error {
@@ -975,6 +1550,13 @@
 	return nil
 }
 
+func (m *Hardware) GetLastBooted() *timestamp.Timestamp {
+	if m != nil {
+		return m.LastBooted
+	}
+	return nil
+}
+
 // The attributes of a component which are modifiable from the client side
 type ModifiableComponent struct {
 	// The name has to be unique for each component within the hardware and implementations need to
@@ -996,7 +1578,7 @@
 func (m *ModifiableComponent) String() string { return proto.CompactTextString(m) }
 func (*ModifiableComponent) ProtoMessage()    {}
 func (*ModifiableComponent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{7}
+	return fileDescriptor_d7c33d745c4ab367, []int{11}
 }
 
 func (m *ModifiableComponent) XXX_Unmarshal(b []byte) error {
@@ -1080,14 +1662,24 @@
 	proto.RegisterEnum("dmi.ComponentUsageState", ComponentUsageState_name, ComponentUsageState_value)
 	proto.RegisterEnum("dmi.ComponentAlarmState", ComponentAlarmState_name, ComponentAlarmState_value)
 	proto.RegisterEnum("dmi.ComponentStandbyState", ComponentStandbyState_name, ComponentStandbyState_value)
-	proto.RegisterEnum("dmi.SensorValueType", SensorValueType_name, SensorValueType_value)
-	proto.RegisterEnum("dmi.SensorValueScale", SensorValueScale_name, SensorValueScale_value)
+	proto.RegisterEnum("dmi.DataValueType", DataValueType_name, DataValueType_value)
+	proto.RegisterEnum("dmi.ValueScale", ValueScale_name, ValueScale_value)
 	proto.RegisterEnum("dmi.SensorStatus", SensorStatus_name, SensorStatus_value)
+	proto.RegisterEnum("dmi.PortComponentAttributes_ConnectorType", PortComponentAttributes_ConnectorType_name, PortComponentAttributes_ConnectorType_value)
+	proto.RegisterEnum("dmi.PortComponentAttributes_Speed", PortComponentAttributes_Speed_name, PortComponentAttributes_Speed_value)
+	proto.RegisterEnum("dmi.PortComponentAttributes_Protocol", PortComponentAttributes_Protocol_name, PortComponentAttributes_Protocol_value)
+	proto.RegisterEnum("dmi.PsuComponentAttributes_SupportedVoltage", PsuComponentAttributes_SupportedVoltage_name, PsuComponentAttributes_SupportedVoltage_value)
+	proto.RegisterEnum("dmi.TransceiverComponentsAttributes_FormFactor", TransceiverComponentsAttributes_FormFactor_name, TransceiverComponentsAttributes_FormFactor_value)
+	proto.RegisterEnum("dmi.TransceiverComponentsAttributes_Type", TransceiverComponentsAttributes_Type_name, TransceiverComponentsAttributes_Type_value)
 	proto.RegisterType((*Uuid)(nil), "dmi.Uuid")
 	proto.RegisterType((*HardwareID)(nil), "dmi.HardwareID")
 	proto.RegisterType((*Uri)(nil), "dmi.Uri")
 	proto.RegisterType((*ComponentState)(nil), "dmi.ComponentState")
 	proto.RegisterType((*ComponentSensorData)(nil), "dmi.ComponentSensorData")
+	proto.RegisterType((*PortComponentAttributes)(nil), "dmi.PortComponentAttributes")
+	proto.RegisterType((*ContainerComponentAttributes)(nil), "dmi.ContainerComponentAttributes")
+	proto.RegisterType((*PsuComponentAttributes)(nil), "dmi.PsuComponentAttributes")
+	proto.RegisterType((*TransceiverComponentsAttributes)(nil), "dmi.TransceiverComponentsAttributes")
 	proto.RegisterType((*Component)(nil), "dmi.Component")
 	proto.RegisterType((*Hardware)(nil), "dmi.Hardware")
 	proto.RegisterType((*ModifiableComponent)(nil), "dmi.ModifiableComponent")
@@ -1096,116 +1688,166 @@
 func init() { proto.RegisterFile("dmi/hw.proto", fileDescriptor_d7c33d745c4ab367) }
 
 var fileDescriptor_d7c33d745c4ab367 = []byte{
-	// 1765 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x97, 0xcf, 0x6f, 0xe3, 0xc6,
-	0x15, 0xc7, 0x2b, 0xeb, 0x87, 0xa5, 0x27, 0xd9, 0x9e, 0x1d, 0x7b, 0xd7, 0x5a, 0xef, 0x3a, 0xeb,
-	0x28, 0x41, 0xe0, 0x28, 0x88, 0x0d, 0x6c, 0xd0, 0xa2, 0x41, 0x0e, 0xc5, 0x98, 0x9a, 0xb5, 0x59,
-	0x4b, 0xa4, 0x30, 0x1c, 0x79, 0xe3, 0xbd, 0x10, 0xb4, 0x48, 0xdb, 0x44, 0x45, 0x51, 0x20, 0x29,
-	0x07, 0x7b, 0x6c, 0xd1, 0x7b, 0xff, 0x86, 0x5e, 0x8a, 0xf4, 0xdc, 0x43, 0x2f, 0xfd, 0xaf, 0xfa,
-	0x0f, 0x14, 0x33, 0x24, 0xf5, 0x73, 0xb4, 0xc9, 0xa1, 0xb7, 0xd1, 0xfb, 0x7c, 0xdf, 0xcc, 0xe3,
-	0x9b, 0xf7, 0x1e, 0x29, 0x68, 0xb8, 0x81, 0x7f, 0xfe, 0xf8, 0xd3, 0xd9, 0x24, 0x0a, 0x93, 0x10,
-	0x17, 0xdd, 0xc0, 0x3f, 0x7a, 0xf3, 0x10, 0x86, 0x0f, 0x23, 0xef, 0x5c, 0x9a, 0xee, 0xa6, 0xf7,
-	0xe7, 0x89, 0x1f, 0x78, 0x71, 0xe2, 0x04, 0x93, 0x54, 0xd5, 0x3a, 0x82, 0xd2, 0x60, 0xea, 0xbb,
-	0x18, 0x43, 0x69, 0x3a, 0xf5, 0xdd, 0x66, 0xe1, 0xa4, 0x70, 0x5a, 0x63, 0x72, 0xdd, 0xfa, 0x06,
-	0xe0, 0xca, 0x89, 0xdc, 0x9f, 0x9c, 0xc8, 0xd3, 0x3b, 0xf8, 0x78, 0x41, 0x51, 0x7f, 0x5b, 0x3b,
-	0x73, 0x03, 0xff, 0x4c, 0xb8, 0x66, 0xe2, 0x43, 0x28, 0x0e, 0x22, 0x1f, 0x23, 0x28, 0x4e, 0x23,
-	0x3f, 0xdb, 0x46, 0x2c, 0x5b, 0x7f, 0x2d, 0xc2, 0xae, 0x16, 0x06, 0x93, 0x70, 0xec, 0x8d, 0x13,
-	0x2b, 0x71, 0x12, 0x0f, 0x5f, 0x01, 0x8e, 0xc5, 0xc2, 0x1e, 0x39, 0x71, 0x62, 0x0f, 0x1f, 0x9d,
-	0xf1, 0x83, 0x97, 0x6f, 0x7c, 0x74, 0x96, 0x86, 0x7c, 0x96, 0x87, 0x7c, 0xc6, 0xf3, 0x90, 0x19,
-	0x92, 0x5e, 0x5d, 0x27, 0x4e, 0xb4, 0xd4, 0x07, 0x7f, 0x0f, 0x75, 0xc7, 0x0d, 0xfc, 0xb1, 0x2d,
-	0x49, 0x73, 0xeb, 0xa4, 0x70, 0xba, 0xfb, 0xb6, 0x29, 0x63, 0x9b, 0x9d, 0x49, 0x84, 0x40, 0x1e,
-	0xcc, 0xc0, 0x99, 0xad, 0xf1, 0xef, 0x00, 0xc2, 0x89, 0x17, 0x65, 0x9e, 0x45, 0xe9, 0x79, 0xb8,
-	0xec, 0x69, 0x4e, 0xbc, 0x28, 0x75, 0xac, 0x85, 0xf9, 0x52, 0x1c, 0x39, 0x8d, 0x9d, 0x07, 0x2f,
-	0x73, 0x2c, 0xa9, 0x8e, 0x1c, 0x08, 0x41, 0x76, 0xe4, 0x74, 0xb6, 0x96, 0xd1, 0x8e, 0x9c, 0x28,
-	0xc8, 0x5c, 0xcb, 0xca, 0x68, 0x85, 0x20, 0x8f, 0x76, 0xb6, 0xc6, 0x7f, 0x80, 0x9d, 0x38, 0x71,
-	0xc6, 0xee, 0xdd, 0xc7, 0xcc, 0xb9, 0x22, 0x9d, 0x8f, 0x96, 0x9d, 0xad, 0x54, 0x92, 0xba, 0x37,
-	0xe2, 0x85, 0x5f, 0xad, 0xff, 0x6e, 0xc1, 0xfe, 0x5c, 0xe7, 0x8d, 0xe3, 0x30, 0xea, 0x38, 0x89,
-	0x83, 0x0f, 0xa0, 0xfc, 0xe4, 0x8c, 0xa6, 0x9e, 0x4c, 0x7f, 0x99, 0xa5, 0x3f, 0xf0, 0x29, 0x94,
-	0x92, 0x8f, 0x93, 0x3c, 0xa1, 0x07, 0xf2, 0x94, 0xd4, 0xe9, 0x46, 0x70, 0xfe, 0x71, 0xe2, 0x31,
-	0xa9, 0xc0, 0xdf, 0x40, 0x39, 0x1e, 0x3a, 0xa3, 0x3c, 0x83, 0xcf, 0x57, 0xa5, 0x96, 0x80, 0x2c,
-	0xd5, 0xe0, 0xd7, 0x50, 0x9b, 0x44, 0xde, 0xd0, 0x8f, 0xfd, 0x70, 0x2c, 0x33, 0x57, 0x66, 0x73,
-	0x03, 0xfe, 0x1a, 0x2a, 0xe2, 0xd9, 0xa6, 0x71, 0x96, 0x99, 0x67, 0x0b, 0x7b, 0x59, 0x12, 0xb0,
-	0x4c, 0x80, 0xbf, 0x80, 0x9d, 0xe9, 0xd8, 0x4f, 0x62, 0xdb, 0xf5, 0xe3, 0xc9, 0xc8, 0xf9, 0x28,
-	0xd3, 0x51, 0x63, 0x0d, 0x69, 0xec, 0xa4, 0x36, 0xfc, 0x7b, 0xa8, 0xcd, 0xca, 0xbd, 0xb9, 0xfd,
-	0x8b, 0xd5, 0x35, 0x17, 0xe3, 0x36, 0x3c, 0x93, 0x79, 0xb0, 0xa7, 0x13, 0x57, 0xd4, 0x69, 0x24,
-	0x32, 0x5e, 0x3d, 0x29, 0x9c, 0xee, 0xb0, 0x3d, 0x09, 0x06, 0xd2, 0xce, 0xc4, 0xcd, 0xbc, 0x82,
-	0x9a, 0xeb, 0x24, 0x8e, 0x2d, 0xf3, 0x55, 0x93, 0x61, 0x54, 0x85, 0x41, 0xe4, 0xa8, 0xf5, 0xef,
-	0x32, 0xd4, 0x66, 0x59, 0x17, 0x4d, 0x36, 0x76, 0x02, 0x2f, 0x6f, 0x32, 0xb1, 0xc6, 0xa7, 0x50,
-	0x1e, 0x8e, 0x9c, 0x38, 0xce, 0x52, 0x8d, 0x97, 0x2f, 0x54, 0x26, 0x3a, 0x15, 0xe0, 0x13, 0xa8,
-	0xbb, 0x5e, 0x3c, 0x8c, 0xfc, 0x49, 0x22, 0xd2, 0x57, 0x94, 0x9b, 0x2c, 0x9a, 0xf0, 0x0b, 0xa8,
-	0x4c, 0x9c, 0xc8, 0x1b, 0x27, 0x32, 0xb7, 0x35, 0x96, 0xfd, 0xc2, 0x5f, 0xc2, 0x6e, 0xba, 0xb2,
-	0x23, 0x6f, 0x64, 0x4f, 0xc2, 0x34, 0xc1, 0x65, 0xd6, 0x48, 0xad, 0xcc, 0x1b, 0xf5, 0xc3, 0x18,
-	0xb7, 0xa1, 0x3a, 0x7c, 0xf4, 0x47, 0x6e, 0xe4, 0x8d, 0x9b, 0x95, 0x93, 0xe2, 0x69, 0xfd, 0xed,
-	0xee, 0x72, 0x30, 0x6c, 0xc6, 0xf1, 0xe7, 0xd0, 0x78, 0xcc, 0x46, 0x83, 0x1d, 0x79, 0x4f, 0x32,
-	0xbb, 0x35, 0x56, 0xcf, 0x6d, 0xcc, 0x7b, 0x12, 0x92, 0x7b, 0x3f, 0x0a, 0x66, 0x92, 0x6a, 0x2a,
-	0xc9, 0x6d, 0x99, 0x24, 0x0e, 0xef, 0x93, 0x99, 0x24, 0xcd, 0x5e, 0x3d, 0xb7, 0x09, 0xc9, 0x31,
-	0x40, 0xec, 0x45, 0xbe, 0x33, 0xb2, 0xc7, 0xd3, 0xa0, 0x09, 0x52, 0x50, 0x4b, 0x2d, 0xc6, 0x34,
-	0xc0, 0x2f, 0xa1, 0x1a, 0xdc, 0x3f, 0xd8, 0x32, 0xab, 0x75, 0x09, 0xb7, 0x83, 0xfb, 0x07, 0x43,
-	0x24, 0xf6, 0x18, 0x20, 0x08, 0x5d, 0x6f, 0x94, 0xc2, 0x46, 0xea, 0x29, 0x2d, 0x12, 0x1f, 0x40,
-	0xd9, 0x19, 0xf9, 0x4e, 0xdc, 0xdc, 0x91, 0x24, 0xfd, 0x21, 0xf6, 0x73, 0xe2, 0xd8, 0x4b, 0x6c,
-	0xdf, 0x6d, 0xee, 0xa6, 0xfb, 0xc9, 0xdf, 0xba, 0x8b, 0x9f, 0x43, 0xc5, 0x8f, 0xed, 0xfb, 0x68,
-	0xda, 0xdc, 0x3b, 0x29, 0x9c, 0x56, 0x59, 0xd9, 0x8f, 0xdf, 0x45, 0x53, 0xfc, 0xdb, 0x34, 0x02,
-	0x51, 0x0e, 0x4d, 0xf4, 0x8b, 0x35, 0x26, 0xa2, 0xeb, 0x88, 0xaa, 0x39, 0x4a, 0xe7, 0xe4, 0x33,
-	0xe9, 0x51, 0x4d, 0x87, 0x69, 0xe4, 0xcb, 0x89, 0x39, 0x9b, 0xb4, 0x58, 0x39, 0x69, 0xf1, 0xd7,
-	0x50, 0x4e, 0x47, 0xc0, 0xbe, 0xe4, 0xfb, 0x6b, 0x23, 0x20, 0x11, 0xfd, 0x96, 0x0f, 0x9c, 0x58,
-	0xb6, 0x8f, 0x88, 0xcf, 0x69, 0x1e, 0xc8, 0x5b, 0x5d, 0x19, 0x38, 0xf3, 0x59, 0xc0, 0x20, 0x9e,
-	0xad, 0x5b, 0x7f, 0x82, 0x6a, 0x3e, 0xfc, 0xf1, 0x0f, 0x50, 0x5f, 0x98, 0xd4, 0xbf, 0x62, 0x50,
-	0xc3, 0x68, 0x36, 0xa3, 0x71, 0x0b, 0x4a, 0x51, 0x18, 0x26, 0xb2, 0xbe, 0xd7, 0x4b, 0x4a, 0xb2,
-	0xd6, 0x3f, 0xb7, 0x60, 0xbf, 0x17, 0xba, 0xfe, 0xbd, 0xef, 0xdc, 0x8d, 0xbc, 0xff, 0x57, 0xc3,
-	0x7c, 0x35, 0x6b, 0x87, 0xa2, 0xf2, 0xec, 0xcd, 0xed, 0x51, 0x52, 0xb4, 0xc7, 0xac, 0x60, 0xca,
-	0x9b, 0x0a, 0xa6, 0xb2, 0x5c, 0x30, 0xd9, 0x15, 0x6f, 0xab, 0xae, 0x78, 0xe5, 0xbd, 0x55, 0xfd,
-	0xf5, 0xef, 0xad, 0xf6, 0x9f, 0x4b, 0xb0, 0xb3, 0xf4, 0xb8, 0xf8, 0x35, 0x34, 0x35, 0xb3, 0xd7,
-	0x37, 0x0d, 0x6a, 0x70, 0x9b, 0xdf, 0xf6, 0xa9, 0x3d, 0x30, 0x3a, 0xf4, 0x9d, 0x6e, 0xd0, 0x0e,
-	0xfa, 0x0d, 0x3e, 0x82, 0x17, 0x6b, 0xf4, 0xda, 0x30, 0xdf, 0x1b, 0xa8, 0xa0, 0x60, 0xda, 0x15,
-	0xb1, 0x2c, 0xdd, 0x42, 0x5b, 0x8a, 0x5d, 0x2f, 0x88, 0x76, 0xdd, 0xef, 0x12, 0x83, 0xa2, 0xa2,
-	0x82, 0x6a, 0xa6, 0xc1, 0x89, 0x6e, 0x50, 0x86, 0x4a, 0xf8, 0x0d, 0xbc, 0x5a, 0xa1, 0x7d, 0xf3,
-	0x3d, 0x65, 0xb6, 0x35, 0xe8, 0xf7, 0xbb, 0xb7, 0xa8, 0x8c, 0x5f, 0x00, 0x5e, 0x11, 0xbc, 0x23,
-	0x06, 0xaa, 0xe0, 0x97, 0xf0, 0x7c, 0xc5, 0x6e, 0x51, 0xc3, 0x32, 0x19, 0xda, 0x56, 0xa0, 0x9e,
-	0xd9, 0x19, 0x74, 0x29, 0xaa, 0xe2, 0x43, 0xd8, 0x5f, 0x3b, 0x8e, 0x71, 0x54, 0x53, 0x1c, 0xa3,
-	0xf5, 0x07, 0x08, 0x14, 0xcf, 0x7d, 0x41, 0x38, 0xa7, 0xec, 0x16, 0xd5, 0x15, 0xcc, 0xe2, 0x26,
-	0x23, 0x97, 0x14, 0x35, 0x54, 0x31, 0xd0, 0x9e, 0xc9, 0x6e, 0xd1, 0x0e, 0xfe, 0x0c, 0x8e, 0x56,
-	0x10, 0x67, 0xc4, 0xb0, 0x34, 0xaa, 0xdf, 0x50, 0x86, 0x76, 0xf1, 0x17, 0xf0, 0x66, 0x85, 0x5f,
-	0xf6, 0x4d, 0x63, 0x49, 0xb4, 0x87, 0xbf, 0x82, 0xd6, 0x8a, 0xe8, 0xc7, 0x4b, 0xcb, 0x5e, 0xd5,
-	0xa1, 0xf6, 0xbf, 0x0a, 0x0b, 0x2f, 0xf3, 0x79, 0x9d, 0xe4, 0x41, 0xd8, 0xa4, 0xd3, 0xd3, 0x0d,
-	0xdb, 0xe2, 0x84, 0x2f, 0xd7, 0x42, 0x76, 0x6b, 0x2b, 0x3c, 0xaf, 0x86, 0x57, 0x70, 0xb8, 0x46,
-	0xbb, 0xa6, 0x76, 0x4d, 0x3b, 0x68, 0x0b, 0xb7, 0xe0, 0xb3, 0x35, 0x68, 0x5d, 0x0d, 0x38, 0xd7,
-	0x8d, 0x4b, 0xbb, 0x23, 0x36, 0x28, 0xe2, 0x63, 0x78, 0xa9, 0xd8, 0x3e, 0xdb, 0xa2, 0xd4, 0xfe,
-	0xb9, 0x00, 0x78, 0xfd, 0xdb, 0x6a, 0xe6, 0x65, 0xf6, 0x45, 0x85, 0xac, 0xc5, 0x9c, 0x47, 0xb5,
-	0x84, 0xf3, 0x90, 0xf3, 0x07, 0x5a, 0x80, 0x1d, 0xdd, 0x22, 0x17, 0x5d, 0x19, 0xb3, 0xc2, 0x95,
-	0x1a, 0x29, 0x2c, 0xaa, 0x20, 0xa7, 0x96, 0x78, 0x1c, 0x54, 0x6a, 0xff, 0x63, 0x31, 0xc1, 0xf3,
-	0xaf, 0xb9, 0x59, 0x82, 0x07, 0x16, 0xb9, 0xa4, 0x9f, 0x48, 0xf0, 0x32, 0xcf, 0xa3, 0xcd, 0xca,
-	0x67, 0x89, 0xea, 0x9d, 0x2e, 0x5d, 0x08, 0x75, 0x11, 0x11, 0x8d, 0xeb, 0x37, 0xa2, 0xd9, 0x54,
-	0x7e, 0x17, 0x03, 0xeb, 0x16, 0x95, 0xda, 0x7f, 0x5b, 0xfc, 0xac, 0x9b, 0x7f, 0x3b, 0xce, 0x2b,
-	0xa1, 0x4b, 0x58, 0xef, 0x53, 0x95, 0xb0, 0xc4, 0xf3, 0x40, 0x3f, 0x87, 0x63, 0xa5, 0x37, 0xb3,
-	0x19, 0xed, 0x13, 0x9d, 0xa1, 0xad, 0xf9, 0x5d, 0x2f, 0x48, 0x34, 0xa6, 0x73, 0x5d, 0x23, 0x5d,
-	0x54, 0xcc, 0xbb, 0x68, 0x09, 0xf7, 0xc8, 0x1f, 0x4d, 0x31, 0x1d, 0x94, 0x4c, 0x37, 0x4c, 0x86,
-	0xca, 0xca, 0xb8, 0xde, 0x13, 0x66, 0x88, 0x6b, 0xa9, 0xcc, 0x8b, 0x70, 0x81, 0xea, 0x46, 0x87,
-	0x72, 0xca, 0x7a, 0xba, 0x41, 0x38, 0x45, 0xdb, 0xed, 0xff, 0x14, 0xe0, 0xb9, 0xf2, 0x83, 0x18,
-	0x9f, 0xc0, 0x6b, 0xe9, 0x6d, 0x71, 0x62, 0x74, 0x2e, 0x6e, 0x15, 0x59, 0xc9, 0xb3, 0xb6, 0xaa,
-	0x58, 0x99, 0x97, 0x2b, 0xfc, 0xca, 0xe4, 0x0b, 0x37, 0xb8, 0xcc, 0x34, 0xb3, 0x2b, 0x8a, 0xed,
-	0x14, 0xbe, 0x54, 0xc0, 0x3e, 0x33, 0x6f, 0xf4, 0x8e, 0x68, 0x20, 0x8b, 0xb2, 0x1b, 0x5d, 0xa3,
-	0xa8, 0xd4, 0xfe, 0x7b, 0x11, 0xf6, 0x56, 0xbe, 0xb4, 0xc5, 0x38, 0x4d, 0xc7, 0xa0, 0x7d, 0x43,
-	0xba, 0x03, 0xba, 0x3e, 0xe3, 0x5f, 0xc1, 0xe1, 0xba, 0xc0, 0xe4, 0x57, 0x94, 0xa1, 0x82, 0xb8,
-	0x29, 0x95, 0x77, 0xfa, 0x4c, 0x5b, 0xe2, 0x99, 0xd7, 0xf1, 0x8d, 0xd9, 0xe5, 0x96, 0x4d, 0x34,
-	0x54, 0xfc, 0x14, 0xef, 0x68, 0xa8, 0xa4, 0xde, 0x9e, 0xf4, 0xfa, 0x94, 0x51, 0x0b, 0x95, 0xd5,
-	0xa1, 0xbd, 0x27, 0x9c, 0x5b, 0xa8, 0xa2, 0x86, 0x57, 0x94, 0xf1, 0x0f, 0x68, 0x5b, 0xbd, 0xb1,
-	0x46, 0xbb, 0x96, 0x3e, 0xb0, 0x50, 0x55, 0xdc, 0xe6, 0x3a, 0xee, 0x53, 0xa6, 0x89, 0xd9, 0xc9,
-	0xae, 0x50, 0x4d, 0xb4, 0xcd, 0xba, 0x82, 0xf5, 0x7b, 0x08, 0xd4, 0x48, 0xeb, 0xf5, 0x50, 0x5d,
-	0xd4, 0xfe, 0x3a, 0xe2, 0x6c, 0xc0, 0xaf, 0x52, 0x03, 0x6a, 0xb4, 0x7f, 0x2e, 0x01, 0x5a, 0xfd,
-	0x8b, 0xb3, 0x16, 0x8f, 0xa5, 0x91, 0xee, 0x5a, 0xcf, 0x29, 0x14, 0xb7, 0xa6, 0xc6, 0xcd, 0x74,
-	0x94, 0x29, 0xe8, 0x07, 0xda, 0xe7, 0x66, 0x5a, 0x5d, 0x0a, 0x4a, 0x38, 0x37, 0xd3, 0x97, 0xb1,
-	0x02, 0xbe, 0xa3, 0x3d, 0x6e, 0xa2, 0xd2, 0x06, 0xd7, 0xbe, 0xae, 0x99, 0x8a, 0xeb, 0x49, 0xa1,
-	0x41, 0x0c, 0x13, 0x55, 0x36, 0xec, 0xdb, 0xd3, 0x35, 0x66, 0xa2, 0xed, 0x8d, 0xb4, 0xdb, 0xd5,
-	0x51, 0x75, 0x03, 0x1d, 0x18, 0x3a, 0xb7, 0x50, 0x6d, 0xc3, 0xb1, 0xd7, 0x7a, 0xd7, 0x44, 0xb0,
-	0x01, 0xf6, 0xe8, 0x25, 0x41, 0xf5, 0x0d, 0xf0, 0x52, 0xbf, 0x24, 0xa8, 0xb1, 0x01, 0x72, 0xca,
-	0x08, 0xda, 0xd9, 0x94, 0x07, 0xca, 0x09, 0xda, 0x15, 0x9d, 0xad, 0x80, 0xf4, 0x47, 0x82, 0xf6,
-	0x36, 0xde, 0x0c, 0xe7, 0x04, 0xa1, 0x8d, 0xb7, 0x2a, 0xe8, 0xb3, 0xf6, 0x5f, 0x0a, 0xd0, 0x58,
-	0xfc, 0x07, 0xbb, 0x10, 0x85, 0x98, 0x01, 0x03, 0x6b, 0xa9, 0x42, 0x0e, 0x00, 0x2d, 0x43, 0xf3,
-	0x7a, 0xa9, 0x81, 0x67, 0x2e, 0xe4, 0x86, 0xe8, 0x5d, 0xf1, 0x26, 0x43, 0x5b, 0x0b, 0x85, 0x97,
-	0x61, 0xc3, 0x34, 0xc4, 0x4b, 0x8d, 0x70, 0xdd, 0x34, 0xc4, 0x30, 0xbe, 0xf8, 0xe1, 0xc3, 0xf7,
-	0x0f, 0x7e, 0xf2, 0x38, 0xbd, 0x3b, 0x1b, 0x86, 0xc1, 0x79, 0x38, 0xf1, 0xc6, 0xc3, 0x30, 0x72,
-	0xcf, 0x5d, 0xef, 0xc9, 0x1f, 0x7a, 0xdf, 0x06, 0xce, 0xd8, 0x79, 0xf0, 0x02, 0x6f, 0x9c, 0x7c,
-	0xeb, 0x8f, 0x13, 0x2f, 0xba, 0x77, 0x86, 0xde, 0xf9, 0xd3, 0x77, 0xe7, 0x0f, 0xe1, 0xb9, 0x1b,
-	0xf8, 0x77, 0x15, 0xf9, 0x7d, 0xff, 0xdd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xa6, 0x18, 0x6b,
-	0x83, 0x5e, 0x12, 0x00, 0x00,
+	// 2572 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x72, 0xdb, 0xc8,
+	0xf1, 0x37, 0xbf, 0xc9, 0x26, 0x29, 0x8d, 0x47, 0xfe, 0xe0, 0xca, 0xf6, 0xae, 0x96, 0xff, 0xdd,
+	0x2d, 0xad, 0xfe, 0x59, 0x49, 0x96, 0xed, 0x94, 0x37, 0x5b, 0xa9, 0x14, 0x04, 0x82, 0x22, 0x56,
+	0x24, 0x80, 0x1d, 0x80, 0xb2, 0xb5, 0x17, 0x14, 0x44, 0x82, 0x12, 0xaa, 0x48, 0x82, 0x05, 0x80,
+	0x5a, 0xfb, 0x9a, 0xca, 0x3d, 0x2f, 0x90, 0x63, 0x2a, 0xb5, 0xb9, 0xe4, 0x92, 0x1c, 0x73, 0xc8,
+	0x21, 0x79, 0x81, 0xdc, 0xf2, 0x0c, 0x79, 0x89, 0xd4, 0xcc, 0x00, 0x24, 0x00, 0xc2, 0x5e, 0xa7,
+	0x2a, 0xb7, 0x99, 0xdf, 0xaf, 0xbb, 0xa7, 0xa7, 0x67, 0xba, 0xd1, 0x03, 0x68, 0x8c, 0x67, 0xce,
+	0xd1, 0xcd, 0x0f, 0x87, 0x0b, 0xcf, 0x0d, 0x5c, 0x5c, 0x18, 0xcf, 0x9c, 0xdd, 0x4f, 0xae, 0x5d,
+	0xf7, 0x7a, 0x6a, 0x1f, 0x31, 0xe8, 0x6a, 0x39, 0x39, 0x0a, 0x9c, 0x99, 0xed, 0x07, 0xd6, 0x6c,
+	0xc1, 0xa5, 0xda, 0xbb, 0x50, 0x1c, 0x2e, 0x9d, 0x31, 0xc6, 0x50, 0x5c, 0x2e, 0x9d, 0x71, 0x2b,
+	0xb7, 0x97, 0xdb, 0xaf, 0x11, 0x36, 0x6e, 0xff, 0x3f, 0x40, 0xcf, 0xf2, 0xc6, 0x3f, 0x58, 0x9e,
+	0x2d, 0x77, 0xf0, 0x93, 0x98, 0x44, 0xfd, 0xa4, 0x76, 0x38, 0x9e, 0x39, 0x87, 0x54, 0x35, 0x14,
+	0x7e, 0x08, 0x85, 0xa1, 0xe7, 0x60, 0x04, 0x85, 0xa5, 0xe7, 0x84, 0x66, 0xe8, 0xb0, 0xfd, 0x9b,
+	0x02, 0x6c, 0x89, 0xee, 0x6c, 0xe1, 0xce, 0xed, 0x79, 0xa0, 0x07, 0x56, 0x60, 0xe3, 0x1e, 0x60,
+	0x9f, 0x0e, 0xcc, 0xa9, 0xe5, 0x07, 0xe6, 0xe8, 0xc6, 0x9a, 0x5f, 0xdb, 0x91, 0xe1, 0xdd, 0x43,
+	0xee, 0xf2, 0x61, 0xe4, 0xf2, 0xa1, 0x11, 0xb9, 0x4c, 0x10, 0xd3, 0xea, 0x5b, 0x7e, 0x20, 0x72,
+	0x1d, 0xfc, 0x35, 0xd4, 0xad, 0xf1, 0xcc, 0x99, 0x9b, 0x8c, 0x69, 0xe5, 0xf7, 0x72, 0xfb, 0x5b,
+	0x27, 0x2d, 0xe6, 0xdb, 0x6a, 0x4d, 0x81, 0x0a, 0xb0, 0x85, 0x09, 0x58, 0xab, 0x31, 0xfe, 0x39,
+	0x80, 0xbb, 0xb0, 0xbd, 0x50, 0xb3, 0xc0, 0x34, 0x1f, 0x26, 0x35, 0xd5, 0x85, 0xed, 0x71, 0xc5,
+	0x9a, 0x1b, 0x0d, 0xe9, 0x92, 0x4b, 0xdf, 0xba, 0xb6, 0x43, 0xc5, 0x62, 0xd6, 0x92, 0x43, 0x2a,
+	0x10, 0x2e, 0xb9, 0x5c, 0x8d, 0x99, 0xb7, 0x53, 0xcb, 0x9b, 0x85, 0xaa, 0xa5, 0x4c, 0x6f, 0xa9,
+	0x40, 0xe4, 0xed, 0x6a, 0x8c, 0x7f, 0x05, 0x4d, 0x3f, 0xb0, 0xe6, 0xe3, 0xab, 0xb7, 0xa1, 0x72,
+	0x99, 0x29, 0xef, 0x26, 0x95, 0x75, 0x2e, 0xc2, 0xd5, 0x1b, 0x7e, 0x6c, 0xd6, 0xfe, 0x77, 0x1e,
+	0x76, 0xd6, 0x72, 0xf6, 0xdc, 0x77, 0xbd, 0x8e, 0x15, 0x58, 0xf8, 0x1e, 0x94, 0x6e, 0xad, 0xe9,
+	0xd2, 0x66, 0xe1, 0x2f, 0x11, 0x3e, 0xc1, 0x5f, 0x40, 0x31, 0x78, 0xbb, 0x88, 0x02, 0x8a, 0xd9,
+	0x2a, 0x54, 0xfc, 0x82, 0xb2, 0xc6, 0xdb, 0x85, 0x4d, 0x18, 0x8f, 0x3f, 0x87, 0x92, 0x3f, 0xb2,
+	0xa6, 0x51, 0xfc, 0xb6, 0x99, 0x20, 0x13, 0xd2, 0x29, 0x4c, 0x38, 0x8b, 0x1f, 0x43, 0x6d, 0xe1,
+	0xd9, 0x23, 0xc7, 0x77, 0xdc, 0x39, 0x8b, 0x58, 0x89, 0xac, 0x01, 0xfc, 0x25, 0x94, 0xe9, 0x9e,
+	0x96, 0x7e, 0x18, 0x91, 0xbb, 0xcc, 0x0a, 0xf7, 0x51, 0x67, 0x04, 0x09, 0x05, 0xf0, 0xff, 0x41,
+	0x73, 0x39, 0x77, 0x02, 0xdf, 0x1c, 0x3b, 0xfe, 0x62, 0x6a, 0xbd, 0x65, 0x61, 0xa8, 0x91, 0x06,
+	0x03, 0x3b, 0x1c, 0xc3, 0x2f, 0xa1, 0xb6, 0xba, 0xe6, 0xad, 0xca, 0x4f, 0xde, 0xaa, 0xb5, 0x30,
+	0x3e, 0x80, 0xbb, 0x6c, 0xff, 0xe6, 0x72, 0x31, 0xa6, 0xf7, 0xd3, 0xa3, 0x91, 0xae, 0xee, 0xe5,
+	0xf6, 0x9b, 0x64, 0x9b, 0x11, 0x43, 0x86, 0x13, 0x7a, 0x22, 0x8f, 0xa0, 0x36, 0xb6, 0x02, 0xcb,
+	0x64, 0x71, 0xaa, 0x31, 0x37, 0xaa, 0x14, 0xa0, 0xd1, 0x69, 0xff, 0xae, 0x04, 0x0f, 0x35, 0xd7,
+	0x0b, 0xd6, 0xc7, 0x1a, 0x04, 0x9e, 0x73, 0xb5, 0x0c, 0x6c, 0x1f, 0x7f, 0x07, 0x5b, 0x23, 0x77,
+	0x3e, 0xb7, 0x47, 0x81, 0xeb, 0x71, 0xed, 0x1c, 0xdb, 0xf6, 0x01, 0xdb, 0xf6, 0x3b, 0xb4, 0x0e,
+	0xc5, 0x48, 0x85, 0x45, 0xbf, 0x39, 0x8a, 0x4f, 0xf1, 0x4b, 0x28, 0xf9, 0x0b, 0xdb, 0x1e, 0x87,
+	0xe7, 0xd5, 0x7e, 0xaf, 0x25, 0x9d, 0x4a, 0x12, 0xae, 0x80, 0x05, 0xa8, 0xb2, 0x90, 0x8c, 0xdc,
+	0x69, 0x78, 0x86, 0x9f, 0xbf, 0x57, 0x59, 0x0b, 0x85, 0xc9, 0x4a, 0x0d, 0x7f, 0x0e, 0x5b, 0x8b,
+	0x9b, 0xb7, 0xbe, 0x33, 0xb2, 0xa6, 0xe6, 0xd4, 0xba, 0xb2, 0xa7, 0xec, 0x84, 0x6b, 0xa4, 0x19,
+	0xa1, 0x7d, 0x0a, 0xb6, 0x6d, 0x68, 0x26, 0xf6, 0x80, 0x1f, 0x43, 0x4b, 0x54, 0x15, 0x45, 0x12,
+	0x0d, 0x95, 0x98, 0xc6, 0xa5, 0x26, 0x99, 0x43, 0xa5, 0x23, 0x75, 0x65, 0x45, 0xea, 0xa0, 0x3b,
+	0xb8, 0x0a, 0x45, 0xf2, 0xed, 0xf3, 0x17, 0x28, 0x87, 0x1b, 0x50, 0xed, 0xca, 0xa7, 0x12, 0x31,
+	0xfb, 0x22, 0xca, 0xe3, 0x6d, 0xa8, 0xf3, 0x99, 0x2e, 0x9a, 0x9a, 0x88, 0x0a, 0xb8, 0x09, 0x35,
+	0x0e, 0x0c, 0x34, 0x15, 0x15, 0xdb, 0x7f, 0xca, 0x41, 0x89, 0xed, 0x10, 0xef, 0xc0, 0xb6, 0xae,
+	0x49, 0x52, 0x27, 0x61, 0xb6, 0x0e, 0x95, 0xce, 0xa5, 0x22, 0x0c, 0x64, 0x11, 0xe5, 0xa8, 0xea,
+	0x99, 0x7c, 0x26, 0x9c, 0xca, 0x86, 0xf9, 0x14, 0xe5, 0xf1, 0x16, 0xc0, 0x6a, 0x7a, 0x8c, 0x0a,
+	0xf1, 0xf9, 0xc9, 0x0b, 0x54, 0x8c, 0xcf, 0x9f, 0x1f, 0xa3, 0x12, 0x75, 0x65, 0x2d, 0x7f, 0x8c,
+	0xca, 0x71, 0xe0, 0xf9, 0xf1, 0x31, 0xaa, 0x60, 0x04, 0x8d, 0x81, 0x14, 0x59, 0x38, 0x3e, 0x46,
+	0xd5, 0x38, 0xf2, 0xf4, 0xe4, 0xc5, 0x31, 0xaa, 0xb5, 0x3d, 0xa8, 0x46, 0x41, 0xc5, 0x0f, 0x00,
+	0x6b, 0x44, 0x35, 0x54, 0x51, 0xed, 0x27, 0xbc, 0x6e, 0x40, 0x55, 0x32, 0x7a, 0x12, 0x51, 0x24,
+	0x03, 0xe5, 0x68, 0x68, 0xce, 0x34, 0x55, 0x41, 0x79, 0x5c, 0x83, 0xd2, 0x6b, 0x36, 0x2c, 0x60,
+	0x80, 0xf2, 0xeb, 0x33, 0x9d, 0x8e, 0x8b, 0x14, 0x3e, 0xeb, 0x0a, 0xba, 0x81, 0x4a, 0x14, 0xd6,
+	0x25, 0x22, 0x0b, 0x7d, 0x54, 0xa6, 0x7a, 0x12, 0x15, 0xa8, 0xb4, 0x25, 0x78, 0x2c, 0xba, 0xf3,
+	0xc0, 0x72, 0xe6, 0xb6, 0x97, 0x75, 0x45, 0x37, 0x8f, 0x34, 0x97, 0x75, 0xa4, 0xff, 0xc8, 0xc1,
+	0x03, 0xcd, 0x5f, 0x66, 0x59, 0xb8, 0x84, 0xbb, 0xfe, 0x72, 0xb1, 0x70, 0xbd, 0xc0, 0x1e, 0x9b,
+	0xb7, 0xee, 0x34, 0xb0, 0xae, 0xa3, 0x7b, 0xfe, 0x33, 0x7e, 0xc1, 0x32, 0xf5, 0x0e, 0xf5, 0x48,
+	0xe9, 0x82, 0xeb, 0x10, 0xe4, 0xa7, 0x90, 0xb6, 0x06, 0x28, 0x2d, 0x85, 0x3f, 0x81, 0x47, 0xfa,
+	0x50, 0xd3, 0x54, 0x62, 0x48, 0x1d, 0xf3, 0x42, 0xed, 0x1b, 0xc2, 0x59, 0xf2, 0x3a, 0x55, 0xa0,
+	0x70, 0xf1, 0xfc, 0x25, 0x0f, 0xde, 0xc5, 0xc9, 0xb3, 0x63, 0x94, 0x67, 0xa3, 0xa7, 0x4f, 0x5f,
+	0xa0, 0x42, 0xfb, 0x9f, 0x25, 0xf8, 0xc4, 0xf0, 0xac, 0xb9, 0x3f, 0xb2, 0x9d, 0xdb, 0x58, 0x44,
+	0xfc, 0xd8, 0x86, 0x34, 0xa8, 0x4f, 0x5c, 0x6f, 0x66, 0x4e, 0x2c, 0x7a, 0x81, 0xc3, 0xad, 0x1c,
+	0xb1, 0xad, 0xfc, 0x84, 0xea, 0x61, 0xd7, 0xf5, 0x66, 0x5d, 0xa6, 0x46, 0x60, 0xb2, 0x1a, 0xe3,
+	0x1e, 0x40, 0x40, 0x35, 0xcd, 0x58, 0xa5, 0xfd, 0xf2, 0x83, 0x0c, 0xb2, 0x12, 0x50, 0x63, 0xca,
+	0x2c, 0x93, 0x3e, 0x85, 0xc6, 0xcc, 0x7a, 0x43, 0x6b, 0x62, 0x60, 0xcd, 0x47, 0xbc, 0x18, 0x37,
+	0x49, 0x7d, 0x66, 0xbd, 0xe9, 0x84, 0x10, 0xfe, 0x25, 0xe0, 0xb8, 0x88, 0xc9, 0xab, 0x76, 0x31,
+	0xbb, 0x6a, 0xa3, 0x98, 0x26, 0x43, 0x68, 0xdd, 0xf5, 0xde, 0x98, 0x3f, 0x58, 0xb7, 0xf6, 0xd4,
+	0x9e, 0x5f, 0x07, 0x37, 0xad, 0xd2, 0x5e, 0x61, 0xbf, 0x49, 0x1a, 0xde, 0x9b, 0x57, 0x2b, 0x8c,
+	0x0a, 0x05, 0x09, 0xa1, 0x32, 0x17, 0x0a, 0xe2, 0x42, 0xbf, 0x00, 0xb4, 0x96, 0x08, 0xdd, 0xa8,
+	0x64, 0xbb, 0xb1, 0xbd, 0x16, 0x64, 0x40, 0xfb, 0x6f, 0x39, 0x80, 0x75, 0x30, 0xf1, 0x43, 0xd8,
+	0xe9, 0xaa, 0x64, 0x60, 0x76, 0x05, 0x56, 0x42, 0x86, 0xca, 0xb9, 0xa2, 0xbe, 0x52, 0x78, 0xed,
+	0xf8, 0x4e, 0xef, 0x6a, 0x3c, 0xc3, 0xe9, 0xc8, 0xd4, 0xfa, 0x43, 0x1d, 0xe5, 0x69, 0x36, 0xd0,
+	0xe9, 0xc9, 0x4b, 0x54, 0xa0, 0x37, 0x82, 0xca, 0x14, 0x69, 0x72, 0xad, 0x44, 0x4a, 0x14, 0x7e,
+	0xdd, 0xd5, 0x78, 0xb6, 0x88, 0x5d, 0xed, 0x39, 0xaa, 0x84, 0xa3, 0x13, 0x54, 0x65, 0x23, 0x4d,
+	0x38, 0x47, 0x35, 0x5c, 0x86, 0xfc, 0xeb, 0x13, 0x04, 0x34, 0xd5, 0x54, 0x9a, 0x99, 0xa8, 0x4e,
+	0x35, 0xc5, 0xae, 0x86, 0x1a, 0xd4, 0x20, 0x95, 0x37, 0x05, 0x51, 0x45, 0xcd, 0xd5, 0xac, 0x23,
+	0xaa, 0x68, 0xab, 0x7d, 0x03, 0x45, 0x76, 0x64, 0x08, 0x1a, 0x61, 0xc9, 0x8b, 0x9c, 0xfe, 0x2f,
+	0x73, 0x9c, 0xb9, 0xa2, 0x2a, 0xa8, 0x44, 0x4b, 0x9a, 0x72, 0x66, 0x6a, 0xaa, 0x72, 0x92, 0xc8,
+	0xf1, 0x7f, 0x55, 0xa0, 0xb6, 0xba, 0x3d, 0xb4, 0xbf, 0x9b, 0x5b, 0x33, 0x3b, 0xea, 0xef, 0xe8,
+	0x18, 0xef, 0x43, 0x69, 0x34, 0xb5, 0x7c, 0x3f, 0xf1, 0x95, 0x5f, 0xa9, 0xb0, 0x4b, 0xc6, 0x05,
+	0xf0, 0x1e, 0xd4, 0xc7, 0xb6, 0x3f, 0xf2, 0x9c, 0x45, 0x40, 0xbf, 0xe0, 0x05, 0x66, 0x24, 0x0e,
+	0xe1, 0x07, 0x50, 0x5e, 0x58, 0x9e, 0x3d, 0x0f, 0xc2, 0xe2, 0x1f, 0xce, 0xf0, 0x67, 0xb0, 0xc5,
+	0x47, 0xa6, 0x67, 0x4f, 0xcd, 0x85, 0xcb, 0xbf, 0xf1, 0x25, 0xd2, 0xe0, 0x28, 0xb1, 0xa7, 0x9a,
+	0xeb, 0xe3, 0x03, 0xa8, 0x8e, 0x6e, 0x9c, 0xe9, 0xd8, 0xb3, 0xe7, 0xec, 0xd2, 0xd4, 0x4f, 0xb6,
+	0x92, 0xce, 0x90, 0x15, 0x4f, 0x2f, 0xfb, 0x4d, 0xd8, 0x95, 0x9a, 0x9e, 0x7d, 0xcb, 0x2e, 0x4f,
+	0x8d, 0xd4, 0x23, 0x8c, 0xd8, 0xb7, 0x54, 0x64, 0xe2, 0x78, 0xb3, 0x95, 0x48, 0x95, 0x8b, 0x44,
+	0x58, 0x28, 0xe2, 0xbb, 0x93, 0x60, 0x25, 0xc2, 0x3f, 0xe0, 0xf5, 0x08, 0xa3, 0x22, 0x4f, 0x00,
+	0x7c, 0xdb, 0x73, 0xac, 0xa9, 0x39, 0x5f, 0xce, 0x5a, 0xc0, 0x04, 0x6a, 0x1c, 0x51, 0x96, 0x33,
+	0xfc, 0x11, 0x54, 0x67, 0x93, 0x6b, 0x93, 0x45, 0xb5, 0xce, 0xc8, 0xca, 0x6c, 0x72, 0xad, 0xd0,
+	0xc0, 0x3e, 0x01, 0x98, 0xb9, 0x63, 0x7b, 0xca, 0xc9, 0x06, 0xd7, 0x64, 0x08, 0xa3, 0xef, 0x41,
+	0xc9, 0x9a, 0x3a, 0x96, 0xdf, 0x6a, 0x32, 0x86, 0x4f, 0xa8, 0x3d, 0xcb, 0xf7, 0xed, 0xc0, 0x74,
+	0xc6, 0xad, 0x2d, 0x6e, 0x8f, 0xcd, 0xe5, 0x31, 0xbe, 0x0f, 0x65, 0xc7, 0x37, 0x27, 0xde, 0xb2,
+	0xb5, 0xbd, 0x97, 0xdb, 0xaf, 0x92, 0x92, 0xe3, 0x77, 0xbd, 0x25, 0x7e, 0xc1, 0x3d, 0xa0, 0x1d,
+	0x49, 0x0b, 0xfd, 0x64, 0x9b, 0x43, 0xbd, 0xeb, 0xd0, 0xc6, 0x65, 0x97, 0xb7, 0xe8, 0x77, 0x99,
+	0x46, 0x95, 0xf7, 0xf1, 0x9e, 0xc3, 0x9a, 0xf5, 0x55, 0x93, 0x8f, 0x33, 0x9b, 0x7c, 0xfc, 0x25,
+	0x94, 0x78, 0xf7, 0xb9, 0xc3, 0xf8, 0x9d, 0x8d, 0xee, 0x33, 0xa0, 0x2d, 0x5f, 0xd4, 0xeb, 0xfa,
+	0xac, 0x83, 0xa3, 0xfe, 0x59, 0xad, 0x7b, 0xec, 0x54, 0x53, 0xbd, 0xee, 0xba, 0x0d, 0x25, 0xe0,
+	0xaf, 0x5b, 0xd2, 0x6f, 0xa0, 0x46, 0xab, 0xbb, 0x69, 0x05, 0x81, 0xd7, 0x3a, 0x61, 0x2b, 0x3d,
+	0x7e, 0x5f, 0x53, 0xd2, 0xbb, 0x43, 0xaa, 0x54, 0x81, 0x22, 0xf8, 0x5b, 0xd6, 0x5d, 0xf1, 0x4f,
+	0x1b, 0xb7, 0xf0, 0x8c, 0x59, 0xf8, 0x34, 0x5c, 0xfa, 0xdd, 0x5f, 0xbd, 0xde, 0x1d, 0xd6, 0x56,
+	0x71, 0x9e, 0xd9, 0x7a, 0x09, 0xd5, 0x85, 0xbf, 0xe4, 0x56, 0x9e, 0x33, 0x2b, 0x8f, 0xde, 0xf3,
+	0xed, 0xea, 0xdd, 0x21, 0x95, 0x85, 0xbf, 0x64, 0x9a, 0xdf, 0x01, 0x0a, 0xd6, 0x45, 0x9c, 0x5b,
+	0x78, 0xc1, 0x2c, 0x7c, 0xf6, 0x21, 0x15, 0xbe, 0x77, 0x87, 0x6c, 0xc7, 0xf4, 0x29, 0x71, 0x0a,
+	0x50, 0xf5, 0x17, 0xf6, 0xc8, 0x99, 0x38, 0xa3, 0xf6, 0x8f, 0x39, 0xa8, 0x46, 0x4f, 0x33, 0xfc,
+	0x0d, 0xd4, 0x63, 0xef, 0xa8, 0x0f, 0x78, 0x46, 0xc1, 0x74, 0xf5, 0x82, 0xc2, 0x6d, 0x28, 0x7a,
+	0xae, 0x1b, 0xb0, 0x12, 0xb0, 0x99, 0x75, 0x8c, 0x5b, 0x2d, 0x70, 0xe5, 0xba, 0x81, 0x3d, 0x66,
+	0xd9, 0xff, 0x01, 0x0b, 0x9c, 0x32, 0xe9, 0xf6, 0x1f, 0xf3, 0xb0, 0x33, 0x70, 0xc7, 0xce, 0xc4,
+	0xb1, 0xae, 0xa6, 0xf6, 0xff, 0xaa, 0x20, 0x7d, 0xb1, 0x2a, 0x37, 0x85, 0x4c, 0xc7, 0xdf, 0x5d,
+	0x7e, 0x8a, 0x19, 0xe5, 0x67, 0x95, 0x90, 0xa5, 0x77, 0x25, 0x64, 0x39, 0x99, 0x90, 0x61, 0x0a,
+	0x55, 0xb2, 0x52, 0x28, 0xf5, 0x24, 0xad, 0x7e, 0xf8, 0x93, 0xf4, 0xe0, 0x2f, 0x05, 0xda, 0x23,
+	0xc7, 0xb6, 0xcb, 0x7b, 0xe4, 0x81, 0xa6, 0x2a, 0x92, 0x62, 0x6c, 0xf6, 0xc8, 0xbb, 0xf0, 0x60,
+	0x83, 0xe5, 0x9f, 0x93, 0x5c, 0x06, 0x27, 0xf6, 0x04, 0x5d, 0x97, 0xe9, 0x67, 0x70, 0xd3, 0xea,
+	0xa9, 0x20, 0x9e, 0x6b, 0x7d, 0x41, 0x91, 0x50, 0x21, 0x83, 0x15, 0x55, 0xc5, 0x10, 0x64, 0x45,
+	0x22, 0xa8, 0x48, 0x3b, 0xad, 0x14, 0xab, 0xa9, 0xaf, 0x68, 0x3b, 0x3e, 0xd4, 0xb4, 0xfe, 0x25,
+	0x2a, 0xd1, 0x1e, 0x36, 0x25, 0xd0, 0x15, 0x14, 0x54, 0xc6, 0x1f, 0xc1, 0xfd, 0x14, 0xae, 0x4b,
+	0x8a, 0xae, 0x12, 0x54, 0xc9, 0xa0, 0x06, 0x6a, 0x67, 0xd8, 0x97, 0x50, 0x95, 0x7e, 0xe3, 0x37,
+	0x96, 0x23, 0x06, 0xaa, 0x65, 0x2c, 0x23, 0x6a, 0x43, 0x04, 0x19, 0xfb, 0x3e, 0x15, 0x0c, 0x43,
+	0x22, 0x97, 0xa8, 0x9e, 0xc1, 0xe9, 0x86, 0x4a, 0x84, 0x33, 0x09, 0x35, 0xb2, 0x7c, 0x90, 0x06,
+	0x2a, 0xb9, 0x44, 0x4d, 0xfc, 0x31, 0xec, 0xa6, 0x28, 0x83, 0x08, 0x8a, 0x2e, 0x4a, 0xf2, 0x85,
+	0x44, 0xd0, 0xd6, 0xc1, 0x9f, 0x73, 0xb1, 0xa7, 0xf5, 0xfa, 0x68, 0x23, 0x3d, 0x53, 0xe8, 0x0c,
+	0x64, 0xc5, 0xd4, 0x0d, 0xc1, 0x48, 0x1e, 0x5f, 0x18, 0xe8, 0x14, 0x1f, 0x1d, 0xe0, 0x23, 0x78,
+	0xb8, 0xc1, 0xf6, 0x55, 0xf1, 0x5c, 0xea, 0xa0, 0x3c, 0x6e, 0xc3, 0xc7, 0x1b, 0xa4, 0xde, 0x1b,
+	0x1a, 0x86, 0xac, 0x9c, 0x99, 0x1d, 0x6a, 0xa0, 0x80, 0x9f, 0xc0, 0x47, 0x19, 0xe6, 0x43, 0x13,
+	0xc5, 0x83, 0x1f, 0x73, 0x80, 0x37, 0xff, 0x74, 0xac, 0xb4, 0x54, 0x8d, 0x1e, 0xea, 0x86, 0xcf,
+	0x91, 0x57, 0x09, 0x3a, 0x72, 0x39, 0xda, 0x50, 0x8c, 0xec, 0xc8, 0xba, 0x70, 0xda, 0x67, 0x3e,
+	0x67, 0xa8, 0x4a, 0x0a, 0x27, 0x0b, 0x59, 0xa4, 0x21, 0xe9, 0x74, 0x3b, 0xa8, 0x78, 0xf0, 0x87,
+	0x78, 0x80, 0xd7, 0xff, 0x56, 0x56, 0x01, 0x1e, 0xea, 0xb4, 0xdd, 0x7f, 0x77, 0x80, 0x93, 0x7c,
+	0xe4, 0x6d, 0x78, 0xe2, 0x09, 0x56, 0xee, 0xf4, 0xa5, 0x98, 0xab, 0x71, 0x4a, 0x10, 0x0d, 0xf9,
+	0x82, 0xe6, 0x47, 0x96, 0xde, 0xe9, 0x50, 0xbf, 0x44, 0xc5, 0x83, 0xdf, 0xc6, 0x7f, 0xb2, 0xac,
+	0xff, 0xe4, 0xac, 0x6f, 0x42, 0x5f, 0x20, 0x83, 0xf7, 0xdd, 0x84, 0x04, 0x1f, 0x39, 0xfa, 0x29,
+	0x3c, 0xc9, 0xd4, 0x26, 0x26, 0x91, 0x34, 0x41, 0x26, 0x28, 0xbf, 0x3e, 0xeb, 0x98, 0x88, 0x48,
+	0x64, 0x43, 0x16, 0x85, 0x3e, 0x2a, 0x44, 0x17, 0x3f, 0x41, 0x0f, 0x84, 0x6f, 0x55, 0x9a, 0xd0,
+	0x99, 0x9c, 0xac, 0xa8, 0x04, 0x95, 0x32, 0xfd, 0x7a, 0x25, 0x10, 0x85, 0x1e, 0x4b, 0x79, 0x7d,
+	0x09, 0x63, 0xac, 0xac, 0x74, 0x24, 0x43, 0x22, 0x03, 0x59, 0x11, 0x0c, 0x09, 0x55, 0x0e, 0xfe,
+	0x9a, 0x83, 0xfb, 0x99, 0xbf, 0xa7, 0xf0, 0x1e, 0x3c, 0x66, 0xda, 0xba, 0x21, 0x28, 0x9d, 0xd3,
+	0xcb, 0x8c, 0xa8, 0x44, 0x51, 0x4b, 0x4b, 0xa4, 0x4a, 0x5c, 0x8a, 0xef, 0xa9, 0x46, 0xec, 0x04,
+	0x93, 0x9c, 0xa8, 0xf6, 0xe9, 0x65, 0xdb, 0x87, 0xcf, 0x32, 0x48, 0x8d, 0xa8, 0x17, 0x72, 0x87,
+	0x26, 0x90, 0x2e, 0x91, 0x0b, 0x59, 0x94, 0x50, 0xf1, 0xe0, 0xef, 0x79, 0x68, 0x26, 0xfe, 0x7b,
+	0xe1, 0x16, 0xdc, 0xbb, 0x10, 0xfa, 0x43, 0x69, 0xb3, 0x1a, 0xdf, 0x03, 0x14, 0x63, 0xf8, 0xab,
+	0x20, 0x47, 0xeb, 0x54, 0x42, 0x9e, 0x3b, 0x9f, 0xa7, 0x85, 0x2d, 0x86, 0xd3, 0x27, 0xab, 0x6e,
+	0x0a, 0x22, 0x2a, 0x64, 0x12, 0x1d, 0x11, 0x15, 0x53, 0x96, 0x84, 0x81, 0x26, 0x11, 0x89, 0xbe,
+	0x58, 0x92, 0xeb, 0xbe, 0x12, 0x0c, 0x43, 0x47, 0xe5, 0x14, 0xda, 0x93, 0x88, 0xf1, 0x3d, 0xaa,
+	0xa4, 0x6c, 0x88, 0x52, 0x5f, 0x97, 0x87, 0x3a, 0xaa, 0xd2, 0x3b, 0x1d, 0xc3, 0x35, 0x89, 0x88,
+	0xb4, 0xd6, 0x91, 0x1e, 0xaa, 0x61, 0x0c, 0x5b, 0x31, 0x8a, 0x68, 0x03, 0x04, 0x29, 0x4c, 0x1c,
+	0x0c, 0x78, 0x71, 0x8d, 0x61, 0x06, 0x19, 0x1a, 0x3d, 0x93, 0x01, 0xa8, 0x71, 0xf0, 0xfb, 0x02,
+	0xc0, 0xfa, 0x61, 0xb7, 0x5e, 0x4d, 0x17, 0x85, 0x7e, 0x32, 0x88, 0xf7, 0xe1, 0x6e, 0x9c, 0xba,
+	0x54, 0x45, 0x43, 0x45, 0xb9, 0x34, 0xfc, 0xbd, 0xa4, 0x19, 0x2a, 0xca, 0xaf, 0x37, 0xc9, 0x61,
+	0xc1, 0x30, 0x54, 0x54, 0x48, 0x0b, 0x77, 0xa5, 0x81, 0xa1, 0xa2, 0x62, 0x5a, 0x58, 0x93, 0x45,
+	0x35, 0x1e, 0x3d, 0x8e, 0x2a, 0x82, 0xa2, 0xa2, 0x72, 0xda, 0xc4, 0x40, 0x16, 0x89, 0x8a, 0x2a,
+	0x9b, 0x70, 0xbf, 0x2f, 0xa3, 0x6a, 0x1a, 0x1e, 0x2a, 0xb2, 0xa1, 0xa3, 0x5a, 0xda, 0xf4, 0xb9,
+	0xdc, 0x57, 0x11, 0xa4, 0xd1, 0x81, 0x74, 0x26, 0xa0, 0x7a, 0x1a, 0x3d, 0x93, 0xcf, 0x04, 0xd4,
+	0x48, 0xa3, 0x86, 0x44, 0x04, 0xd4, 0xdc, 0xd8, 0x88, 0x64, 0x08, 0x68, 0x0b, 0xef, 0xc0, 0x76,
+	0x1c, 0x95, 0x5e, 0x0b, 0x68, 0x7b, 0x33, 0x6e, 0x86, 0x21, 0x20, 0xb4, 0x19, 0x65, 0x0a, 0xdf,
+	0x3d, 0xf8, 0x75, 0x0e, 0x1a, 0xf1, 0xdf, 0xae, 0x34, 0x8b, 0xf8, 0x47, 0x9a, 0xa5, 0xc8, 0x50,
+	0x4f, 0xdf, 0xf7, 0x24, 0xa9, 0x9e, 0xa3, 0x1c, 0xad, 0x44, 0x69, 0x15, 0xe1, 0x42, 0x90, 0xfb,
+	0xb4, 0xd0, 0xa3, 0x3c, 0xcd, 0xfa, 0x24, 0xad, 0xa8, 0x0a, 0xad, 0xf9, 0x82, 0x21, 0xab, 0x0a,
+	0xad, 0x55, 0xa7, 0xdf, 0x7c, 0xff, 0xf5, 0xb5, 0x13, 0xdc, 0x2c, 0xaf, 0x0e, 0x47, 0xee, 0xec,
+	0xc8, 0x5d, 0xd8, 0xf3, 0x91, 0xeb, 0x8d, 0x8f, 0xc6, 0xf6, 0xad, 0x33, 0xb2, 0xbf, 0x9a, 0x59,
+	0x73, 0xeb, 0xda, 0x9e, 0xd9, 0xf3, 0xe0, 0x2b, 0x67, 0x1e, 0xd8, 0xde, 0xc4, 0x1a, 0xd9, 0x47,
+	0xb7, 0xcf, 0x8e, 0xae, 0xdd, 0xa3, 0xf1, 0xcc, 0xb9, 0x2a, 0xb3, 0x6e, 0xf4, 0xd9, 0x7f, 0x02,
+	0x00, 0x00, 0xff, 0xff, 0xb6, 0x76, 0x31, 0xc6, 0x0b, 0x19, 0x00, 0x00,
 }
