diff --git a/go/voltha/events.pb.go b/go/voltha/events.pb.go
index fd6eba6..30a817f 100644
--- a/go/voltha/events.pb.go
+++ b/go/voltha/events.pb.go
@@ -76,136 +76,6 @@
 	return fileDescriptor_e63e6c07044fd2c4, []int{2, 0}
 }
 
-type AlarmEventType_Types int32
-
-const (
-	AlarmEventType_COMMUNICATION AlarmEventType_Types = 0
-	AlarmEventType_ENVIRONMENT   AlarmEventType_Types = 1
-	AlarmEventType_EQUIPMENT     AlarmEventType_Types = 2
-	AlarmEventType_SERVICE       AlarmEventType_Types = 3
-	AlarmEventType_PROCESSING    AlarmEventType_Types = 4
-	AlarmEventType_SECURITY      AlarmEventType_Types = 5
-)
-
-var AlarmEventType_Types_name = map[int32]string{
-	0: "COMMUNICATION",
-	1: "ENVIRONMENT",
-	2: "EQUIPMENT",
-	3: "SERVICE",
-	4: "PROCESSING",
-	5: "SECURITY",
-}
-
-var AlarmEventType_Types_value = map[string]int32{
-	"COMMUNICATION": 0,
-	"ENVIRONMENT":   1,
-	"EQUIPMENT":     2,
-	"SERVICE":       3,
-	"PROCESSING":    4,
-	"SECURITY":      5,
-}
-
-func (x AlarmEventType_Types) String() string {
-	return proto.EnumName(AlarmEventType_Types_name, int32(x))
-}
-
-func (AlarmEventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{8, 0}
-}
-
-type AlarmEventCategory_Types int32
-
-const (
-	AlarmEventCategory_PON AlarmEventCategory_Types = 0
-	AlarmEventCategory_OLT AlarmEventCategory_Types = 1
-	AlarmEventCategory_ONT AlarmEventCategory_Types = 2
-	AlarmEventCategory_ONU AlarmEventCategory_Types = 3
-	AlarmEventCategory_NNI AlarmEventCategory_Types = 4
-)
-
-var AlarmEventCategory_Types_name = map[int32]string{
-	0: "PON",
-	1: "OLT",
-	2: "ONT",
-	3: "ONU",
-	4: "NNI",
-}
-
-var AlarmEventCategory_Types_value = map[string]int32{
-	"PON": 0,
-	"OLT": 1,
-	"ONT": 2,
-	"ONU": 3,
-	"NNI": 4,
-}
-
-func (x AlarmEventCategory_Types) String() string {
-	return proto.EnumName(AlarmEventCategory_Types_name, int32(x))
-}
-
-func (AlarmEventCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{9, 0}
-}
-
-type AlarmEventState_Types int32
-
-const (
-	AlarmEventState_RAISED  AlarmEventState_Types = 0
-	AlarmEventState_CLEARED AlarmEventState_Types = 1
-)
-
-var AlarmEventState_Types_name = map[int32]string{
-	0: "RAISED",
-	1: "CLEARED",
-}
-
-var AlarmEventState_Types_value = map[string]int32{
-	"RAISED":  0,
-	"CLEARED": 1,
-}
-
-func (x AlarmEventState_Types) String() string {
-	return proto.EnumName(AlarmEventState_Types_name, int32(x))
-}
-
-func (AlarmEventState_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{10, 0}
-}
-
-type AlarmEventSeverity_Types int32
-
-const (
-	AlarmEventSeverity_INDETERMINATE AlarmEventSeverity_Types = 0
-	AlarmEventSeverity_WARNING       AlarmEventSeverity_Types = 1
-	AlarmEventSeverity_MINOR         AlarmEventSeverity_Types = 2
-	AlarmEventSeverity_MAJOR         AlarmEventSeverity_Types = 3
-	AlarmEventSeverity_CRITICAL      AlarmEventSeverity_Types = 4
-)
-
-var AlarmEventSeverity_Types_name = map[int32]string{
-	0: "INDETERMINATE",
-	1: "WARNING",
-	2: "MINOR",
-	3: "MAJOR",
-	4: "CRITICAL",
-}
-
-var AlarmEventSeverity_Types_value = map[string]int32{
-	"INDETERMINATE": 0,
-	"WARNING":       1,
-	"MINOR":         2,
-	"MAJOR":         3,
-	"CRITICAL":      4,
-}
-
-func (x AlarmEventSeverity_Types) String() string {
-	return proto.EnumName(AlarmEventSeverity_Types_name, int32(x))
-}
-
-func (AlarmEventSeverity_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{11, 0}
-}
-
 type EventCategory_Types int32
 
 const (
@@ -240,7 +110,7 @@
 }
 
 func (EventCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{14, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{9, 0}
 }
 
 type EventSubCategory_Types int32
@@ -274,7 +144,7 @@
 }
 
 func (EventSubCategory_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{15, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{10, 0}
 }
 
 type EventType_Types int32
@@ -305,7 +175,7 @@
 }
 
 func (EventType_Types) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16, 0}
+	return fileDescriptor_e63e6c07044fd2c4, []int{11, 0}
 }
 
 type ConfigEventType struct {
@@ -727,303 +597,6 @@
 }
 
 //
-// Identify to the area of the system impacted by the alarm
-// To be deprecated once python version of OpenOLT adapter
-// moves to the new event defination for device alarms
-type AlarmEventType struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventType) Reset()         { *m = AlarmEventType{} }
-func (m *AlarmEventType) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventType) ProtoMessage()    {}
-func (*AlarmEventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{8}
-}
-
-func (m *AlarmEventType) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventType.Unmarshal(m, b)
-}
-func (m *AlarmEventType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventType.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventType) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventType.Merge(m, src)
-}
-func (m *AlarmEventType) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventType.Size(m)
-}
-func (m *AlarmEventType) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventType.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventType proto.InternalMessageInfo
-
-//
-// Identify to the functional category originating the alarm
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventCategory struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventCategory) Reset()         { *m = AlarmEventCategory{} }
-func (m *AlarmEventCategory) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventCategory) ProtoMessage()    {}
-func (*AlarmEventCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{9}
-}
-
-func (m *AlarmEventCategory) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventCategory.Unmarshal(m, b)
-}
-func (m *AlarmEventCategory) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventCategory.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventCategory) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventCategory.Merge(m, src)
-}
-func (m *AlarmEventCategory) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventCategory.Size(m)
-}
-func (m *AlarmEventCategory) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventCategory.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventCategory proto.InternalMessageInfo
-
-//
-// Active state of the alarm
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventState struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventState) Reset()         { *m = AlarmEventState{} }
-func (m *AlarmEventState) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventState) ProtoMessage()    {}
-func (*AlarmEventState) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{10}
-}
-
-func (m *AlarmEventState) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventState.Unmarshal(m, b)
-}
-func (m *AlarmEventState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventState.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventState) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventState.Merge(m, src)
-}
-func (m *AlarmEventState) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventState.Size(m)
-}
-func (m *AlarmEventState) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventState.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventState proto.InternalMessageInfo
-
-//
-// Identify the overall impact of the alarm on the system
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEventSeverity struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEventSeverity) Reset()         { *m = AlarmEventSeverity{} }
-func (m *AlarmEventSeverity) String() string { return proto.CompactTextString(m) }
-func (*AlarmEventSeverity) ProtoMessage()    {}
-func (*AlarmEventSeverity) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{11}
-}
-
-func (m *AlarmEventSeverity) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEventSeverity.Unmarshal(m, b)
-}
-func (m *AlarmEventSeverity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEventSeverity.Marshal(b, m, deterministic)
-}
-func (m *AlarmEventSeverity) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEventSeverity.Merge(m, src)
-}
-func (m *AlarmEventSeverity) XXX_Size() int {
-	return xxx_messageInfo_AlarmEventSeverity.Size(m)
-}
-func (m *AlarmEventSeverity) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEventSeverity.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEventSeverity proto.InternalMessageInfo
-
-//
-// To be deprecated once python version of OpenOLT adapter
-// as well as OpenONU adapter moves to the new event
-// defination for device alarms
-type AlarmEvent struct {
-	// Unique ID for this alarm.  e.g. voltha.some_olt.1234
-	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
-	// Refers to the area of the system impacted by the alarm
-	Type AlarmEventType_Types `protobuf:"varint,2,opt,name=type,proto3,enum=voltha.AlarmEventType_Types" json:"type,omitempty"`
-	// Refers to functional category of the alarm
-	Category AlarmEventCategory_Types `protobuf:"varint,3,opt,name=category,proto3,enum=voltha.AlarmEventCategory_Types" json:"category,omitempty"`
-	// Current active state of the alarm
-	State AlarmEventState_Types `protobuf:"varint,4,opt,name=state,proto3,enum=voltha.AlarmEventState_Types" json:"state,omitempty"`
-	// Overall impact of the alarm on the system
-	Severity AlarmEventSeverity_Types `protobuf:"varint,5,opt,name=severity,proto3,enum=voltha.AlarmEventSeverity_Types" json:"severity,omitempty"`
-	// Timestamp at which the alarm was first raised
-	// TODO: Is this obsolete? Eventheader already has a raised_ts
-	RaisedTs *timestamp.Timestamp `protobuf:"bytes,6,opt,name=raised_ts,json=raisedTs,proto3" json:"raised_ts,omitempty"`
-	// Timestamp at which the alarm was reported
-	// TODO: Is this obsolete? Eventheader already has a reported_ts
-	ReportedTs *timestamp.Timestamp `protobuf:"bytes,7,opt,name=reported_ts,json=reportedTs,proto3" json:"reported_ts,omitempty"`
-	// Timestamp at which the alarm has changed since it was raised
-	ChangedTs *timestamp.Timestamp `protobuf:"bytes,8,opt,name=changed_ts,json=changedTs,proto3" json:"changed_ts,omitempty"`
-	// Identifier of the originating resource of the alarm
-	ResourceId string `protobuf:"bytes,9,opt,name=resource_id,json=resourceId,proto3" json:"resource_id,omitempty"`
-	// Textual explanation of the alarm
-	Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"`
-	// Key/Value storage for extra information that may give context to the alarm
-	Context map[string]string `protobuf:"bytes,11,rep,name=context,proto3" json:"context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	// logical device id
-	LogicalDeviceId string `protobuf:"bytes,12,opt,name=logical_device_id,json=logicalDeviceId,proto3" json:"logical_device_id,omitempty"`
-	// alarm_type  name indicates clearly the name of the alarm
-	AlarmTypeName        string   `protobuf:"bytes,13,opt,name=alarm_type_name,json=alarmTypeName,proto3" json:"alarm_type_name,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
-}
-
-func (m *AlarmEvent) Reset()         { *m = AlarmEvent{} }
-func (m *AlarmEvent) String() string { return proto.CompactTextString(m) }
-func (*AlarmEvent) ProtoMessage()    {}
-func (*AlarmEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{12}
-}
-
-func (m *AlarmEvent) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AlarmEvent.Unmarshal(m, b)
-}
-func (m *AlarmEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AlarmEvent.Marshal(b, m, deterministic)
-}
-func (m *AlarmEvent) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AlarmEvent.Merge(m, src)
-}
-func (m *AlarmEvent) XXX_Size() int {
-	return xxx_messageInfo_AlarmEvent.Size(m)
-}
-func (m *AlarmEvent) XXX_DiscardUnknown() {
-	xxx_messageInfo_AlarmEvent.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AlarmEvent proto.InternalMessageInfo
-
-func (m *AlarmEvent) GetId() string {
-	if m != nil {
-		return m.Id
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetType() AlarmEventType_Types {
-	if m != nil {
-		return m.Type
-	}
-	return AlarmEventType_COMMUNICATION
-}
-
-func (m *AlarmEvent) GetCategory() AlarmEventCategory_Types {
-	if m != nil {
-		return m.Category
-	}
-	return AlarmEventCategory_PON
-}
-
-func (m *AlarmEvent) GetState() AlarmEventState_Types {
-	if m != nil {
-		return m.State
-	}
-	return AlarmEventState_RAISED
-}
-
-func (m *AlarmEvent) GetSeverity() AlarmEventSeverity_Types {
-	if m != nil {
-		return m.Severity
-	}
-	return AlarmEventSeverity_INDETERMINATE
-}
-
-func (m *AlarmEvent) GetRaisedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.RaisedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetReportedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.ReportedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetChangedTs() *timestamp.Timestamp {
-	if m != nil {
-		return m.ChangedTs
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetResourceId() string {
-	if m != nil {
-		return m.ResourceId
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetDescription() string {
-	if m != nil {
-		return m.Description
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetContext() map[string]string {
-	if m != nil {
-		return m.Context
-	}
-	return nil
-}
-
-func (m *AlarmEvent) GetLogicalDeviceId() string {
-	if m != nil {
-		return m.LogicalDeviceId
-	}
-	return ""
-}
-
-func (m *AlarmEvent) GetAlarmTypeName() string {
-	if m != nil {
-		return m.AlarmTypeName
-	}
-	return ""
-}
-
-//
 // Describes the events specific to device
 type DeviceEvent struct {
 	// Identifier of the originating resource of the event, for ex: device_id
@@ -1043,7 +616,7 @@
 func (m *DeviceEvent) String() string { return proto.CompactTextString(m) }
 func (*DeviceEvent) ProtoMessage()    {}
 func (*DeviceEvent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{13}
+	return fileDescriptor_e63e6c07044fd2c4, []int{8}
 }
 
 func (m *DeviceEvent) XXX_Unmarshal(b []byte) error {
@@ -1104,7 +677,7 @@
 func (m *EventCategory) String() string { return proto.CompactTextString(m) }
 func (*EventCategory) ProtoMessage()    {}
 func (*EventCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{14}
+	return fileDescriptor_e63e6c07044fd2c4, []int{9}
 }
 
 func (m *EventCategory) XXX_Unmarshal(b []byte) error {
@@ -1137,7 +710,7 @@
 func (m *EventSubCategory) String() string { return proto.CompactTextString(m) }
 func (*EventSubCategory) ProtoMessage()    {}
 func (*EventSubCategory) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{15}
+	return fileDescriptor_e63e6c07044fd2c4, []int{10}
 }
 
 func (m *EventSubCategory) XXX_Unmarshal(b []byte) error {
@@ -1170,7 +743,7 @@
 func (m *EventType) String() string { return proto.CompactTextString(m) }
 func (*EventType) ProtoMessage()    {}
 func (*EventType) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{16}
+	return fileDescriptor_e63e6c07044fd2c4, []int{11}
 }
 
 func (m *EventType) XXX_Unmarshal(b []byte) error {
@@ -1228,7 +801,7 @@
 func (m *EventHeader) String() string { return proto.CompactTextString(m) }
 func (*EventHeader) ProtoMessage()    {}
 func (*EventHeader) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{17}
+	return fileDescriptor_e63e6c07044fd2c4, []int{12}
 }
 
 func (m *EventHeader) XXX_Unmarshal(b []byte) error {
@@ -1320,7 +893,7 @@
 func (m *Event) String() string { return proto.CompactTextString(m) }
 func (*Event) ProtoMessage()    {}
 func (*Event) Descriptor() ([]byte, []int) {
-	return fileDescriptor_e63e6c07044fd2c4, []int{18}
+	return fileDescriptor_e63e6c07044fd2c4, []int{13}
 }
 
 func (m *Event) XXX_Unmarshal(b []byte) error {
@@ -1424,10 +997,6 @@
 func init() {
 	proto.RegisterEnum("voltha.ConfigEventType_Types", ConfigEventType_Types_name, ConfigEventType_Types_value)
 	proto.RegisterEnum("voltha.KpiEventType_Types", KpiEventType_Types_name, KpiEventType_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventType_Types", AlarmEventType_Types_name, AlarmEventType_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventCategory_Types", AlarmEventCategory_Types_name, AlarmEventCategory_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventState_Types", AlarmEventState_Types_name, AlarmEventState_Types_value)
-	proto.RegisterEnum("voltha.AlarmEventSeverity_Types", AlarmEventSeverity_Types_name, AlarmEventSeverity_Types_value)
 	proto.RegisterEnum("voltha.EventCategory_Types", EventCategory_Types_name, EventCategory_Types_value)
 	proto.RegisterEnum("voltha.EventSubCategory_Types", EventSubCategory_Types_name, EventSubCategory_Types_value)
 	proto.RegisterEnum("voltha.EventType_Types", EventType_Types_name, EventType_Types_value)
@@ -1443,12 +1012,6 @@
 	proto.RegisterType((*KpiEvent)(nil), "voltha.KpiEvent")
 	proto.RegisterMapType((map[string]*MetricValuePairs)(nil), "voltha.KpiEvent.PrefixesEntry")
 	proto.RegisterType((*KpiEvent2)(nil), "voltha.KpiEvent2")
-	proto.RegisterType((*AlarmEventType)(nil), "voltha.AlarmEventType")
-	proto.RegisterType((*AlarmEventCategory)(nil), "voltha.AlarmEventCategory")
-	proto.RegisterType((*AlarmEventState)(nil), "voltha.AlarmEventState")
-	proto.RegisterType((*AlarmEventSeverity)(nil), "voltha.AlarmEventSeverity")
-	proto.RegisterType((*AlarmEvent)(nil), "voltha.AlarmEvent")
-	proto.RegisterMapType((map[string]string)(nil), "voltha.AlarmEvent.ContextEntry")
 	proto.RegisterType((*DeviceEvent)(nil), "voltha.DeviceEvent")
 	proto.RegisterMapType((map[string]string)(nil), "voltha.DeviceEvent.ContextEntry")
 	proto.RegisterType((*EventCategory)(nil), "voltha.EventCategory")
@@ -1461,92 +1024,76 @@
 func init() { proto.RegisterFile("voltha_protos/events.proto", fileDescriptor_e63e6c07044fd2c4) }
 
 var fileDescriptor_e63e6c07044fd2c4 = []byte{
-	// 1388 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0x5d, 0x6e, 0xdb, 0xc6,
-	0x16, 0x16, 0xa9, 0xff, 0x43, 0xd9, 0xa6, 0x27, 0x17, 0xf7, 0xea, 0x2a, 0xb9, 0x89, 0x2f, 0x8b,
-	0x06, 0x46, 0x82, 0x4a, 0xad, 0x5c, 0x20, 0x8e, 0xd3, 0xa2, 0x55, 0x64, 0x36, 0x66, 0x12, 0x51,
-	0x2e, 0x25, 0x3b, 0x68, 0x5f, 0x84, 0xb1, 0x38, 0x96, 0x08, 0x4b, 0xa2, 0x40, 0x8e, 0xd4, 0x78,
-	0x01, 0x7d, 0xee, 0x02, 0xba, 0x84, 0xee, 0xa1, 0x6f, 0x5d, 0x46, 0xd1, 0x4d, 0x74, 0x01, 0xc5,
-	0xfc, 0x50, 0x24, 0x65, 0xa5, 0x79, 0x30, 0xda, 0x3e, 0x69, 0x78, 0xe6, 0x7c, 0xe7, 0xe7, 0x3b,
-	0x73, 0xce, 0x8c, 0xa0, 0xb6, 0xf4, 0x27, 0x74, 0x8c, 0x07, 0xf3, 0xc0, 0xa7, 0x7e, 0xd8, 0x20,
-	0x4b, 0x32, 0xa3, 0x61, 0x9d, 0x7f, 0xa1, 0x82, 0xd8, 0xab, 0x55, 0xd3, 0x3a, 0x53, 0x42, 0xb1,
-	0xd0, 0xa8, 0xdd, 0x1b, 0xf9, 0xfe, 0x68, 0x42, 0x1a, 0x78, 0xee, 0x35, 0xf0, 0x6c, 0xe6, 0x53,
-	0x4c, 0x3d, 0x7f, 0x26, 0xf1, 0xb5, 0x07, 0x72, 0x97, 0x7f, 0x5d, 0x2c, 0x2e, 0x1b, 0xd4, 0x9b,
-	0x92, 0x90, 0xe2, 0xe9, 0x5c, 0x28, 0x18, 0xcf, 0x60, 0xa7, 0xed, 0xcf, 0x2e, 0xbd, 0x91, 0xc9,
-	0xdc, 0xf6, 0xaf, 0xe7, 0xc4, 0xd8, 0x87, 0x3c, 0xfb, 0x0d, 0x51, 0x11, 0xb2, 0xd8, 0x75, 0xf5,
-	0x0c, 0x02, 0x28, 0x04, 0x64, 0xea, 0x2f, 0x89, 0xae, 0xb0, 0xf5, 0x62, 0xee, 0x62, 0x4a, 0x74,
-	0xd5, 0x18, 0x83, 0x96, 0x00, 0xa3, 0x4f, 0x20, 0x47, 0xaf, 0xe7, 0xa4, 0xaa, 0xec, 0x29, 0xfb,
-	0xdb, 0xcd, 0xff, 0xd5, 0x45, 0xcc, 0xf5, 0x35, 0xfb, 0x75, 0x6e, 0xdc, 0xe1, 0xaa, 0x08, 0x41,
-	0x6e, 0x8c, 0xc3, 0x71, 0x55, 0xdd, 0x53, 0xf6, 0xcb, 0x0e, 0x5f, 0x33, 0x99, 0x8b, 0x29, 0xae,
-	0x66, 0x85, 0x8c, 0xad, 0x8d, 0x47, 0x50, 0x79, 0x35, 0xf7, 0xe2, 0x18, 0x6b, 0x51, 0x8c, 0x65,
-	0xc8, 0x87, 0x13, 0x6f, 0x48, 0xf4, 0x0c, 0x2a, 0x80, 0x4a, 0x43, 0x5d, 0x31, 0x7e, 0x52, 0x61,
-	0xbb, 0x43, 0x68, 0xe0, 0x0d, 0x3b, 0x84, 0xe2, 0x63, 0x4c, 0x31, 0xfa, 0x17, 0xe4, 0xa9, 0x47,
-	0x27, 0x22, 0xb4, 0xb2, 0x23, 0x3e, 0xd0, 0x36, 0x03, 0x70, 0xd7, 0x8a, 0xa3, 0xd2, 0x10, 0x3d,
-	0x82, 0xdd, 0x89, 0x3f, 0xf2, 0x86, 0x78, 0x32, 0x70, 0xc9, 0xd2, 0x1b, 0x92, 0x81, 0xe7, 0xca,
-	0x28, 0x76, 0xe4, 0xc6, 0x31, 0x97, 0x5b, 0x2e, 0xba, 0x0b, 0xe5, 0x90, 0x04, 0x1e, 0x9e, 0x0c,
-	0x66, 0x7e, 0x35, 0xc7, 0x75, 0x4a, 0x42, 0x60, 0xfb, 0x6c, 0x33, 0x36, 0x90, 0x17, 0x9b, 0x6e,
-	0x84, 0xfc, 0x1c, 0x8a, 0x43, 0x7f, 0x46, 0xc9, 0x5b, 0x5a, 0x2d, 0xec, 0x65, 0xf7, 0xb5, 0xe6,
-	0x07, 0x11, 0x51, 0xe9, 0xa0, 0x19, 0x6f, 0x4c, 0xcb, 0x9c, 0xd1, 0xe0, 0xda, 0x89, 0x30, 0x8c,
-	0x9d, 0xc5, 0xc2, 0x73, 0xab, 0x45, 0xc1, 0x0e, 0x5b, 0xd7, 0x8e, 0xa0, 0x92, 0x54, 0x46, 0x3a,
-	0x64, 0xaf, 0xc8, 0xb5, 0x4c, 0x96, 0x2d, 0x19, 0x01, 0x4b, 0x3c, 0x59, 0x10, 0x49, 0xb4, 0xf8,
-	0x38, 0x52, 0x0f, 0x15, 0xe3, 0x07, 0x05, 0x74, 0xe1, 0xf8, 0x9c, 0xc9, 0x4e, 0xb1, 0x17, 0x84,
-	0xe8, 0x0b, 0x28, 0x4e, 0xb9, 0x2c, 0xac, 0x2a, 0x3c, 0xc6, 0x0f, 0xd3, 0x31, 0xc6, 0xaa, 0x52,
-	0x10, 0xca, 0x28, 0x25, 0x8a, 0x45, 0x94, 0xdc, 0x78, 0x5f, 0x44, 0x6a, 0x32, 0xa2, 0x5f, 0x14,
-	0xd8, 0x15, 0x60, 0x6b, 0x76, 0xe9, 0x07, 0x53, 0x7e, 0xa0, 0x51, 0x13, 0x4a, 0xec, 0xd4, 0xf3,
-	0x93, 0xc1, 0xcc, 0x68, 0xcd, 0x7f, 0x6f, 0xe6, 0xcd, 0x59, 0xe9, 0xa1, 0x2f, 0xe3, 0x34, 0x54,
-	0x9e, 0xc6, 0xc3, 0x34, 0x24, 0x61, 0xff, 0x2f, 0xc8, 0xe3, 0x57, 0x05, 0x4a, 0xd1, 0xa1, 0x45,
-	0xf5, 0x54, 0x6f, 0xd4, 0xa2, 0x38, 0x92, 0x87, 0x3a, 0xd5, 0x18, 0xf1, 0xd9, 0x54, 0xf9, 0xd9,
-	0x3c, 0x82, 0xd2, 0x3c, 0x20, 0x97, 0xde, 0x5b, 0x12, 0x56, 0xb3, 0x3c, 0x97, 0xfb, 0xeb, 0x36,
-	0xea, 0xa7, 0x52, 0x41, 0xe4, 0xb0, 0xd2, 0xaf, 0x9d, 0xc1, 0x56, 0x6a, 0x6b, 0x43, 0x16, 0xf5,
-	0x64, 0x16, 0x5a, 0xb3, 0xfa, 0xae, 0x72, 0x27, 0xf3, 0xfb, 0x5e, 0x81, 0x72, 0xe4, 0xbb, 0x79,
-	0x8b, 0x04, 0x45, 0xf3, 0x1d, 0x02, 0xf0, 0x46, 0x1e, 0xc8, 0xde, 0x67, 0x29, 0xfe, 0xf7, 0x9d,
-	0xe5, 0x72, 0xca, 0x5c, 0x99, 0xd5, 0xdb, 0xf8, 0x0e, 0xb6, 0x5b, 0x13, 0x1c, 0x4c, 0xe3, 0xe9,
-	0x40, 0xa2, 0xe9, 0xb0, 0x0b, 0x5b, 0xed, 0x6e, 0xa7, 0x73, 0x66, 0x5b, 0xed, 0x56, 0xdf, 0xea,
-	0xda, 0x7a, 0x06, 0xed, 0x80, 0x66, 0xda, 0xe7, 0x96, 0xd3, 0xb5, 0x3b, 0xa6, 0xdd, 0xd7, 0x15,
-	0xb4, 0x05, 0x65, 0xf3, 0xeb, 0x33, 0xeb, 0x94, 0x7f, 0xaa, 0x48, 0x83, 0x62, 0xcf, 0x74, 0xce,
-	0xad, 0xb6, 0xa9, 0x67, 0xd1, 0x36, 0xc0, 0xa9, 0xd3, 0x6d, 0x9b, 0xbd, 0x9e, 0x65, 0xbf, 0xd0,
-	0x73, 0xa8, 0x02, 0xa5, 0x9e, 0xd9, 0x3e, 0x73, 0xac, 0xfe, 0x37, 0x7a, 0xde, 0x78, 0x09, 0x28,
-	0x76, 0xdc, 0xc6, 0x94, 0x8c, 0xfc, 0xe0, 0xda, 0xf8, 0x34, 0x31, 0x3e, 0x4f, 0xb9, 0xcb, 0x22,
-	0x64, 0xbb, 0xaf, 0x99, 0x2b, 0xb6, 0xe0, 0x4e, 0xf8, 0xe2, 0x4c, 0xcf, 0xb2, 0x85, 0x6d, 0x5b,
-	0x7a, 0xce, 0x38, 0x80, 0x9d, 0xd8, 0x56, 0x8f, 0x62, 0x4a, 0x8c, 0xbd, 0xc8, 0x10, 0x40, 0xc1,
-	0x69, 0x59, 0x3d, 0xf3, 0x58, 0xcf, 0xb0, 0xf0, 0xda, 0xaf, 0xcd, 0x96, 0x63, 0x1e, 0xeb, 0x8a,
-	0x81, 0x93, 0x01, 0xf4, 0xc8, 0x92, 0x04, 0x1e, 0xbd, 0x36, 0x5e, 0x25, 0xb2, 0xb7, 0xec, 0x63,
-	0xb3, 0x6f, 0x3a, 0x1d, 0xcb, 0x6e, 0xf5, 0x4d, 0x01, 0x7f, 0xd3, 0x72, 0x6c, 0x96, 0x8d, 0xc2,
-	0x66, 0x67, 0xc7, 0xb2, 0xbb, 0x8e, 0xae, 0xf2, 0x65, 0xeb, 0x65, 0xd7, 0xd1, 0xb3, 0x2c, 0xc7,
-	0xb6, 0x63, 0xf5, 0xad, 0x76, 0xeb, 0xb5, 0x9e, 0x33, 0x7e, 0xce, 0x03, 0xc4, 0x3e, 0x58, 0xd5,
-	0x3c, 0x57, 0x1e, 0x1c, 0xd5, 0x73, 0xd1, 0xc7, 0xb2, 0xea, 0x2a, 0xaf, 0xfa, 0xbd, 0xa8, 0x5e,
-	0xe9, 0x7a, 0xa4, 0xea, 0xfe, 0x19, 0x94, 0x86, 0x92, 0x2a, 0x3e, 0x5b, 0xb7, 0x9b, 0x7b, 0x37,
-	0x51, 0x11, 0x99, 0x12, 0xb9, 0x42, 0xa0, 0x03, 0xc8, 0x87, 0x8c, 0x1c, 0x3e, 0x72, 0x13, 0x77,
-	0xcc, 0x1a, 0x77, 0x12, 0x27, 0x74, 0x99, 0xcb, 0x50, 0x92, 0xc3, 0xa7, 0xf1, 0x46, 0x97, 0x11,
-	0x7d, 0x91, 0xcb, 0x08, 0x81, 0x9e, 0x40, 0x39, 0xc0, 0x5e, 0x48, 0xdc, 0x01, 0x0d, 0xab, 0x05,
-	0xde, 0x1e, 0xb5, 0xba, 0xb8, 0x56, 0xeb, 0xd1, 0xb5, 0x5a, 0xef, 0x47, 0xd7, 0xaa, 0x53, 0x12,
-	0xca, 0xfd, 0x10, 0x3d, 0x03, 0x2d, 0x20, 0x73, 0x3f, 0xa0, 0x02, 0x5a, 0x7c, 0x2f, 0x14, 0x22,
-	0xf5, 0x7e, 0x88, 0x9e, 0x02, 0x0c, 0xc7, 0x78, 0x36, 0x12, 0xd8, 0xd2, 0x7b, 0xb1, 0x65, 0xa9,
-	0xdd, 0x0f, 0xd1, 0x03, 0xe6, 0x37, 0xf4, 0x17, 0x81, 0xb8, 0x7f, 0xca, 0xbc, 0x58, 0x10, 0x89,
-	0x2c, 0x17, 0xed, 0x81, 0xe6, 0x92, 0x70, 0x18, 0x78, 0x73, 0xd6, 0x4a, 0x55, 0xe0, 0x0a, 0x49,
-	0x11, 0x7a, 0x1a, 0xdf, 0x51, 0x1a, 0xef, 0xc4, 0x07, 0x37, 0x09, 0x7b, 0xc7, 0xfd, 0xb4, 0xf1,
-	0x12, 0xad, 0x6c, 0xbe, 0x44, 0x1f, 0xc2, 0x0e, 0x66, 0xf6, 0x06, 0xec, 0x64, 0x0c, 0x66, 0x78,
-	0x4a, 0xaa, 0x5b, 0x5c, 0x73, 0x8b, 0x8b, 0x59, 0x25, 0x6c, 0x3c, 0x25, 0xb7, 0xba, 0xdf, 0x7e,
-	0x57, 0x40, 0x13, 0x0e, 0xc5, 0x09, 0x5e, 0x63, 0x47, 0xb9, 0xc1, 0xce, 0x23, 0xd8, 0x95, 0x81,
-	0xf3, 0x97, 0x98, 0x08, 0x4b, 0x98, 0xdd, 0x71, 0x63, 0x43, 0x2c, 0xb0, 0x75, 0x26, 0xb3, 0x37,
-	0x99, 0x3c, 0x8a, 0x99, 0xcc, 0x71, 0x26, 0x57, 0x47, 0x2f, 0x11, 0xd4, 0x66, 0x2a, 0x6f, 0x95,
-	0xf6, 0x12, 0xb6, 0xd2, 0x63, 0xe9, 0x6f, 0x9a, 0x89, 0x27, 0xa0, 0x8b, 0x76, 0x5a, 0x5c, 0xdc,
-	0x72, 0x22, 0xbe, 0x81, 0x72, 0x3c, 0xd1, 0x5f, 0x46, 0x26, 0x74, 0xa8, 0xb4, 0xbb, 0xf6, 0x57,
-	0xd6, 0x8b, 0x81, 0x79, 0xce, 0x82, 0xcb, 0xb0, 0x58, 0x5f, 0x9d, 0x5a, 0xf2, 0x53, 0x61, 0xe1,
-	0xad, 0x3e, 0x9b, 0xba, 0xca, 0x00, 0xc7, 0x26, 0x0b, 0x5d, 0x6a, 0x64, 0x8d, 0xdf, 0x54, 0xd0,
-	0xb8, 0xe5, 0x13, 0x82, 0x5d, 0x12, 0xdc, 0x98, 0x69, 0x4f, 0x12, 0x13, 0x4a, 0xcc, 0xb5, 0xbb,
-	0x51, 0xcd, 0xfe, 0x7c, 0x38, 0xb5, 0xa0, 0x12, 0x2e, 0x2e, 0x06, 0x6b, 0xe3, 0xed, 0x7e, 0x0a,
-	0x9c, 0xe0, 0x45, 0xe2, 0xb5, 0x30, 0x16, 0xa1, 0xc7, 0x72, 0x9e, 0x8a, 0xf1, 0xf6, 0x9f, 0x14,
-	0xf4, 0xc6, 0x28, 0xfd, 0x3f, 0x54, 0x78, 0xe3, 0x2c, 0x49, 0x10, 0xb2, 0xe3, 0x27, 0x5e, 0x9a,
-	0x1a, 0x93, 0x9d, 0x0b, 0xd1, 0x3f, 0x33, 0xbc, 0x8c, 0x1f, 0x55, 0xc8, 0x8b, 0x6e, 0x7b, 0x0c,
-	0x85, 0x31, 0x67, 0x59, 0xbe, 0xd9, 0xee, 0xa4, 0x32, 0x12, 0x05, 0x70, 0xa4, 0x0a, 0x3a, 0x84,
-	0xca, 0x90, 0xff, 0x57, 0x10, 0x9d, 0x27, 0xdf, 0x22, 0x77, 0x36, 0xfc, 0x8f, 0x38, 0xc9, 0x38,
-	0xda, 0x30, 0xf1, 0xcf, 0xa3, 0x01, 0xe5, 0xab, 0xb9, 0x27, 0x61, 0x59, 0x0e, 0xd3, 0xd7, 0x5f,
-	0x20, 0x27, 0x19, 0xa7, 0x74, 0x15, 0x3d, 0xc7, 0x9a, 0x00, 0x2b, 0x40, 0x93, 0xb3, 0xad, 0x35,
-	0x77, 0xd7, 0x11, 0xcd, 0x93, 0x8c, 0x53, 0xbe, 0x5a, 0xbd, 0x70, 0x0e, 0xa1, 0x92, 0x1c, 0x0c,
-	0x9c, 0xee, 0x44, 0x78, 0x89, 0x7e, 0x66, 0xe1, 0x25, 0x46, 0xc5, 0xf3, 0x0a, 0x80, 0x98, 0x25,
-	0xac, 0x34, 0xcf, 0x4d, 0xb8, 0xe3, 0x07, 0xa3, 0xba, 0x3f, 0x27, 0xb3, 0xa1, 0x1f, 0xb8, 0x12,
-	0xff, 0x6d, 0x7d, 0xe4, 0xd1, 0xf1, 0xe2, 0xa2, 0x3e, 0xf4, 0xa7, 0x8d, 0x68, 0xaf, 0x21, 0xf6,
-	0x3e, 0x92, 0x7f, 0xfb, 0x96, 0x07, 0x8d, 0x91, 0x2f, 0x65, 0x17, 0x05, 0x2e, 0x3c, 0xf8, 0x23,
-	0x00, 0x00, 0xff, 0xff, 0xe5, 0xa6, 0xf9, 0x0e, 0x3f, 0x0e, 0x00, 0x00,
+	// 1135 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x6e, 0xe3, 0x44,
+	0x14, 0x8e, 0x9d, 0x34, 0x3f, 0xc7, 0x69, 0xeb, 0xce, 0x22, 0x08, 0x59, 0xd8, 0x2d, 0x46, 0xa0,
+	0x6a, 0x57, 0x38, 0xc2, 0x8b, 0xb4, 0x55, 0x57, 0x08, 0x76, 0x53, 0xb3, 0x35, 0x4b, 0x93, 0xe0,
+	0xa6, 0x45, 0x70, 0x13, 0x4d, 0xe3, 0x69, 0x62, 0x35, 0xc9, 0x58, 0x9e, 0x49, 0xb4, 0x7d, 0x00,
+	0xae, 0x79, 0x00, 0x1e, 0x81, 0xe7, 0xe0, 0x31, 0x10, 0x2f, 0xc1, 0x03, 0xa0, 0xf9, 0x71, 0x62,
+	0x97, 0xae, 0xf6, 0x62, 0xc5, 0x95, 0x67, 0xce, 0x9c, 0x6f, 0xe6, 0x3b, 0x67, 0xce, 0x77, 0xc6,
+	0xd0, 0x5e, 0xd1, 0x19, 0x9f, 0xe2, 0x51, 0x92, 0x52, 0x4e, 0x59, 0x87, 0xac, 0xc8, 0x82, 0x33,
+	0x57, 0xce, 0x50, 0x55, 0xad, 0xb5, 0x5b, 0x45, 0x9f, 0x39, 0xe1, 0x58, 0x79, 0xb4, 0x3f, 0x9a,
+	0x50, 0x3a, 0x99, 0x91, 0x0e, 0x4e, 0xe2, 0x0e, 0x5e, 0x2c, 0x28, 0xc7, 0x3c, 0xa6, 0x0b, 0x8d,
+	0x6f, 0x3f, 0xd4, 0xab, 0x72, 0x76, 0xb9, 0xbc, 0xea, 0xf0, 0x78, 0x4e, 0x18, 0xc7, 0xf3, 0x44,
+	0x39, 0x38, 0xcf, 0x60, 0xb7, 0x4b, 0x17, 0x57, 0xf1, 0xc4, 0x17, 0xc7, 0x0e, 0x6f, 0x12, 0xe2,
+	0x1c, 0xc0, 0x96, 0xf8, 0x32, 0x54, 0x83, 0x32, 0x8e, 0x22, 0xbb, 0x84, 0x00, 0xaa, 0x29, 0x99,
+	0xd3, 0x15, 0xb1, 0x0d, 0x31, 0x5e, 0x26, 0x11, 0xe6, 0xc4, 0x36, 0x9d, 0x29, 0x58, 0x39, 0x30,
+	0xfa, 0x12, 0x2a, 0xfc, 0x26, 0x21, 0x2d, 0x63, 0xdf, 0x38, 0xd8, 0xf1, 0x3e, 0x76, 0x15, 0x67,
+	0xf7, 0xd6, 0xfe, 0xae, 0xdc, 0x3c, 0x94, 0xae, 0x08, 0x41, 0x65, 0x8a, 0xd9, 0xb4, 0x65, 0xee,
+	0x1b, 0x07, 0x8d, 0x50, 0x8e, 0x85, 0x2d, 0xc2, 0x1c, 0xb7, 0xca, 0xca, 0x26, 0xc6, 0xce, 0x23,
+	0x68, 0xbe, 0x4a, 0xe2, 0x0d, 0xc7, 0x76, 0xc6, 0xb1, 0x01, 0x5b, 0x6c, 0x16, 0x8f, 0x89, 0x5d,
+	0x42, 0x55, 0x30, 0x39, 0xb3, 0x0d, 0xe7, 0x0f, 0x13, 0x76, 0x4e, 0x09, 0x4f, 0xe3, 0xf1, 0x29,
+	0xe1, 0xf8, 0x18, 0x73, 0x8c, 0xde, 0x83, 0x2d, 0x1e, 0xf3, 0x99, 0xa2, 0xd6, 0x08, 0xd5, 0x04,
+	0xed, 0x08, 0x80, 0x3c, 0xda, 0x08, 0x4d, 0xce, 0xd0, 0x23, 0xd8, 0x9b, 0xd1, 0x49, 0x3c, 0xc6,
+	0xb3, 0x51, 0x44, 0x56, 0xf1, 0x98, 0x8c, 0xe2, 0x48, 0xb3, 0xd8, 0xd5, 0x0b, 0xc7, 0xd2, 0x1e,
+	0x44, 0xe8, 0x3e, 0x34, 0x18, 0x49, 0x63, 0x3c, 0x1b, 0x2d, 0x68, 0xab, 0x22, 0x7d, 0xea, 0xca,
+	0xd0, 0xa3, 0x62, 0x71, 0xb3, 0xc1, 0x96, 0x5a, 0x8c, 0x32, 0xe4, 0xd7, 0x50, 0x1b, 0xd3, 0x05,
+	0x27, 0xaf, 0x79, 0xab, 0xba, 0x5f, 0x3e, 0xb0, 0xbc, 0x4f, 0xb3, 0x44, 0x15, 0x49, 0x8b, 0xbc,
+	0x09, 0x2f, 0x7f, 0xc1, 0xd3, 0x9b, 0x30, 0xc3, 0x88, 0xec, 0x2c, 0x97, 0x71, 0xd4, 0xaa, 0xa9,
+	0xec, 0x88, 0x71, 0xfb, 0x08, 0x9a, 0x79, 0x67, 0x64, 0x43, 0xf9, 0x9a, 0xdc, 0xe8, 0x60, 0xc5,
+	0x50, 0x24, 0x60, 0x85, 0x67, 0x4b, 0xa2, 0x13, 0xad, 0x26, 0x47, 0xe6, 0xa1, 0xe1, 0xfc, 0x66,
+	0x80, 0xad, 0x0e, 0xbe, 0x10, 0xb6, 0x01, 0x8e, 0x53, 0x86, 0xbe, 0x81, 0xda, 0x5c, 0xda, 0x58,
+	0xcb, 0x90, 0x1c, 0x3f, 0x2b, 0x72, 0xdc, 0xb8, 0x6a, 0x03, 0xd3, 0x2c, 0x35, 0x4a, 0x30, 0xca,
+	0x2f, 0xbc, 0x8d, 0x91, 0x99, 0x67, 0xf4, 0xa7, 0x01, 0x7b, 0x0a, 0x1c, 0x2c, 0xae, 0x68, 0x3a,
+	0x97, 0x05, 0x8d, 0x3c, 0xa8, 0x8b, 0xaa, 0x97, 0x95, 0x21, 0xb6, 0xb1, 0xbc, 0xf7, 0xef, 0xce,
+	0x5b, 0xb8, 0xf6, 0x43, 0xdf, 0x6e, 0xc2, 0x30, 0x65, 0x18, 0x9f, 0x17, 0x21, 0xb9, 0xfd, 0xff,
+	0x87, 0x38, 0xfe, 0x32, 0xa0, 0x9e, 0x15, 0x2d, 0x72, 0x0b, 0xda, 0x68, 0x67, 0x3c, 0xf2, 0x45,
+	0x5d, 0x10, 0xc6, 0xa6, 0x36, 0x4d, 0x59, 0x9b, 0x47, 0x50, 0x4f, 0x52, 0x72, 0x15, 0xbf, 0x26,
+	0xac, 0x55, 0x96, 0xb1, 0x3c, 0xb8, 0xbd, 0x87, 0x3b, 0xd0, 0x0e, 0x2a, 0x86, 0xb5, 0x7f, 0xfb,
+	0x1c, 0xb6, 0x0b, 0x4b, 0x77, 0x44, 0xe1, 0xe6, 0xa3, 0xb0, 0xbc, 0xd6, 0x9b, 0xae, 0x3b, 0x1f,
+	0xdf, 0xaf, 0x06, 0x34, 0xb2, 0xb3, 0xbd, 0x77, 0x08, 0x50, 0x89, 0xef, 0x10, 0x40, 0x0a, 0x79,
+	0xa4, 0xb5, 0x2f, 0x42, 0xfc, 0xf0, 0x8d, 0xd7, 0x15, 0x36, 0xa4, 0xb3, 0xb8, 0x6f, 0xe7, 0x1f,
+	0x03, 0x2c, 0xa5, 0x4b, 0x95, 0xea, 0x87, 0x60, 0xa5, 0x84, 0xd1, 0x65, 0xaa, 0xf4, 0xa7, 0xa2,
+	0x84, 0xcc, 0x14, 0x44, 0x42, 0xe7, 0x5a, 0x9e, 0xb2, 0xd7, 0x8e, 0x16, 0x78, 0x9e, 0x09, 0x63,
+	0x37, 0xda, 0x6c, 0xd4, 0xc3, 0x73, 0x82, 0xf6, 0xc1, 0x8a, 0x08, 0x1b, 0xa7, 0x71, 0x22, 0x8e,
+	0xd5, 0xdd, 0x20, 0x6f, 0x42, 0x47, 0x1b, 0x3d, 0x57, 0x24, 0xeb, 0xfd, 0x8c, 0x75, 0x8e, 0xd4,
+	0xdd, 0x62, 0x7e, 0x27, 0xe1, 0xae, 0x60, 0x5b, 0x6e, 0xdd, 0xc5, 0x9c, 0x4c, 0x68, 0x7a, 0xe3,
+	0x90, 0xac, 0x27, 0xee, 0xc1, 0x76, 0xb7, 0x7f, 0x7a, 0x7a, 0xde, 0x0b, 0xba, 0xcf, 0x87, 0x41,
+	0xbf, 0x67, 0x97, 0xd0, 0x2e, 0x58, 0x7e, 0xef, 0x22, 0x08, 0xfb, 0xbd, 0x53, 0xbf, 0x37, 0xb4,
+	0x0d, 0xb4, 0x0d, 0x0d, 0xff, 0xc7, 0xf3, 0x60, 0x20, 0xa7, 0x26, 0xb2, 0xa0, 0x76, 0xe6, 0x87,
+	0x17, 0x41, 0xd7, 0xb7, 0xcb, 0x68, 0x07, 0x60, 0x10, 0xf6, 0xbb, 0xfe, 0xd9, 0x59, 0xd0, 0x7b,
+	0x69, 0x57, 0x50, 0x13, 0xea, 0x67, 0x7e, 0xf7, 0x3c, 0x0c, 0x86, 0x3f, 0xdb, 0x5b, 0xce, 0x09,
+	0xd8, 0xf2, 0xdc, 0xb3, 0xe5, 0xe5, 0xfa, 0xe8, 0xaf, 0x72, 0x4f, 0xc6, 0x40, 0x1e, 0x58, 0x83,
+	0x72, 0xff, 0x07, 0x71, 0x90, 0x18, 0xc8, 0x23, 0xe4, 0xe0, 0xdc, 0x2e, 0x8b, 0x41, 0xaf, 0x17,
+	0xd8, 0x15, 0xe7, 0x27, 0x68, 0x6c, 0x3a, 0xfa, 0xf7, 0xd9, 0x16, 0x36, 0x34, 0xbb, 0xfd, 0xde,
+	0x77, 0xc1, 0xcb, 0x91, 0x7f, 0x21, 0xc8, 0x95, 0x04, 0xd7, 0x57, 0x83, 0x40, 0x4f, 0x0d, 0x41,
+	0x6f, 0x3d, 0xf5, 0x6c, 0x53, 0x00, 0x8e, 0x7d, 0x41, 0x5d, 0x7b, 0x94, 0x9d, 0xbf, 0x4d, 0xb0,
+	0xe4, 0xce, 0x27, 0x04, 0x47, 0x24, 0x15, 0xb5, 0xb6, 0x2e, 0x04, 0x33, 0x8e, 0xd0, 0x53, 0xa8,
+	0x8f, 0x35, 0x75, 0x99, 0xd7, 0x1d, 0xef, 0x7e, 0x76, 0x67, 0x85, 0x94, 0xea, 0x82, 0x5d, 0x3b,
+	0xa3, 0xe7, 0xd0, 0x64, 0xcb, 0xcb, 0xd1, 0x1a, 0x5c, 0x96, 0xe0, 0x07, 0x05, 0x70, 0x2e, 0x2f,
+	0x1a, 0x6f, 0xb1, 0x8d, 0x09, 0x3d, 0xd6, 0x3a, 0xa9, 0x48, 0xe8, 0x07, 0x05, 0xe8, 0x7f, 0x44,
+	0xf2, 0x09, 0x34, 0xc5, 0x77, 0xb4, 0x22, 0x29, 0x13, 0xe5, 0xa7, 0xde, 0x12, 0x4b, 0xd8, 0x2e,
+	0x94, 0x09, 0x3d, 0x85, 0x46, 0x8a, 0x63, 0x46, 0xa2, 0x11, 0x67, 0xad, 0xaa, 0x54, 0x6f, 0xdb,
+	0x55, 0xaf, 0xbe, 0x9b, 0xbd, 0xfa, 0xee, 0x30, 0x7b, 0xf5, 0xc3, 0xba, 0x72, 0x1e, 0x32, 0xf4,
+	0x4c, 0xc8, 0x24, 0xa1, 0x29, 0x57, 0xd0, 0xda, 0x5b, 0xa1, 0x90, 0xb9, 0x0f, 0x99, 0xf3, 0xbb,
+	0x09, 0x5b, 0x4a, 0x6d, 0x8f, 0xa1, 0x3a, 0x95, 0x59, 0xd6, 0x5d, 0xf9, 0x5e, 0x21, 0x22, 0x75,
+	0x01, 0xa1, 0x76, 0x41, 0x87, 0xd0, 0x1c, 0xcb, 0xbf, 0x01, 0xa5, 0x3c, 0xdd, 0x6d, 0xee, 0xdd,
+	0xf1, 0xa7, 0x70, 0x52, 0x0a, 0xad, 0x71, 0xee, 0xdf, 0xa2, 0x03, 0x8d, 0xeb, 0x24, 0xd6, 0xb0,
+	0xb2, 0x84, 0xd9, 0xb7, 0x7b, 0xcc, 0x49, 0x29, 0xac, 0x5f, 0x67, 0x0d, 0xd7, 0x03, 0x58, 0x03,
+	0x3c, 0x99, 0x6d, 0xcb, 0xdb, 0xbb, 0x8d, 0xf0, 0x4e, 0x4a, 0x61, 0xe3, 0x7a, 0xdd, 0xc3, 0x0e,
+	0xa1, 0x99, 0x6f, 0x0c, 0x32, 0xdd, 0x39, 0x7a, 0x39, 0x3d, 0x0b, 0x7a, 0xb9, 0x56, 0xf1, 0xa2,
+	0x09, 0xa0, 0x7a, 0x89, 0xb8, 0x9a, 0x17, 0x3e, 0xdc, 0xa3, 0xe9, 0xc4, 0xa5, 0x09, 0x59, 0x8c,
+	0x69, 0x1a, 0x69, 0xfc, 0x2f, 0xee, 0x24, 0xe6, 0xd3, 0xe5, 0xa5, 0x3b, 0xa6, 0xf3, 0x4e, 0xb6,
+	0xd6, 0x51, 0x6b, 0x5f, 0xe8, 0x1f, 0xbb, 0xd5, 0x93, 0xce, 0x84, 0x6a, 0xdb, 0x65, 0x55, 0x1a,
+	0x9f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x6d, 0xad, 0x4a, 0x9a, 0x21, 0x0a, 0x00, 0x00,
 }
