diff --git a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/enums.pb.go b/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/enums.pb.go
deleted file mode 100644
index 2513966533fc00a4c1d7465c6e9a13d986eea507..0000000000000000000000000000000000000000
--- a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/enums.pb.go
+++ /dev/null
@@ -1,151 +0,0 @@
-// openconfig.enums is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/enums/enums.proto
-
-package gosdn
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	_ "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// IETFInterfacesInterfaceType represents an enumerated type generated for the YANG identity interface-type.
-type IETFInterfacesInterfaceType int32
-
-const (
-	IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET IETFInterfacesInterfaceType = 0
-)
-
-// Enum value maps for IETFInterfacesInterfaceType.
-var (
-	IETFInterfacesInterfaceType_name = map[int32]string{
-		0: "IETFINTERFACESINTERFACETYPE_UNSET",
-	}
-	IETFInterfacesInterfaceType_value = map[string]int32{
-		"IETFINTERFACESINTERFACETYPE_UNSET": 0,
-	}
-)
-
-func (x IETFInterfacesInterfaceType) Enum() *IETFInterfacesInterfaceType {
-	p := new(IETFInterfacesInterfaceType)
-	*p = x
-	return p
-}
-
-func (x IETFInterfacesInterfaceType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (IETFInterfacesInterfaceType) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_enums_enums_proto_enumTypes[0].Descriptor()
-}
-
-func (IETFInterfacesInterfaceType) Type() protoreflect.EnumType {
-	return &file_openconfig_enums_enums_proto_enumTypes[0]
-}
-
-func (x IETFInterfacesInterfaceType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use IETFInterfacesInterfaceType.Descriptor instead.
-func (IETFInterfacesInterfaceType) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_enums_enums_proto_rawDescGZIP(), []int{0}
-}
-
-var File_openconfig_enums_enums_proto protoreflect.FileDescriptor
-
-var file_openconfig_enums_enums_proto_rawDesc = []byte{
-	0x0a, 0x1c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x75,
-	0x6d, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73,
-	0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68,
-	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78,
-	0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0x44, 0x0a, 0x1b,
-	0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x49,
-	0x45, 0x54, 0x46, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x53, 0x49, 0x4e, 0x54,
-	0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54,
-	0x10, 0x00, 0x42, 0x20, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x66, 0x62, 0x69,
-	0x2e, 0x68, 0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x63, 0x6f, 0x63, 0x73, 0x6e, 0x2f, 0x67,
-	0x6f, 0x73, 0x64, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_enums_enums_proto_rawDescOnce sync.Once
-	file_openconfig_enums_enums_proto_rawDescData = file_openconfig_enums_enums_proto_rawDesc
-)
-
-func file_openconfig_enums_enums_proto_rawDescGZIP() []byte {
-	file_openconfig_enums_enums_proto_rawDescOnce.Do(func() {
-		file_openconfig_enums_enums_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_enums_enums_proto_rawDescData)
-	})
-	return file_openconfig_enums_enums_proto_rawDescData
-}
-
-var file_openconfig_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_openconfig_enums_enums_proto_goTypes = []interface{}{
-	(IETFInterfacesInterfaceType)(0), // 0: openconfig.enums.IETFInterfacesInterfaceType
-}
-var file_openconfig_enums_enums_proto_depIdxs = []int32{
-	0, // [0:0] is the sub-list for method output_type
-	0, // [0:0] is the sub-list for method input_type
-	0, // [0:0] is the sub-list for extension type_name
-	0, // [0:0] is the sub-list for extension extendee
-	0, // [0:0] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_enums_enums_proto_init() }
-func file_openconfig_enums_enums_proto_init() {
-	if File_openconfig_enums_enums_proto != nil {
-		return
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_enums_enums_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   0,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_enums_enums_proto_goTypes,
-		DependencyIndexes: file_openconfig_enums_enums_proto_depIdxs,
-		EnumInfos:         file_openconfig_enums_enums_proto_enumTypes,
-	}.Build()
-	File_openconfig_enums_enums_proto = out.File
-	file_openconfig_enums_enums_proto_rawDesc = nil
-	file_openconfig_enums_enums_proto_goTypes = nil
-	file_openconfig_enums_enums_proto_depIdxs = nil
-}
diff --git a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig.pb.go b/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig.pb.go
deleted file mode 100644
index fda5833bb53a461835874bcff8b76a4140dc11c4..0000000000000000000000000000000000000000
--- a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig.pb.go
+++ /dev/null
@@ -1,177 +0,0 @@
-// openconfig is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/openconfig.proto
-
-package gosdn
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	_ "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-type Device struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interfaces *Interfaces `protobuf:"bytes,85031486,opt,name=interfaces,proto3" json:"interfaces,omitempty"`
-}
-
-func (x *Device) Reset() {
-	*x = Device{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Device) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Device) ProtoMessage() {}
-
-func (x *Device) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Device.ProtoReflect.Descriptor instead.
-func (*Device) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Device) GetInterfaces() *Interfaces {
-	if x != nil {
-		return x.Interfaces
-	}
-	return nil
-}
-
-var File_openconfig_openconfig_proto protoreflect.FileDescriptor
-
-var file_openconfig_openconfig_proto_rawDesc = []byte{
-	0x0a, 0x1b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a,
-	0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xbe, 0xf4, 0xc5, 0x28,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x42, 0x0e, 0x82, 0x41, 0x0b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x20,
-	0x5a, 0x1e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68, 0x2d, 0x64,
-	0x61, 0x2e, 0x64, 0x65, 0x2f, 0x63, 0x6f, 0x63, 0x73, 0x6e, 0x2f, 0x67, 0x6f, 0x73, 0x64, 0x6e,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_openconfig_proto_rawDescOnce sync.Once
-	file_openconfig_openconfig_proto_rawDescData = file_openconfig_openconfig_proto_rawDesc
-)
-
-func file_openconfig_openconfig_proto_rawDescGZIP() []byte {
-	file_openconfig_openconfig_proto_rawDescOnce.Do(func() {
-		file_openconfig_openconfig_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_openconfig_proto_rawDescData)
-	})
-	return file_openconfig_openconfig_proto_rawDescData
-}
-
-var file_openconfig_openconfig_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_openconfig_openconfig_proto_goTypes = []interface{}{
-	(*Device)(nil),     // 0: openconfig.Device
-	(*Interfaces)(nil), // 1: openconfig.openconfig_interfaces.Interfaces
-}
-var file_openconfig_openconfig_proto_depIdxs = []int32{
-	1, // 0: openconfig.Device.interfaces:type_name -> openconfig.openconfig_interfaces.Interfaces
-	1, // [1:1] is the sub-list for method output_type
-	1, // [1:1] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_openconfig_proto_init() }
-func file_openconfig_openconfig_proto_init() {
-	if File_openconfig_openconfig_proto != nil {
-		return
-	}
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_openconfig_openconfig_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Device); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_openconfig_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   1,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_openconfig_proto_goTypes,
-		DependencyIndexes: file_openconfig_openconfig_proto_depIdxs,
-		MessageInfos:      file_openconfig_openconfig_proto_msgTypes,
-	}.Build()
-	File_openconfig_openconfig_proto = out.File
-	file_openconfig_openconfig_proto_rawDesc = nil
-	file_openconfig_openconfig_proto_goTypes = nil
-	file_openconfig_openconfig_proto_depIdxs = nil
-}
diff --git a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig_interfaces.pb.go b/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig_interfaces.pb.go
deleted file mode 100644
index 9802a14b71ad60f6bd5de8f298286a553d3a1c0e..0000000000000000000000000000000000000000
--- a/api/proto/gitlab.fbi.h-da.de/cocsn/gosdn/openconfig_interfaces.pb.go
+++ /dev/null
@@ -1,2622 +0,0 @@
-// openconfig.openconfig_interfaces is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/openconfig_interfaces/openconfig_interfaces.proto
-
-package gosdn
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	ywrapper "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-type Interfaces_Interface_State_AdminStatus int32
-
-const (
-	Interfaces_Interface_State_ADMINSTATUS_UNSET   Interfaces_Interface_State_AdminStatus = 0
-	Interfaces_Interface_State_ADMINSTATUS_UP      Interfaces_Interface_State_AdminStatus = 1
-	Interfaces_Interface_State_ADMINSTATUS_DOWN    Interfaces_Interface_State_AdminStatus = 2
-	Interfaces_Interface_State_ADMINSTATUS_TESTING Interfaces_Interface_State_AdminStatus = 3
-)
-
-// Enum value maps for Interfaces_Interface_State_AdminStatus.
-var (
-	Interfaces_Interface_State_AdminStatus_name = map[int32]string{
-		0: "ADMINSTATUS_UNSET",
-		1: "ADMINSTATUS_UP",
-		2: "ADMINSTATUS_DOWN",
-		3: "ADMINSTATUS_TESTING",
-	}
-	Interfaces_Interface_State_AdminStatus_value = map[string]int32{
-		"ADMINSTATUS_UNSET":   0,
-		"ADMINSTATUS_UP":      1,
-		"ADMINSTATUS_DOWN":    2,
-		"ADMINSTATUS_TESTING": 3,
-	}
-)
-
-func (x Interfaces_Interface_State_AdminStatus) Enum() *Interfaces_Interface_State_AdminStatus {
-	p := new(Interfaces_Interface_State_AdminStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_State_AdminStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_State_AdminStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[0].Descriptor()
-}
-
-func (Interfaces_Interface_State_AdminStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[0]
-}
-
-func (x Interfaces_Interface_State_AdminStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_AdminStatus.Descriptor instead.
-func (Interfaces_Interface_State_AdminStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 0}
-}
-
-type Interfaces_Interface_State_OperStatus int32
-
-const (
-	Interfaces_Interface_State_OPERSTATUS_UNSET            Interfaces_Interface_State_OperStatus = 0
-	Interfaces_Interface_State_OPERSTATUS_UP               Interfaces_Interface_State_OperStatus = 2
-	Interfaces_Interface_State_OPERSTATUS_DOWN             Interfaces_Interface_State_OperStatus = 3
-	Interfaces_Interface_State_OPERSTATUS_TESTING          Interfaces_Interface_State_OperStatus = 4
-	Interfaces_Interface_State_OPERSTATUS_UNKNOWN          Interfaces_Interface_State_OperStatus = 5
-	Interfaces_Interface_State_OPERSTATUS_DORMANT          Interfaces_Interface_State_OperStatus = 6
-	Interfaces_Interface_State_OPERSTATUS_NOT_PRESENT      Interfaces_Interface_State_OperStatus = 7
-	Interfaces_Interface_State_OPERSTATUS_LOWER_LAYER_DOWN Interfaces_Interface_State_OperStatus = 8
-)
-
-// Enum value maps for Interfaces_Interface_State_OperStatus.
-var (
-	Interfaces_Interface_State_OperStatus_name = map[int32]string{
-		0: "OPERSTATUS_UNSET",
-		2: "OPERSTATUS_UP",
-		3: "OPERSTATUS_DOWN",
-		4: "OPERSTATUS_TESTING",
-		5: "OPERSTATUS_UNKNOWN",
-		6: "OPERSTATUS_DORMANT",
-		7: "OPERSTATUS_NOT_PRESENT",
-		8: "OPERSTATUS_LOWER_LAYER_DOWN",
-	}
-	Interfaces_Interface_State_OperStatus_value = map[string]int32{
-		"OPERSTATUS_UNSET":            0,
-		"OPERSTATUS_UP":               2,
-		"OPERSTATUS_DOWN":             3,
-		"OPERSTATUS_TESTING":          4,
-		"OPERSTATUS_UNKNOWN":          5,
-		"OPERSTATUS_DORMANT":          6,
-		"OPERSTATUS_NOT_PRESENT":      7,
-		"OPERSTATUS_LOWER_LAYER_DOWN": 8,
-	}
-)
-
-func (x Interfaces_Interface_State_OperStatus) Enum() *Interfaces_Interface_State_OperStatus {
-	p := new(Interfaces_Interface_State_OperStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_State_OperStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_State_OperStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[1].Descriptor()
-}
-
-func (Interfaces_Interface_State_OperStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[1]
-}
-
-func (x Interfaces_Interface_State_OperStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_OperStatus.Descriptor instead.
-func (Interfaces_Interface_State_OperStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 1}
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus int32
-
-const (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UNSET   Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 0
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UP      Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 1
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_DOWN    Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 2
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_TESTING Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 3
-)
-
-// Enum value maps for Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus.
-var (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus_name = map[int32]string{
-		0: "ADMINSTATUS_UNSET",
-		1: "ADMINSTATUS_UP",
-		2: "ADMINSTATUS_DOWN",
-		3: "ADMINSTATUS_TESTING",
-	}
-	Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus_value = map[string]int32{
-		"ADMINSTATUS_UNSET":   0,
-		"ADMINSTATUS_UP":      1,
-		"ADMINSTATUS_DOWN":    2,
-		"ADMINSTATUS_TESTING": 3,
-	}
-)
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Enum() *Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus {
-	p := new(Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[2].Descriptor()
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[2]
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus.Descriptor instead.
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 0}
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus int32
-
-const (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNSET            Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 0
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UP               Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 2
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_DOWN             Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 3
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_TESTING          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 4
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNKNOWN          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 5
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_DORMANT          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 6
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_NOT_PRESENT      Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 7
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_LOWER_LAYER_DOWN Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 8
-)
-
-// Enum value maps for Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus.
-var (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus_name = map[int32]string{
-		0: "OPERSTATUS_UNSET",
-		2: "OPERSTATUS_UP",
-		3: "OPERSTATUS_DOWN",
-		4: "OPERSTATUS_TESTING",
-		5: "OPERSTATUS_UNKNOWN",
-		6: "OPERSTATUS_DORMANT",
-		7: "OPERSTATUS_NOT_PRESENT",
-		8: "OPERSTATUS_LOWER_LAYER_DOWN",
-	}
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus_value = map[string]int32{
-		"OPERSTATUS_UNSET":            0,
-		"OPERSTATUS_UP":               2,
-		"OPERSTATUS_DOWN":             3,
-		"OPERSTATUS_TESTING":          4,
-		"OPERSTATUS_UNKNOWN":          5,
-		"OPERSTATUS_DORMANT":          6,
-		"OPERSTATUS_NOT_PRESENT":      7,
-		"OPERSTATUS_LOWER_LAYER_DOWN": 8,
-	}
-)
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Enum() *Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus {
-	p := new(Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[3].Descriptor()
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[3]
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus.Descriptor instead.
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 1}
-}
-
-type Interfaces struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interface []*Interfaces_InterfaceKey `protobuf:"bytes,422482938,rep,name=interface,proto3" json:"interface,omitempty"`
-}
-
-func (x *Interfaces) Reset() {
-	*x = Interfaces{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces) ProtoMessage() {}
-
-func (x *Interfaces) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces.ProtoReflect.Descriptor instead.
-func (*Interfaces) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Interfaces) GetInterface() []*Interfaces_InterfaceKey {
-	if x != nil {
-		return x.Interface
-	}
-	return nil
-}
-
-type Interfaces_Interface struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config        *Interfaces_Interface_Config        `protobuf:"bytes,334174827,opt,name=config,proto3" json:"config,omitempty"`
-	HoldTime      *Interfaces_Interface_HoldTime      `protobuf:"bytes,175931092,opt,name=hold_time,json=holdTime,proto3" json:"hold_time,omitempty"`
-	State         *Interfaces_Interface_State         `protobuf:"bytes,387556140,opt,name=state,proto3" json:"state,omitempty"`
-	Subinterfaces *Interfaces_Interface_Subinterfaces `protobuf:"bytes,327798165,opt,name=subinterfaces,proto3" json:"subinterfaces,omitempty"`
-}
-
-func (x *Interfaces_Interface) Reset() {
-	*x = Interfaces_Interface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface) ProtoMessage() {}
-
-func (x *Interfaces_Interface) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Interfaces_Interface) GetConfig() *Interfaces_Interface_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetHoldTime() *Interfaces_Interface_HoldTime {
-	if x != nil {
-		return x.HoldTime
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetState() *Interfaces_Interface_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetSubinterfaces() *Interfaces_Interface_Subinterfaces {
-	if x != nil {
-		return x.Subinterfaces
-	}
-	return nil
-}
-
-type Interfaces_InterfaceKey struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name      string                `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Interface *Interfaces_Interface `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
-}
-
-func (x *Interfaces_InterfaceKey) Reset() {
-	*x = Interfaces_InterfaceKey{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_InterfaceKey) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_InterfaceKey) ProtoMessage() {}
-
-func (x *Interfaces_InterfaceKey) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_InterfaceKey.ProtoReflect.Descriptor instead.
-func (*Interfaces_InterfaceKey) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 1}
-}
-
-func (x *Interfaces_InterfaceKey) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *Interfaces_InterfaceKey) GetInterface() *Interfaces_Interface {
-	if x != nil {
-		return x.Interface
-	}
-	return nil
-}
-
-type Interfaces_Interface_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Description  *ywrapper.StringValue       `protobuf:"bytes,418535860,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled      *ywrapper.BoolValue         `protobuf:"bytes,37224301,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	LoopbackMode *ywrapper.BoolValue         `protobuf:"bytes,253516347,opt,name=loopback_mode,json=loopbackMode,proto3" json:"loopback_mode,omitempty"`
-	Mtu          *ywrapper.UintValue         `protobuf:"bytes,376210342,opt,name=mtu,proto3" json:"mtu,omitempty"`
-	Name         *ywrapper.StringValue       `protobuf:"bytes,51804187,opt,name=name,proto3" json:"name,omitempty"`
-	Type         IETFInterfacesInterfaceType `protobuf:"varint,144596894,opt,name=type,proto3,enum=openconfig.enums.IETFInterfacesInterfaceType" json:"type,omitempty"`
-}
-
-func (x *Interfaces_Interface_Config) Reset() {
-	*x = Interfaces_Interface_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 0}
-}
-
-func (x *Interfaces_Interface_Config) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetLoopbackMode() *ywrapper.BoolValue {
-	if x != nil {
-		return x.LoopbackMode
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetMtu() *ywrapper.UintValue {
-	if x != nil {
-		return x.Mtu
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetType() IETFInterfacesInterfaceType {
-	if x != nil {
-		return x.Type
-	}
-	return IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET
-}
-
-type Interfaces_Interface_HoldTime struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config *Interfaces_Interface_HoldTime_Config `protobuf:"bytes,316512729,opt,name=config,proto3" json:"config,omitempty"`
-	State  *Interfaces_Interface_HoldTime_State  `protobuf:"bytes,483010990,opt,name=state,proto3" json:"state,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime) Reset() {
-	*x = Interfaces_Interface_HoldTime{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1}
-}
-
-func (x *Interfaces_Interface_HoldTime) GetConfig() *Interfaces_Interface_HoldTime_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime) GetState() *Interfaces_Interface_HoldTime_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-type Interfaces_Interface_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AdminStatus  Interfaces_Interface_State_AdminStatus `protobuf:"varint,474494763,opt,name=admin_status,json=adminStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_State_AdminStatus" json:"admin_status,omitempty"`
-	Counters     *Interfaces_Interface_State_Counters   `protobuf:"bytes,83645964,opt,name=counters,proto3" json:"counters,omitempty"`
-	Description  *ywrapper.StringValue                  `protobuf:"bytes,389435287,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled      *ywrapper.BoolValue                    `protobuf:"bytes,330927518,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Ifindex      *ywrapper.UintValue                    `protobuf:"bytes,116108202,opt,name=ifindex,proto3" json:"ifindex,omitempty"`
-	LastChange   *ywrapper.UintValue                    `protobuf:"bytes,127348880,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
-	Logical      *ywrapper.BoolValue                    `protobuf:"bytes,440460216,opt,name=logical,proto3" json:"logical,omitempty"`
-	LoopbackMode *ywrapper.BoolValue                    `protobuf:"bytes,372935512,opt,name=loopback_mode,json=loopbackMode,proto3" json:"loopback_mode,omitempty"`
-	Mtu          *ywrapper.UintValue                    `protobuf:"bytes,96390485,opt,name=mtu,proto3" json:"mtu,omitempty"`
-	Name         *ywrapper.StringValue                  `protobuf:"bytes,503495278,opt,name=name,proto3" json:"name,omitempty"`
-	OperStatus   Interfaces_Interface_State_OperStatus  `protobuf:"varint,470394226,opt,name=oper_status,json=operStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_State_OperStatus" json:"oper_status,omitempty"`
-	Type         IETFInterfacesInterfaceType            `protobuf:"varint,358148579,opt,name=type,proto3,enum=openconfig.enums.IETFInterfacesInterfaceType" json:"type,omitempty"`
-}
-
-func (x *Interfaces_Interface_State) Reset() {
-	*x = Interfaces_Interface_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2}
-}
-
-func (x *Interfaces_Interface_State) GetAdminStatus() Interfaces_Interface_State_AdminStatus {
-	if x != nil {
-		return x.AdminStatus
-	}
-	return Interfaces_Interface_State_ADMINSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_State) GetCounters() *Interfaces_Interface_State_Counters {
-	if x != nil {
-		return x.Counters
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetIfindex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Ifindex
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLastChange() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastChange
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLogical() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Logical
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLoopbackMode() *ywrapper.BoolValue {
-	if x != nil {
-		return x.LoopbackMode
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetMtu() *ywrapper.UintValue {
-	if x != nil {
-		return x.Mtu
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetOperStatus() Interfaces_Interface_State_OperStatus {
-	if x != nil {
-		return x.OperStatus
-	}
-	return Interfaces_Interface_State_OPERSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_State) GetType() IETFInterfacesInterfaceType {
-	if x != nil {
-		return x.Type
-	}
-	return IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET
-}
-
-type Interfaces_Interface_Subinterfaces struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Subinterface []*Interfaces_Interface_Subinterfaces_SubinterfaceKey `protobuf:"bytes,464802819,rep,name=subinterface,proto3" json:"subinterface,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces) Reset() {
-	*x = Interfaces_Interface_Subinterfaces{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3}
-}
-
-func (x *Interfaces_Interface_Subinterfaces) GetSubinterface() []*Interfaces_Interface_Subinterfaces_SubinterfaceKey {
-	if x != nil {
-		return x.Subinterface
-	}
-	return nil
-}
-
-type Interfaces_Interface_HoldTime_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Down *ywrapper.UintValue `protobuf:"bytes,171181656,opt,name=down,proto3" json:"down,omitempty"`
-	Up   *ywrapper.UintValue `protobuf:"bytes,62026235,opt,name=up,proto3" json:"up,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) Reset() {
-	*x = Interfaces_Interface_HoldTime_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1, 0}
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) GetDown() *ywrapper.UintValue {
-	if x != nil {
-		return x.Down
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) GetUp() *ywrapper.UintValue {
-	if x != nil {
-		return x.Up
-	}
-	return nil
-}
-
-type Interfaces_Interface_HoldTime_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Down *ywrapper.UintValue `protobuf:"bytes,167887721,opt,name=down,proto3" json:"down,omitempty"`
-	Up   *ywrapper.UintValue `protobuf:"bytes,223847598,opt,name=up,proto3" json:"up,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime_State) Reset() {
-	*x = Interfaces_Interface_HoldTime_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1, 1}
-}
-
-func (x *Interfaces_Interface_HoldTime_State) GetDown() *ywrapper.UintValue {
-	if x != nil {
-		return x.Down
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime_State) GetUp() *ywrapper.UintValue {
-	if x != nil {
-		return x.Up
-	}
-	return nil
-}
-
-type Interfaces_Interface_State_Counters struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CarrierTransitions *ywrapper.UintValue `protobuf:"bytes,270803130,opt,name=carrier_transitions,json=carrierTransitions,proto3" json:"carrier_transitions,omitempty"`
-	InBroadcastPkts    *ywrapper.UintValue `protobuf:"bytes,280201989,opt,name=in_broadcast_pkts,json=inBroadcastPkts,proto3" json:"in_broadcast_pkts,omitempty"`
-	InDiscards         *ywrapper.UintValue `protobuf:"bytes,11979514,opt,name=in_discards,json=inDiscards,proto3" json:"in_discards,omitempty"`
-	InErrors           *ywrapper.UintValue `protobuf:"bytes,456697578,opt,name=in_errors,json=inErrors,proto3" json:"in_errors,omitempty"`
-	InFcsErrors        *ywrapper.UintValue `protobuf:"bytes,501559027,opt,name=in_fcs_errors,json=inFcsErrors,proto3" json:"in_fcs_errors,omitempty"`
-	InMulticastPkts    *ywrapper.UintValue `protobuf:"bytes,113269128,opt,name=in_multicast_pkts,json=inMulticastPkts,proto3" json:"in_multicast_pkts,omitempty"`
-	InOctets           *ywrapper.UintValue `protobuf:"bytes,333138891,opt,name=in_octets,json=inOctets,proto3" json:"in_octets,omitempty"`
-	InPkts             *ywrapper.UintValue `protobuf:"bytes,412843491,opt,name=in_pkts,json=inPkts,proto3" json:"in_pkts,omitempty"`
-	InUnicastPkts      *ywrapper.UintValue `protobuf:"bytes,272792307,opt,name=in_unicast_pkts,json=inUnicastPkts,proto3" json:"in_unicast_pkts,omitempty"`
-	InUnknownProtos    *ywrapper.UintValue `protobuf:"bytes,241475497,opt,name=in_unknown_protos,json=inUnknownProtos,proto3" json:"in_unknown_protos,omitempty"`
-	LastClear          *ywrapper.UintValue `protobuf:"bytes,186014919,opt,name=last_clear,json=lastClear,proto3" json:"last_clear,omitempty"`
-	OutBroadcastPkts   *ywrapper.UintValue `protobuf:"bytes,338589668,opt,name=out_broadcast_pkts,json=outBroadcastPkts,proto3" json:"out_broadcast_pkts,omitempty"`
-	OutDiscards        *ywrapper.UintValue `protobuf:"bytes,254055111,opt,name=out_discards,json=outDiscards,proto3" json:"out_discards,omitempty"`
-	OutErrors          *ywrapper.UintValue `protobuf:"bytes,471103047,opt,name=out_errors,json=outErrors,proto3" json:"out_errors,omitempty"`
-	OutMulticastPkts   *ywrapper.UintValue `protobuf:"bytes,457840757,opt,name=out_multicast_pkts,json=outMulticastPkts,proto3" json:"out_multicast_pkts,omitempty"`
-	OutOctets          *ywrapper.UintValue `protobuf:"bytes,201005514,opt,name=out_octets,json=outOctets,proto3" json:"out_octets,omitempty"`
-	OutPkts            *ywrapper.UintValue `protobuf:"bytes,437582090,opt,name=out_pkts,json=outPkts,proto3" json:"out_pkts,omitempty"`
-	OutUnicastPkts     *ywrapper.UintValue `protobuf:"bytes,36542246,opt,name=out_unicast_pkts,json=outUnicastPkts,proto3" json:"out_unicast_pkts,omitempty"`
-}
-
-func (x *Interfaces_Interface_State_Counters) Reset() {
-	*x = Interfaces_Interface_State_Counters{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_State_Counters) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_State_Counters) ProtoMessage() {}
-
-func (x *Interfaces_Interface_State_Counters) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_Counters.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_State_Counters) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 0}
-}
-
-func (x *Interfaces_Interface_State_Counters) GetCarrierTransitions() *ywrapper.UintValue {
-	if x != nil {
-		return x.CarrierTransitions
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.InDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInFcsErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InFcsErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.InOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnicastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInUnknownProtos() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnknownProtos
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetLastClear() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastClear
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutUnicastPkts
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config *Interfaces_Interface_Subinterfaces_Subinterface_Config `protobuf:"bytes,175001476,opt,name=config,proto3" json:"config,omitempty"`
-	State  *Interfaces_Interface_Subinterfaces_Subinterface_State  `protobuf:"bytes,501974173,opt,name=state,proto3" json:"state,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) GetConfig() *Interfaces_Interface_Subinterfaces_Subinterface_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) GetState() *Interfaces_Interface_Subinterfaces_Subinterface_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_SubinterfaceKey struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Index        uint64                                           `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
-	Subinterface *Interfaces_Interface_Subinterfaces_Subinterface `protobuf:"bytes,2,opt,name=subinterface,proto3" json:"subinterface,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_SubinterfaceKey{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_SubinterfaceKey) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_SubinterfaceKey.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_SubinterfaceKey) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 1}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) GetIndex() uint64 {
-	if x != nil {
-		return x.Index
-	}
-	return 0
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) GetSubinterface() *Interfaces_Interface_Subinterfaces_Subinterface {
-	if x != nil {
-		return x.Subinterface
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Description *ywrapper.StringValue `protobuf:"bytes,280671199,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled     *ywrapper.BoolValue   `protobuf:"bytes,297236390,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Index       *ywrapper.UintValue   `protobuf:"bytes,279269781,opt,name=index,proto3" json:"index,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetIndex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Index
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AdminStatus Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus `protobuf:"varint,250658952,opt,name=admin_status,json=adminStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus" json:"admin_status,omitempty"`
-	Counters    *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters   `protobuf:"bytes,483442783,opt,name=counters,proto3" json:"counters,omitempty"`
-	Description *ywrapper.StringValue                                             `protobuf:"bytes,49943526,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled     *ywrapper.BoolValue                                               `protobuf:"bytes,468513843,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Ifindex     *ywrapper.UintValue                                               `protobuf:"bytes,511987815,opt,name=ifindex,proto3" json:"ifindex,omitempty"`
-	Index       *ywrapper.UintValue                                               `protobuf:"bytes,80745756,opt,name=index,proto3" json:"index,omitempty"`
-	LastChange  *ywrapper.UintValue                                               `protobuf:"bytes,29904521,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
-	Logical     *ywrapper.BoolValue                                               `protobuf:"bytes,294124401,opt,name=logical,proto3" json:"logical,omitempty"`
-	Name        *ywrapper.StringValue                                             `protobuf:"bytes,279346681,opt,name=name,proto3" json:"name,omitempty"`
-	OperStatus  Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus  `protobuf:"varint,401969247,opt,name=oper_status,json=operStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus" json:"oper_status,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetAdminStatus() Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus {
-	if x != nil {
-		return x.AdminStatus
-	}
-	return Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetCounters() *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters {
-	if x != nil {
-		return x.Counters
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetIfindex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Ifindex
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetIndex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Index
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetLastChange() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastChange
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetLogical() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Logical
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetOperStatus() Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus {
-	if x != nil {
-		return x.OperStatus
-	}
-	return Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNSET
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_Counters struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CarrierTransitions *ywrapper.UintValue `protobuf:"bytes,141120277,opt,name=carrier_transitions,json=carrierTransitions,proto3" json:"carrier_transitions,omitempty"`
-	InBroadcastPkts    *ywrapper.UintValue `protobuf:"bytes,120244022,opt,name=in_broadcast_pkts,json=inBroadcastPkts,proto3" json:"in_broadcast_pkts,omitempty"`
-	InDiscards         *ywrapper.UintValue `protobuf:"bytes,307490461,opt,name=in_discards,json=inDiscards,proto3" json:"in_discards,omitempty"`
-	InErrors           *ywrapper.UintValue `protobuf:"bytes,319720873,opt,name=in_errors,json=inErrors,proto3" json:"in_errors,omitempty"`
-	InFcsErrors        *ywrapper.UintValue `protobuf:"bytes,169858424,opt,name=in_fcs_errors,json=inFcsErrors,proto3" json:"in_fcs_errors,omitempty"`
-	InMulticastPkts    *ywrapper.UintValue `protobuf:"bytes,320618859,opt,name=in_multicast_pkts,json=inMulticastPkts,proto3" json:"in_multicast_pkts,omitempty"`
-	InOctets           *ywrapper.UintValue `protobuf:"bytes,530205868,opt,name=in_octets,json=inOctets,proto3" json:"in_octets,omitempty"`
-	InPkts             *ywrapper.UintValue `protobuf:"bytes,441153352,opt,name=in_pkts,json=inPkts,proto3" json:"in_pkts,omitempty"`
-	InUnicastPkts      *ywrapper.UintValue `protobuf:"bytes,177838880,opt,name=in_unicast_pkts,json=inUnicastPkts,proto3" json:"in_unicast_pkts,omitempty"`
-	InUnknownProtos    *ywrapper.UintValue `protobuf:"bytes,146059814,opt,name=in_unknown_protos,json=inUnknownProtos,proto3" json:"in_unknown_protos,omitempty"`
-	LastClear          *ywrapper.UintValue `protobuf:"bytes,518046966,opt,name=last_clear,json=lastClear,proto3" json:"last_clear,omitempty"`
-	OutBroadcastPkts   *ywrapper.UintValue `protobuf:"bytes,501221245,opt,name=out_broadcast_pkts,json=outBroadcastPkts,proto3" json:"out_broadcast_pkts,omitempty"`
-	OutDiscards        *ywrapper.UintValue `protobuf:"bytes,159539762,opt,name=out_discards,json=outDiscards,proto3" json:"out_discards,omitempty"`
-	OutErrors          *ywrapper.UintValue `protobuf:"bytes,466636898,opt,name=out_errors,json=outErrors,proto3" json:"out_errors,omitempty"`
-	OutMulticastPkts   *ywrapper.UintValue `protobuf:"bytes,326155776,opt,name=out_multicast_pkts,json=outMulticastPkts,proto3" json:"out_multicast_pkts,omitempty"`
-	OutOctets          *ywrapper.UintValue `protobuf:"bytes,50579235,opt,name=out_octets,json=outOctets,proto3" json:"out_octets,omitempty"`
-	OutPkts            *ywrapper.UintValue `protobuf:"bytes,29497115,opt,name=out_pkts,json=outPkts,proto3" json:"out_pkts,omitempty"`
-	OutUnicastPkts     *ywrapper.UintValue `protobuf:"bytes,297910971,opt,name=out_unicast_pkts,json=outUnicastPkts,proto3" json:"out_unicast_pkts,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_State_Counters{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_Counters.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetCarrierTransitions() *ywrapper.UintValue {
-	if x != nil {
-		return x.CarrierTransitions
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.InDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInFcsErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InFcsErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.InOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnicastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnknownProtos() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnknownProtos
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetLastClear() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastClear
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutUnicastPkts
-	}
-	return nil
-}
-
-var File_openconfig_openconfig_interfaces_openconfig_interfaces_proto protoreflect.FileDescriptor
-
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc = []byte{
-	0x0a, 0x3c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68,
-	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78,
-	0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x65,
-	0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x5a, 0x0a, 0x0a, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x09, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0xfa, 0xa7, 0xba, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x39, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x18, 0x82, 0x41, 0x15,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x1a, 0xd3, 0x58, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x7a,
-	0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xeb, 0xb4, 0xac, 0x9f, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x42, 0x1f, 0x82, 0x41, 0x1c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x83, 0x01, 0x0a, 0x09, 0x68,
-	0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xd4, 0xfd, 0xf1, 0x53, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69,
-	0x6d, 0x65, 0x42, 0x22, 0x82, 0x41, 0x1f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c,
-	0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65,
-	0x12, 0x76, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xac, 0xc6, 0xe6, 0xb8, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x42, 0x1e, 0x82, 0x41, 0x1b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x0d, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x95, 0x9b, 0xa7, 0x9c, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x1a, 0xc9, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x68, 0x0a, 0x0b,
-	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb4, 0xb3, 0xc9, 0xc7,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65,
-	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
-	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x18, 0xed, 0xfe, 0xdf, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x27, 0x82, 0x41, 0x24, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x12, 0x6a, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f,
-	0x64, 0x65, 0x18, 0xbb, 0xb4, 0xf1, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x2d, 0x82, 0x41, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x52,
-	0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a,
-	0x03, 0x6d, 0x74, 0x75, 0x18, 0xa6, 0x87, 0xb2, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x23, 0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6d, 0x74, 0x75, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x52, 0x0a,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x9b, 0xf0, 0xd9, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x24, 0x82, 0x41, 0x21, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x6a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x9e, 0xbf, 0xf9, 0x44, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
-	0x65, 0x42, 0x24, 0x82, 0x41, 0x21, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x9d, 0x05,
-	0x0a, 0x08, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x06, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xd9, 0xb3, 0xf6, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x46, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65,
-	0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x29, 0x82, 0x41, 0x26, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x18, 0xae, 0xd3, 0xa8, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45,
-	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x2e,
-	0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x28, 0x82, 0x41, 0x25, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xba, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0xd8, 0x8c, 0xd0, 0x51, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69,
-	0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x82, 0x41, 0x2b, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x54, 0x0a,
-	0x02, 0x75, 0x70, 0x18, 0xfb, 0xe3, 0xc9, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x2c, 0x82, 0x41, 0x29, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64,
-	0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x52,
-	0x02, 0x75, 0x70, 0x1a, 0xb7, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a,
-	0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0xe9, 0x86, 0x87, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x2d, 0x82, 0x41, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f,
-	0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x6f,
-	0x77, 0x6e, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x53, 0x0a, 0x02, 0x75, 0x70, 0x18, 0xae,
-	0xc9, 0xde, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x75, 0x70, 0x52, 0x02, 0x75, 0x70, 0x1a, 0x9b, 0x1e,
-	0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x9c, 0x01, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69,
-	0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xab, 0xee, 0xa0, 0xe2, 0x01, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x48, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
-	0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x64, 0x6d,
-	0x69, 0x6e, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x18, 0x8c, 0xac, 0xf1, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x42, 0x27, 0x82, 0x41, 0x24, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x08, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x97, 0x9f, 0xd9, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
-	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x59, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x9e, 0x9b, 0xe6, 0x9d, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x07, 0x69, 0x66,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xaa, 0xd7, 0xae, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x66, 0x69,
-	0x6e, 0x64, 0x65, 0x78, 0x12, 0x63, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x18, 0x90, 0xe1, 0xdc, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x6c,
-	0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x6c, 0x6f, 0x67,
-	0x69, 0x63, 0x61, 0x6c, 0x18, 0xb8, 0xc7, 0x83, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x07, 0x6c, 0x6f, 0x67,
-	0x69, 0x63, 0x61, 0x6c, 0x12, 0x6a, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
-	0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xd8, 0x96, 0xea, 0xb1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x2c, 0x82, 0x41, 0x29, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x2d, 0x6d, 0x6f,
-	0x64, 0x65, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65,
-	0x12, 0x4c, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0xd5, 0x9a, 0xfb, 0x2d, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x22, 0x82, 0x41, 0x1f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6d, 0x74, 0x75, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x52,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xee, 0xf4, 0x8a, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69,
-	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x23, 0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x18, 0xf2, 0xca, 0xa6, 0xe0, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6a, 0x0a,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0xe3, 0xd3, 0xe3, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x65, 0x6e, 0x75,
-	0x6d, 0x73, 0x2e, 0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x23,
-	0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xbe, 0x10, 0x0a, 0x08, 0x43, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x63, 0x61, 0x72, 0x72, 0x69,
-	0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xba,
-	0xc1, 0x90, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3b, 0x82,
-	0x41, 0x38, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x2d, 0x74,
-	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x63, 0x61, 0x72, 0x72,
-	0x69, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7e,
-	0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70,
-	0x6b, 0x74, 0x73, 0x18, 0x85, 0x96, 0xce, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
-	0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61,
-	0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x62,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69,
-	0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x6c,
-	0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xfa, 0x95,
-	0xdb, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
-	0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x33, 0x82, 0x41, 0x30,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x52, 0x0a, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xea, 0xcd, 0xe2, 0xd9, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x31, 0x82, 0x41, 0x2e, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
-	0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x72, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x66, 0x63, 0x73, 0x5f,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xf3, 0xdd, 0x94, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x35, 0x82, 0x41, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69,
-	0x6e, 0x2d, 0x66, 0x63, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x0b, 0x69, 0x6e,
-	0x46, 0x63, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x7d, 0x0a, 0x11, 0x69, 0x6e, 0x5f,
-	0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0x88,
-	0xb3, 0x81, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x39, 0x82, 0x41,
-	0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69,
-	0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x67, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x6f,
-	0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xcb, 0x97, 0xed, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x31, 0x82, 0x41, 0x2e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e,
-	0x2d, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x4f, 0x63, 0x74, 0x65, 0x74,
-	0x73, 0x12, 0x61, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xe3, 0xfb, 0xed,
-	0xc4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
-	0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2f, 0x82, 0x41, 0x2c,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e,
-	0x50, 0x6b, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xf3, 0xf5, 0x89, 0x82, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e,
-	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x37, 0x82, 0x41, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f,
-	0x69, 0x6e, 0x2d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52,
-	0x0d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x7d,
-	0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x73, 0x18, 0xa9, 0xbf, 0x92, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75, 0x6e,
-	0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x52, 0x0f, 0x69, 0x6e,
-	0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x12, 0x69, 0x0a,
-	0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0xc7, 0xb9, 0xd9, 0x58,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65,
-	0x72, 0x73, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x52, 0x09, 0x6c,
-	0x61, 0x73, 0x74, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x6f, 0x75, 0x74,
-	0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18,
-	0xe4, 0xef, 0xb9, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3a,
-	0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x62, 0x72, 0x6f, 0x61,
-	0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x42,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x0c,
-	0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xc7, 0xa5, 0x92,
-	0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x34, 0x82, 0x41, 0x31, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x52, 0x0b, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x6a, 0x0a,
-	0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xc7, 0xec, 0xd1, 0xe0,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x09,
-	0x6f, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x6f, 0x75,
-	0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73,
-	0x18, 0xf5, 0xb0, 0xa8, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x3a, 0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6d, 0x75, 0x6c,
-	0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74,
-	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x69, 0x0a,
-	0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xca, 0xb3, 0xec, 0x5f,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65,
-	0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x09, 0x6f,
-	0x75, 0x74, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f,
-	0x70, 0x6b, 0x74, 0x73, 0x18, 0x8a, 0xf2, 0xd3, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x30, 0x82, 0x41, 0x2d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74,
-	0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x7a,
-	0x0a, 0x10, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b,
-	0x74, 0x73, 0x18, 0xa6, 0xae, 0xb6, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x38, 0x82, 0x41, 0x35, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x75, 0x6e,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x55,
-	0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x41,
-	0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44,
-	0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
-	0x00, 0x12, 0x19, 0x0a, 0x0e, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
-	0x5f, 0x55, 0x50, 0x10, 0x01, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1d, 0x0a, 0x10,
-	0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e,
-	0x10, 0x02, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x23, 0x0a, 0x13, 0x41,
-	0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49,
-	0x4e, 0x47, 0x10, 0x03, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47,
-	0x22, 0xa8, 0x02, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e,
-	0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12,
-	0x1c, 0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f,
-	0x57, 0x4e, 0x10, 0x03, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a,
-	0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54,
-	0x49, 0x4e, 0x47, 0x10, 0x04, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e,
-	0x47, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
-	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x55, 0x4e,
-	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x10, 0x06, 0x1a, 0x0a, 0x82,
-	0x41, 0x07, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x12, 0x2a, 0x0a, 0x16, 0x4f, 0x50, 0x45,
-	0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53,
-	0x45, 0x4e, 0x54, 0x10, 0x07, 0x1a, 0x0e, 0x82, 0x41, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52,
-	0x45, 0x53, 0x45, 0x4e, 0x54, 0x12, 0x34, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f,
-	0x44, 0x4f, 0x57, 0x4e, 0x10, 0x08, 0x1a, 0x13, 0x82, 0x41, 0x10, 0x4c, 0x4f, 0x57, 0x45, 0x52,
-	0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x1a, 0xa8, 0x2c, 0x0a, 0x0d,
-	0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0xb1, 0x01,
-	0x0a, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x83,
-	0xa8, 0xd1, 0xdd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x33,
-	0x82, 0x41, 0x30, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x1a, 0x86, 0x29, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x84, 0x9f,
-	0xb9, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x42, 0x3a, 0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x12, 0xac, 0x01, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x9d,
-	0x89, 0xae, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x1a, 0xf6, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x83,
-	0x01, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xdf,
-	0xe7, 0xea, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x46, 0x82, 0x41, 0x43, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, 0x73, 0x63,
-	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
-	0xa6, 0xef, 0xdd, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x42,
-	0x82, 0x41, 0x3f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-	0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x6f, 0x0a, 0x05, 0x69,
-	0x6e, 0x64, 0x65, 0x78, 0x18, 0x95, 0xa3, 0x95, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x40, 0x82, 0x41, 0x3d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x9b, 0x23, 0x0a,
-	0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0xd1, 0x01, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e,
-	0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x88, 0x81, 0xc3, 0x77, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x63, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x46, 0x82, 0x41, 0x43, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61,
-	0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x08, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x18, 0xdf, 0x80, 0xc3, 0xe6, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x60, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x42, 0x42, 0x82, 0x41, 0x3f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
-	0x73, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x18, 0xe6, 0xa7, 0xe8, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x45, 0x82, 0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x65, 0x73,
-	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
-	0x18, 0xb3, 0xe8, 0xb3, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x41, 0x82, 0x41, 0x3e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-	0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x74, 0x0a, 0x07, 0x69,
-	0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xe7, 0xa0, 0x91, 0xf4, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x41, 0x82, 0x41, 0x3e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65,
-	0x78, 0x12, 0x6d, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x9c, 0xaa, 0xc0, 0x26, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3f, 0x82, 0x41, 0x3c, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x12, 0x7e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18,
-	0x89, 0x9d, 0xa1, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x45, 0x82,
-	0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
-	0x12, 0x74, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x18, 0xf1, 0xf6, 0x9f, 0x8c,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x41, 0x82, 0x41, 0x3e, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x07, 0x6c,
-	0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x6d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xf9,
-	0xfb, 0x99, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x3e, 0x82, 0x41, 0x3b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xdf, 0xa0, 0xd6, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x42, 0x45, 0x82, 0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6f,
-	0x70, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xb0, 0x14, 0x0a, 0x08, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x13, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x5f,
-	0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x95, 0xa6, 0xa5, 0x43,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x56, 0x82, 0x41, 0x53, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x61,
-	0x72, 0x72, 0x69, 0x65, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
-	0x73, 0x52, 0x12, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x6f,
-	0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xb6, 0x8e, 0xab, 0x39,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e,
-	0x2d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52,
-	0x0f, 0x69, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73,
-	0x12, 0x88, 0x01, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x18, 0x9d, 0xdd, 0xcf, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x4e, 0x82, 0x41, 0x4b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x52,
-	0x0a, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xa9, 0x9b, 0xba, 0x98, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4c, 0x82, 0x41, 0x49, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
-	0x12, 0x8c, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x66, 0x63, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x73, 0x18, 0xf8, 0xaa, 0xff, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x50, 0x82, 0x41, 0x4d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x66, 0x63, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x73, 0x52, 0x0b, 0x69, 0x6e, 0x46, 0x63, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12,
-	0x99, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
-	0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xeb, 0x82, 0xf1, 0x98, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x6d, 0x75, 0x6c, 0x74,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69, 0x6e, 0x4d, 0x75,
-	0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xac, 0x99, 0xe9, 0xfc, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4c, 0x82, 0x41, 0x49, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d,
-	0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73,
-	0x12, 0x7c, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xc8, 0xee, 0xad, 0xd2,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4a, 0x82, 0x41, 0x47, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69,
-	0x6e, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x92,
-	0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b,
-	0x74, 0x73, 0x18, 0xa0, 0xb6, 0xe6, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x52, 0x82, 0x41, 0x4f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d,
-	0x70, 0x6b, 0x74, 0x73, 0x52, 0x0d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50,
-	0x6b, 0x74, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f,
-	0x77, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x18, 0xa6, 0xe4, 0xd2, 0x45, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69,
-	0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61,
-	0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75,
-	0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x52, 0x0f, 0x69,
-	0x6e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x12, 0x85,
-	0x01, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0xf6, 0x89,
-	0x83, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4d, 0x82, 0x41,
-	0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73,
-	0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x52, 0x09, 0x6c, 0x61, 0x73,
-	0x74, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x9c, 0x01, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x5f, 0x62,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xfd, 0x8e,
-	0x80, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x55, 0x82, 0x41,
-	0x52, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73,
-	0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70,
-	0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
-	0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69,
-	0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xb2, 0xc4, 0x89, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x4f, 0x82, 0x41, 0x4c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x64, 0x69, 0x73,
-	0x63, 0x61, 0x72, 0x64, 0x73, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72,
-	0x64, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
-	0x73, 0x18, 0xe2, 0xa0, 0xc1, 0xde, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x4d, 0x82, 0x41, 0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52,
-	0x09, 0x6f, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x12, 0x6f,
-	0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74,
-	0x73, 0x18, 0x80, 0xfc, 0xc2, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x55, 0x82, 0x41, 0x52, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x6f, 0x75,
-	0x74, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xa3, 0x8e, 0x8f, 0x18, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e,
-	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4d, 0x82, 0x41, 0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6f,
-	0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73,
-	0x12, 0x7e, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0x9b, 0xae, 0x88,
-	0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4b, 0x82, 0x41, 0x48, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f,
-	0x75, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x50, 0x6b, 0x74, 0x73,
-	0x12, 0x96, 0x01, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74,
-	0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xbb, 0x85, 0x87, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x53, 0x82, 0x41, 0x50, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x75, 0x6e, 0x69,
-	0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x55, 0x6e,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x41, 0x64,
-	0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 0x4d,
-	0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00,
-	0x12, 0x19, 0x0a, 0x0e, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
-	0x55, 0x50, 0x10, 0x01, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1d, 0x0a, 0x10, 0x41,
-	0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10,
-	0x02, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x23, 0x0a, 0x13, 0x41, 0x44,
-	0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e,
-	0x47, 0x10, 0x03, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x22,
-	0xa8, 0x02, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14,
-	0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53,
-	0x45, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1c,
-	0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57,
-	0x4e, 0x10, 0x03, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12,
-	0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49,
-	0x4e, 0x47, 0x10, 0x04, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47,
-	0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
-	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x55, 0x4e, 0x4b,
-	0x4e, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x10, 0x06, 0x1a, 0x0a, 0x82, 0x41,
-	0x07, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x12, 0x2a, 0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52,
-	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45,
-	0x4e, 0x54, 0x10, 0x07, 0x1a, 0x0e, 0x82, 0x41, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45,
-	0x53, 0x45, 0x4e, 0x54, 0x12, 0x34, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44,
-	0x4f, 0x57, 0x4e, 0x10, 0x08, 0x1a, 0x13, 0x82, 0x41, 0x10, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f,
-	0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x1a, 0xd9, 0x01, 0x0a, 0x0f, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x4f,
-	0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x39, 0x82,
-	0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
-	0x75, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x1a, 0x97, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0x82, 0x41, 0x1a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x42, 0x20, 0x5a, 0x1e, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x66, 0x62, 0x69, 0x2e, 0x68,
-	0x2d, 0x64, 0x61, 0x2e, 0x64, 0x65, 0x2f, 0x63, 0x6f, 0x63, 0x73, 0x6e, 0x2f, 0x67, 0x6f, 0x73,
-	0x64, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescOnce sync.Once
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData = file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc
-)
-
-func file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP() []byte {
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescOnce.Do(func() {
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData)
-	})
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData
-}
-
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes = []interface{}{
-	(Interfaces_Interface_State_AdminStatus)(0),                            // 0: openconfig.openconfig_interfaces.Interfaces.Interface.State.AdminStatus
-	(Interfaces_Interface_State_OperStatus)(0),                             // 1: openconfig.openconfig_interfaces.Interfaces.Interface.State.OperStatus
-	(Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus)(0), // 2: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.AdminStatus
-	(Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus)(0),  // 3: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.OperStatus
-	(*Interfaces)(nil),                                                     // 4: openconfig.openconfig_interfaces.Interfaces
-	(*Interfaces_Interface)(nil),                                           // 5: openconfig.openconfig_interfaces.Interfaces.Interface
-	(*Interfaces_InterfaceKey)(nil),                                        // 6: openconfig.openconfig_interfaces.Interfaces.InterfaceKey
-	(*Interfaces_Interface_Config)(nil),                                    // 7: openconfig.openconfig_interfaces.Interfaces.Interface.Config
-	(*Interfaces_Interface_HoldTime)(nil),                                  // 8: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime
-	(*Interfaces_Interface_State)(nil),                                     // 9: openconfig.openconfig_interfaces.Interfaces.Interface.State
-	(*Interfaces_Interface_Subinterfaces)(nil),                             // 10: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces
-	(*Interfaces_Interface_HoldTime_Config)(nil),                           // 11: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config
-	(*Interfaces_Interface_HoldTime_State)(nil),                            // 12: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State
-	(*Interfaces_Interface_State_Counters)(nil),                            // 13: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters
-	(*Interfaces_Interface_Subinterfaces_Subinterface)(nil),                // 14: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface
-	(*Interfaces_Interface_Subinterfaces_SubinterfaceKey)(nil),             // 15: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey
-	(*Interfaces_Interface_Subinterfaces_Subinterface_Config)(nil),         // 16: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config
-	(*Interfaces_Interface_Subinterfaces_Subinterface_State)(nil),          // 17: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State
-	(*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters)(nil), // 18: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters
-	(*ywrapper.StringValue)(nil),                                           // 19: ywrapper.StringValue
-	(*ywrapper.BoolValue)(nil),                                             // 20: ywrapper.BoolValue
-	(*ywrapper.UintValue)(nil),                                             // 21: ywrapper.UintValue
-	(IETFInterfacesInterfaceType)(0),                                       // 22: openconfig.enums.IETFInterfacesInterfaceType
-}
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs = []int32{
-	6,  // 0: openconfig.openconfig_interfaces.Interfaces.interface:type_name -> openconfig.openconfig_interfaces.Interfaces.InterfaceKey
-	7,  // 1: openconfig.openconfig_interfaces.Interfaces.Interface.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Config
-	8,  // 2: openconfig.openconfig_interfaces.Interfaces.Interface.hold_time:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime
-	9,  // 3: openconfig.openconfig_interfaces.Interfaces.Interface.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State
-	10, // 4: openconfig.openconfig_interfaces.Interfaces.Interface.subinterfaces:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces
-	5,  // 5: openconfig.openconfig_interfaces.Interfaces.InterfaceKey.interface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface
-	19, // 6: openconfig.openconfig_interfaces.Interfaces.Interface.Config.description:type_name -> ywrapper.StringValue
-	20, // 7: openconfig.openconfig_interfaces.Interfaces.Interface.Config.enabled:type_name -> ywrapper.BoolValue
-	20, // 8: openconfig.openconfig_interfaces.Interfaces.Interface.Config.loopback_mode:type_name -> ywrapper.BoolValue
-	21, // 9: openconfig.openconfig_interfaces.Interfaces.Interface.Config.mtu:type_name -> ywrapper.UintValue
-	19, // 10: openconfig.openconfig_interfaces.Interfaces.Interface.Config.name:type_name -> ywrapper.StringValue
-	22, // 11: openconfig.openconfig_interfaces.Interfaces.Interface.Config.type:type_name -> openconfig.enums.IETFInterfacesInterfaceType
-	11, // 12: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config
-	12, // 13: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State
-	0,  // 14: openconfig.openconfig_interfaces.Interfaces.Interface.State.admin_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.AdminStatus
-	13, // 15: openconfig.openconfig_interfaces.Interfaces.Interface.State.counters:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters
-	19, // 16: openconfig.openconfig_interfaces.Interfaces.Interface.State.description:type_name -> ywrapper.StringValue
-	20, // 17: openconfig.openconfig_interfaces.Interfaces.Interface.State.enabled:type_name -> ywrapper.BoolValue
-	21, // 18: openconfig.openconfig_interfaces.Interfaces.Interface.State.ifindex:type_name -> ywrapper.UintValue
-	21, // 19: openconfig.openconfig_interfaces.Interfaces.Interface.State.last_change:type_name -> ywrapper.UintValue
-	20, // 20: openconfig.openconfig_interfaces.Interfaces.Interface.State.logical:type_name -> ywrapper.BoolValue
-	20, // 21: openconfig.openconfig_interfaces.Interfaces.Interface.State.loopback_mode:type_name -> ywrapper.BoolValue
-	21, // 22: openconfig.openconfig_interfaces.Interfaces.Interface.State.mtu:type_name -> ywrapper.UintValue
-	19, // 23: openconfig.openconfig_interfaces.Interfaces.Interface.State.name:type_name -> ywrapper.StringValue
-	1,  // 24: openconfig.openconfig_interfaces.Interfaces.Interface.State.oper_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.OperStatus
-	22, // 25: openconfig.openconfig_interfaces.Interfaces.Interface.State.type:type_name -> openconfig.enums.IETFInterfacesInterfaceType
-	15, // 26: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.subinterface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey
-	21, // 27: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config.down:type_name -> ywrapper.UintValue
-	21, // 28: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config.up:type_name -> ywrapper.UintValue
-	21, // 29: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State.down:type_name -> ywrapper.UintValue
-	21, // 30: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State.up:type_name -> ywrapper.UintValue
-	21, // 31: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.carrier_transitions:type_name -> ywrapper.UintValue
-	21, // 32: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 33: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_discards:type_name -> ywrapper.UintValue
-	21, // 34: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_errors:type_name -> ywrapper.UintValue
-	21, // 35: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_fcs_errors:type_name -> ywrapper.UintValue
-	21, // 36: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 37: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_octets:type_name -> ywrapper.UintValue
-	21, // 38: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_pkts:type_name -> ywrapper.UintValue
-	21, // 39: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_unicast_pkts:type_name -> ywrapper.UintValue
-	21, // 40: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_unknown_protos:type_name -> ywrapper.UintValue
-	21, // 41: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.last_clear:type_name -> ywrapper.UintValue
-	21, // 42: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 43: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_discards:type_name -> ywrapper.UintValue
-	21, // 44: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_errors:type_name -> ywrapper.UintValue
-	21, // 45: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 46: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_octets:type_name -> ywrapper.UintValue
-	21, // 47: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_pkts:type_name -> ywrapper.UintValue
-	21, // 48: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_unicast_pkts:type_name -> ywrapper.UintValue
-	16, // 49: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config
-	17, // 50: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State
-	14, // 51: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey.subinterface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface
-	19, // 52: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.description:type_name -> ywrapper.StringValue
-	20, // 53: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.enabled:type_name -> ywrapper.BoolValue
-	21, // 54: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.index:type_name -> ywrapper.UintValue
-	2,  // 55: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.admin_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.AdminStatus
-	18, // 56: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.counters:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters
-	19, // 57: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.description:type_name -> ywrapper.StringValue
-	20, // 58: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.enabled:type_name -> ywrapper.BoolValue
-	21, // 59: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.ifindex:type_name -> ywrapper.UintValue
-	21, // 60: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.index:type_name -> ywrapper.UintValue
-	21, // 61: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.last_change:type_name -> ywrapper.UintValue
-	20, // 62: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.logical:type_name -> ywrapper.BoolValue
-	19, // 63: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.name:type_name -> ywrapper.StringValue
-	3,  // 64: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.oper_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.OperStatus
-	21, // 65: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.carrier_transitions:type_name -> ywrapper.UintValue
-	21, // 66: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 67: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_discards:type_name -> ywrapper.UintValue
-	21, // 68: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_errors:type_name -> ywrapper.UintValue
-	21, // 69: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_fcs_errors:type_name -> ywrapper.UintValue
-	21, // 70: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 71: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_octets:type_name -> ywrapper.UintValue
-	21, // 72: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_pkts:type_name -> ywrapper.UintValue
-	21, // 73: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_unicast_pkts:type_name -> ywrapper.UintValue
-	21, // 74: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_unknown_protos:type_name -> ywrapper.UintValue
-	21, // 75: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.last_clear:type_name -> ywrapper.UintValue
-	21, // 76: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 77: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_discards:type_name -> ywrapper.UintValue
-	21, // 78: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_errors:type_name -> ywrapper.UintValue
-	21, // 79: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 80: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_octets:type_name -> ywrapper.UintValue
-	21, // 81: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_pkts:type_name -> ywrapper.UintValue
-	21, // 82: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_unicast_pkts:type_name -> ywrapper.UintValue
-	83, // [83:83] is the sub-list for method output_type
-	83, // [83:83] is the sub-list for method input_type
-	83, // [83:83] is the sub-list for extension type_name
-	83, // [83:83] is the sub-list for extension extendee
-	0,  // [0:83] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_init() }
-func file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_init() {
-	if File_openconfig_openconfig_interfaces_openconfig_interfaces_proto != nil {
-		return
-	}
-	file_openconfig_enums_enums_proto_init()
-	if !protoimpl.UnsafeEnabled {
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_InterfaceKey); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_State_Counters); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_SubinterfaceKey); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc,
-			NumEnums:      4,
-			NumMessages:   15,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes,
-		DependencyIndexes: file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs,
-		EnumInfos:         file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes,
-		MessageInfos:      file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes,
-	}.Build()
-	File_openconfig_openconfig_interfaces_openconfig_interfaces_proto = out.File
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc = nil
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes = nil
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs = nil
-}
diff --git a/api/proto/openconfig/enums/enums.pb.go b/api/proto/openconfig/enums/enums.pb.go
deleted file mode 100644
index 3ebe5d22cb235af6c9be0a89d56ccb33c9604f4c..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/enums/enums.pb.go
+++ /dev/null
@@ -1,149 +0,0 @@
-// openconfig.enums is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/enums/enums.proto
-
-package openconfig_enums
-
-import (
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	_ "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-// IETFInterfacesInterfaceType represents an enumerated type generated for the YANG identity interface-type.
-type IETFInterfacesInterfaceType int32
-
-const (
-	IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET IETFInterfacesInterfaceType = 0
-)
-
-// Enum value maps for IETFInterfacesInterfaceType.
-var (
-	IETFInterfacesInterfaceType_name = map[int32]string{
-		0: "IETFINTERFACESINTERFACETYPE_UNSET",
-	}
-	IETFInterfacesInterfaceType_value = map[string]int32{
-		"IETFINTERFACESINTERFACETYPE_UNSET": 0,
-	}
-)
-
-func (x IETFInterfacesInterfaceType) Enum() *IETFInterfacesInterfaceType {
-	p := new(IETFInterfacesInterfaceType)
-	*p = x
-	return p
-}
-
-func (x IETFInterfacesInterfaceType) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (IETFInterfacesInterfaceType) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_enums_enums_proto_enumTypes[0].Descriptor()
-}
-
-func (IETFInterfacesInterfaceType) Type() protoreflect.EnumType {
-	return &file_openconfig_enums_enums_proto_enumTypes[0]
-}
-
-func (x IETFInterfacesInterfaceType) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use IETFInterfacesInterfaceType.Descriptor instead.
-func (IETFInterfacesInterfaceType) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_enums_enums_proto_rawDescGZIP(), []int{0}
-}
-
-var File_openconfig_enums_enums_proto protoreflect.FileDescriptor
-
-var file_openconfig_enums_enums_proto_rawDesc = []byte{
-	0x0a, 0x1c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x75,
-	0x6d, 0x73, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x65, 0x6e, 0x75, 0x6d, 0x73,
-	0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68,
-	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78,
-	0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2a, 0x44, 0x0a, 0x1b,
-	0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x21, 0x49,
-	0x45, 0x54, 0x46, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x53, 0x49, 0x4e, 0x54,
-	0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54,
-	0x10, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_enums_enums_proto_rawDescOnce sync.Once
-	file_openconfig_enums_enums_proto_rawDescData = file_openconfig_enums_enums_proto_rawDesc
-)
-
-func file_openconfig_enums_enums_proto_rawDescGZIP() []byte {
-	file_openconfig_enums_enums_proto_rawDescOnce.Do(func() {
-		file_openconfig_enums_enums_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_enums_enums_proto_rawDescData)
-	})
-	return file_openconfig_enums_enums_proto_rawDescData
-}
-
-var file_openconfig_enums_enums_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_openconfig_enums_enums_proto_goTypes = []interface{}{
-	(IETFInterfacesInterfaceType)(0), // 0: openconfig.enums.IETFInterfacesInterfaceType
-}
-var file_openconfig_enums_enums_proto_depIdxs = []int32{
-	0, // [0:0] is the sub-list for method output_type
-	0, // [0:0] is the sub-list for method input_type
-	0, // [0:0] is the sub-list for extension type_name
-	0, // [0:0] is the sub-list for extension extendee
-	0, // [0:0] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_enums_enums_proto_init() }
-func file_openconfig_enums_enums_proto_init() {
-	if File_openconfig_enums_enums_proto != nil {
-		return
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_enums_enums_proto_rawDesc,
-			NumEnums:      1,
-			NumMessages:   0,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_enums_enums_proto_goTypes,
-		DependencyIndexes: file_openconfig_enums_enums_proto_depIdxs,
-		EnumInfos:         file_openconfig_enums_enums_proto_enumTypes,
-	}.Build()
-	File_openconfig_enums_enums_proto = out.File
-	file_openconfig_enums_enums_proto_rawDesc = nil
-	file_openconfig_enums_enums_proto_goTypes = nil
-	file_openconfig_enums_enums_proto_depIdxs = nil
-}
diff --git a/api/proto/openconfig/enums/enums.proto b/api/proto/openconfig/enums/enums.proto
deleted file mode 100644
index 9e536252c00769cef506fdd5a9278d66403a00fd..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/enums/enums.proto
+++ /dev/null
@@ -1,19 +0,0 @@
-// openconfig.enums is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-syntax = "proto3";
-
-package openconfig.enums;
-option go_package = "code.fbi.h-da.de/cocsn/gosdn";
-
-import "github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto";
-import "github.com/openconfig/ygot/proto/yext/yext.proto";
-
-// IETFInterfacesInterfaceType represents an enumerated type generated for the YANG identity interface-type.
-enum IETFInterfacesInterfaceType {
-  IETFINTERFACESINTERFACETYPE_UNSET = 0;
-}
diff --git a/api/proto/openconfig/openconfig.pb.go b/api/proto/openconfig/openconfig.pb.go
deleted file mode 100644
index e52dc21419f2a632f463b6d7af4dbc430d89235c..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/openconfig.pb.go
+++ /dev/null
@@ -1,175 +0,0 @@
-// openconfig is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/openconfig.proto
-
-package openconfig
-
-import (
-	openconfig_interfaces "code.fbi.h-da.de/cocsn/gosdn/api/proto/openconfig/openconfig_interfaces"
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	_ "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-type Device struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interfaces *openconfig_interfaces.Interfaces `protobuf:"bytes,85031486,opt,name=interfaces,proto3" json:"interfaces,omitempty"`
-}
-
-func (x *Device) Reset() {
-	*x = Device{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Device) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Device) ProtoMessage() {}
-
-func (x *Device) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Device.ProtoReflect.Descriptor instead.
-func (*Device) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Device) GetInterfaces() *openconfig_interfaces.Interfaces {
-	if x != nil {
-		return x.Interfaces
-	}
-	return nil
-}
-
-var File_openconfig_openconfig_proto protoreflect.FileDescriptor
-
-var file_openconfig_openconfig_proto_rawDesc = []byte{
-	0x0a, 0x1b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75,
-	0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72,
-	0x6f, 0x74, 0x6f, 0x22, 0x69, 0x0a, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a,
-	0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0xbe, 0xf4, 0xc5, 0x28,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x42, 0x0e, 0x82, 0x41, 0x0b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x62, 0x06,
-	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_openconfig_proto_rawDescOnce sync.Once
-	file_openconfig_openconfig_proto_rawDescData = file_openconfig_openconfig_proto_rawDesc
-)
-
-func file_openconfig_openconfig_proto_rawDescGZIP() []byte {
-	file_openconfig_openconfig_proto_rawDescOnce.Do(func() {
-		file_openconfig_openconfig_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_openconfig_proto_rawDescData)
-	})
-	return file_openconfig_openconfig_proto_rawDescData
-}
-
-var file_openconfig_openconfig_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
-var file_openconfig_openconfig_proto_goTypes = []interface{}{
-	(*Device)(nil),                           // 0: openconfig.Device
-	(*openconfig_interfaces.Interfaces)(nil), // 1: openconfig.openconfig_interfaces.Interfaces
-}
-var file_openconfig_openconfig_proto_depIdxs = []int32{
-	1, // 0: openconfig.Device.interfaces:type_name -> openconfig.openconfig_interfaces.Interfaces
-	1, // [1:1] is the sub-list for method output_type
-	1, // [1:1] is the sub-list for method input_type
-	1, // [1:1] is the sub-list for extension type_name
-	1, // [1:1] is the sub-list for extension extendee
-	0, // [0:1] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_openconfig_proto_init() }
-func file_openconfig_openconfig_proto_init() {
-	if File_openconfig_openconfig_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_openconfig_openconfig_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Device); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_openconfig_proto_rawDesc,
-			NumEnums:      0,
-			NumMessages:   1,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_openconfig_proto_goTypes,
-		DependencyIndexes: file_openconfig_openconfig_proto_depIdxs,
-		MessageInfos:      file_openconfig_openconfig_proto_msgTypes,
-	}.Build()
-	File_openconfig_openconfig_proto = out.File
-	file_openconfig_openconfig_proto_rawDesc = nil
-	file_openconfig_openconfig_proto_goTypes = nil
-	file_openconfig_openconfig_proto_depIdxs = nil
-}
diff --git a/api/proto/openconfig/openconfig.proto b/api/proto/openconfig/openconfig.proto
deleted file mode 100644
index c2b37bb0386d95ed45beea0ca8ee920049928253..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/openconfig.proto
+++ /dev/null
@@ -1,20 +0,0 @@
-// openconfig is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-syntax = "proto3";
-
-package openconfig;
-option go_package = "code.fbi.h-da.de/cocsn/gosdn";
-
-
-import "github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto";
-import "github.com/openconfig/ygot/proto/yext/yext.proto";
-import "openconfig/openconfig_interfaces/openconfig_interfaces.proto";
-
-message Device {
-  openconfig_interfaces.Interfaces interfaces = 85031486 [(yext.schemapath) = "/interfaces"];
-}
diff --git a/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.pb.go b/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.pb.go
deleted file mode 100644
index 26ca33432b263e485c6c7ca994bb76caf72992d6..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.pb.go
+++ /dev/null
@@ -1,2620 +0,0 @@
-// openconfig.openconfig_interfaces is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-
-// Code generated by protoc-gen-go. DO NOT EDIT.
-// versions:
-// 	protoc-gen-go v1.25.0-devel
-// 	protoc        v3.13.0
-// source: openconfig/openconfig_interfaces/openconfig_interfaces.proto
-
-package openconfig_openconfig_interfaces
-
-import (
-	enums "code.fbi.h-da.de/cocsn/gosdn/api/proto/openconfig/enums"
-	proto "github.com/golang/protobuf/proto"
-	_ "github.com/openconfig/ygot/proto/yext"
-	ywrapper "github.com/openconfig/ygot/proto/ywrapper"
-	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
-	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
-	reflect "reflect"
-	sync "sync"
-)
-
-const (
-	// Verify that this generated code is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
-	// Verify that runtime/protoimpl is sufficiently up-to-date.
-	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
-)
-
-// This is a compile-time assertion that a sufficiently up-to-date version
-// of the legacy proto package is being used.
-const _ = proto.ProtoPackageIsVersion4
-
-type Interfaces_Interface_State_AdminStatus int32
-
-const (
-	Interfaces_Interface_State_ADMINSTATUS_UNSET   Interfaces_Interface_State_AdminStatus = 0
-	Interfaces_Interface_State_ADMINSTATUS_UP      Interfaces_Interface_State_AdminStatus = 1
-	Interfaces_Interface_State_ADMINSTATUS_DOWN    Interfaces_Interface_State_AdminStatus = 2
-	Interfaces_Interface_State_ADMINSTATUS_TESTING Interfaces_Interface_State_AdminStatus = 3
-)
-
-// Enum value maps for Interfaces_Interface_State_AdminStatus.
-var (
-	Interfaces_Interface_State_AdminStatus_name = map[int32]string{
-		0: "ADMINSTATUS_UNSET",
-		1: "ADMINSTATUS_UP",
-		2: "ADMINSTATUS_DOWN",
-		3: "ADMINSTATUS_TESTING",
-	}
-	Interfaces_Interface_State_AdminStatus_value = map[string]int32{
-		"ADMINSTATUS_UNSET":   0,
-		"ADMINSTATUS_UP":      1,
-		"ADMINSTATUS_DOWN":    2,
-		"ADMINSTATUS_TESTING": 3,
-	}
-)
-
-func (x Interfaces_Interface_State_AdminStatus) Enum() *Interfaces_Interface_State_AdminStatus {
-	p := new(Interfaces_Interface_State_AdminStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_State_AdminStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_State_AdminStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[0].Descriptor()
-}
-
-func (Interfaces_Interface_State_AdminStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[0]
-}
-
-func (x Interfaces_Interface_State_AdminStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_AdminStatus.Descriptor instead.
-func (Interfaces_Interface_State_AdminStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 0}
-}
-
-type Interfaces_Interface_State_OperStatus int32
-
-const (
-	Interfaces_Interface_State_OPERSTATUS_UNSET            Interfaces_Interface_State_OperStatus = 0
-	Interfaces_Interface_State_OPERSTATUS_UP               Interfaces_Interface_State_OperStatus = 2
-	Interfaces_Interface_State_OPERSTATUS_DOWN             Interfaces_Interface_State_OperStatus = 3
-	Interfaces_Interface_State_OPERSTATUS_TESTING          Interfaces_Interface_State_OperStatus = 4
-	Interfaces_Interface_State_OPERSTATUS_UNKNOWN          Interfaces_Interface_State_OperStatus = 5
-	Interfaces_Interface_State_OPERSTATUS_DORMANT          Interfaces_Interface_State_OperStatus = 6
-	Interfaces_Interface_State_OPERSTATUS_NOT_PRESENT      Interfaces_Interface_State_OperStatus = 7
-	Interfaces_Interface_State_OPERSTATUS_LOWER_LAYER_DOWN Interfaces_Interface_State_OperStatus = 8
-)
-
-// Enum value maps for Interfaces_Interface_State_OperStatus.
-var (
-	Interfaces_Interface_State_OperStatus_name = map[int32]string{
-		0: "OPERSTATUS_UNSET",
-		2: "OPERSTATUS_UP",
-		3: "OPERSTATUS_DOWN",
-		4: "OPERSTATUS_TESTING",
-		5: "OPERSTATUS_UNKNOWN",
-		6: "OPERSTATUS_DORMANT",
-		7: "OPERSTATUS_NOT_PRESENT",
-		8: "OPERSTATUS_LOWER_LAYER_DOWN",
-	}
-	Interfaces_Interface_State_OperStatus_value = map[string]int32{
-		"OPERSTATUS_UNSET":            0,
-		"OPERSTATUS_UP":               2,
-		"OPERSTATUS_DOWN":             3,
-		"OPERSTATUS_TESTING":          4,
-		"OPERSTATUS_UNKNOWN":          5,
-		"OPERSTATUS_DORMANT":          6,
-		"OPERSTATUS_NOT_PRESENT":      7,
-		"OPERSTATUS_LOWER_LAYER_DOWN": 8,
-	}
-)
-
-func (x Interfaces_Interface_State_OperStatus) Enum() *Interfaces_Interface_State_OperStatus {
-	p := new(Interfaces_Interface_State_OperStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_State_OperStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_State_OperStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[1].Descriptor()
-}
-
-func (Interfaces_Interface_State_OperStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[1]
-}
-
-func (x Interfaces_Interface_State_OperStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_OperStatus.Descriptor instead.
-func (Interfaces_Interface_State_OperStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 1}
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus int32
-
-const (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UNSET   Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 0
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UP      Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 1
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_DOWN    Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 2
-	Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_TESTING Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus = 3
-)
-
-// Enum value maps for Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus.
-var (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus_name = map[int32]string{
-		0: "ADMINSTATUS_UNSET",
-		1: "ADMINSTATUS_UP",
-		2: "ADMINSTATUS_DOWN",
-		3: "ADMINSTATUS_TESTING",
-	}
-	Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus_value = map[string]int32{
-		"ADMINSTATUS_UNSET":   0,
-		"ADMINSTATUS_UP":      1,
-		"ADMINSTATUS_DOWN":    2,
-		"ADMINSTATUS_TESTING": 3,
-	}
-)
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Enum() *Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus {
-	p := new(Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[2].Descriptor()
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[2]
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus.Descriptor instead.
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 0}
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus int32
-
-const (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNSET            Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 0
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UP               Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 2
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_DOWN             Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 3
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_TESTING          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 4
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNKNOWN          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 5
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_DORMANT          Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 6
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_NOT_PRESENT      Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 7
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_LOWER_LAYER_DOWN Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus = 8
-)
-
-// Enum value maps for Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus.
-var (
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus_name = map[int32]string{
-		0: "OPERSTATUS_UNSET",
-		2: "OPERSTATUS_UP",
-		3: "OPERSTATUS_DOWN",
-		4: "OPERSTATUS_TESTING",
-		5: "OPERSTATUS_UNKNOWN",
-		6: "OPERSTATUS_DORMANT",
-		7: "OPERSTATUS_NOT_PRESENT",
-		8: "OPERSTATUS_LOWER_LAYER_DOWN",
-	}
-	Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus_value = map[string]int32{
-		"OPERSTATUS_UNSET":            0,
-		"OPERSTATUS_UP":               2,
-		"OPERSTATUS_DOWN":             3,
-		"OPERSTATUS_TESTING":          4,
-		"OPERSTATUS_UNKNOWN":          5,
-		"OPERSTATUS_DORMANT":          6,
-		"OPERSTATUS_NOT_PRESENT":      7,
-		"OPERSTATUS_LOWER_LAYER_DOWN": 8,
-	}
-)
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Enum() *Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus {
-	p := new(Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus)
-	*p = x
-	return p
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) String() string {
-	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Descriptor() protoreflect.EnumDescriptor {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[3].Descriptor()
-}
-
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Type() protoreflect.EnumType {
-	return &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes[3]
-}
-
-func (x Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) Number() protoreflect.EnumNumber {
-	return protoreflect.EnumNumber(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus.Descriptor instead.
-func (Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus) EnumDescriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 1}
-}
-
-type Interfaces struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Interface []*Interfaces_InterfaceKey `protobuf:"bytes,422482938,rep,name=interface,proto3" json:"interface,omitempty"`
-}
-
-func (x *Interfaces) Reset() {
-	*x = Interfaces{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces) ProtoMessage() {}
-
-func (x *Interfaces) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces.ProtoReflect.Descriptor instead.
-func (*Interfaces) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0}
-}
-
-func (x *Interfaces) GetInterface() []*Interfaces_InterfaceKey {
-	if x != nil {
-		return x.Interface
-	}
-	return nil
-}
-
-type Interfaces_Interface struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config        *Interfaces_Interface_Config        `protobuf:"bytes,334174827,opt,name=config,proto3" json:"config,omitempty"`
-	HoldTime      *Interfaces_Interface_HoldTime      `protobuf:"bytes,175931092,opt,name=hold_time,json=holdTime,proto3" json:"hold_time,omitempty"`
-	State         *Interfaces_Interface_State         `protobuf:"bytes,387556140,opt,name=state,proto3" json:"state,omitempty"`
-	Subinterfaces *Interfaces_Interface_Subinterfaces `protobuf:"bytes,327798165,opt,name=subinterfaces,proto3" json:"subinterfaces,omitempty"`
-}
-
-func (x *Interfaces_Interface) Reset() {
-	*x = Interfaces_Interface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface) ProtoMessage() {}
-
-func (x *Interfaces_Interface) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0}
-}
-
-func (x *Interfaces_Interface) GetConfig() *Interfaces_Interface_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetHoldTime() *Interfaces_Interface_HoldTime {
-	if x != nil {
-		return x.HoldTime
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetState() *Interfaces_Interface_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface) GetSubinterfaces() *Interfaces_Interface_Subinterfaces {
-	if x != nil {
-		return x.Subinterfaces
-	}
-	return nil
-}
-
-type Interfaces_InterfaceKey struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Name      string                `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
-	Interface *Interfaces_Interface `protobuf:"bytes,2,opt,name=interface,proto3" json:"interface,omitempty"`
-}
-
-func (x *Interfaces_InterfaceKey) Reset() {
-	*x = Interfaces_InterfaceKey{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_InterfaceKey) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_InterfaceKey) ProtoMessage() {}
-
-func (x *Interfaces_InterfaceKey) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_InterfaceKey.ProtoReflect.Descriptor instead.
-func (*Interfaces_InterfaceKey) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 1}
-}
-
-func (x *Interfaces_InterfaceKey) GetName() string {
-	if x != nil {
-		return x.Name
-	}
-	return ""
-}
-
-func (x *Interfaces_InterfaceKey) GetInterface() *Interfaces_Interface {
-	if x != nil {
-		return x.Interface
-	}
-	return nil
-}
-
-type Interfaces_Interface_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Description  *ywrapper.StringValue             `protobuf:"bytes,418535860,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled      *ywrapper.BoolValue               `protobuf:"bytes,37224301,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	LoopbackMode *ywrapper.BoolValue               `protobuf:"bytes,253516347,opt,name=loopback_mode,json=loopbackMode,proto3" json:"loopback_mode,omitempty"`
-	Mtu          *ywrapper.UintValue               `protobuf:"bytes,376210342,opt,name=mtu,proto3" json:"mtu,omitempty"`
-	Name         *ywrapper.StringValue             `protobuf:"bytes,51804187,opt,name=name,proto3" json:"name,omitempty"`
-	Type         enums.IETFInterfacesInterfaceType `protobuf:"varint,144596894,opt,name=type,proto3,enum=openconfig.enums.IETFInterfacesInterfaceType" json:"type,omitempty"`
-}
-
-func (x *Interfaces_Interface_Config) Reset() {
-	*x = Interfaces_Interface_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 0}
-}
-
-func (x *Interfaces_Interface_Config) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetLoopbackMode() *ywrapper.BoolValue {
-	if x != nil {
-		return x.LoopbackMode
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetMtu() *ywrapper.UintValue {
-	if x != nil {
-		return x.Mtu
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Config) GetType() enums.IETFInterfacesInterfaceType {
-	if x != nil {
-		return x.Type
-	}
-	return enums.IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET
-}
-
-type Interfaces_Interface_HoldTime struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config *Interfaces_Interface_HoldTime_Config `protobuf:"bytes,316512729,opt,name=config,proto3" json:"config,omitempty"`
-	State  *Interfaces_Interface_HoldTime_State  `protobuf:"bytes,483010990,opt,name=state,proto3" json:"state,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime) Reset() {
-	*x = Interfaces_Interface_HoldTime{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1}
-}
-
-func (x *Interfaces_Interface_HoldTime) GetConfig() *Interfaces_Interface_HoldTime_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime) GetState() *Interfaces_Interface_HoldTime_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-type Interfaces_Interface_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AdminStatus  Interfaces_Interface_State_AdminStatus `protobuf:"varint,474494763,opt,name=admin_status,json=adminStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_State_AdminStatus" json:"admin_status,omitempty"`
-	Counters     *Interfaces_Interface_State_Counters   `protobuf:"bytes,83645964,opt,name=counters,proto3" json:"counters,omitempty"`
-	Description  *ywrapper.StringValue                  `protobuf:"bytes,389435287,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled      *ywrapper.BoolValue                    `protobuf:"bytes,330927518,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Ifindex      *ywrapper.UintValue                    `protobuf:"bytes,116108202,opt,name=ifindex,proto3" json:"ifindex,omitempty"`
-	LastChange   *ywrapper.UintValue                    `protobuf:"bytes,127348880,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
-	Logical      *ywrapper.BoolValue                    `protobuf:"bytes,440460216,opt,name=logical,proto3" json:"logical,omitempty"`
-	LoopbackMode *ywrapper.BoolValue                    `protobuf:"bytes,372935512,opt,name=loopback_mode,json=loopbackMode,proto3" json:"loopback_mode,omitempty"`
-	Mtu          *ywrapper.UintValue                    `protobuf:"bytes,96390485,opt,name=mtu,proto3" json:"mtu,omitempty"`
-	Name         *ywrapper.StringValue                  `protobuf:"bytes,503495278,opt,name=name,proto3" json:"name,omitempty"`
-	OperStatus   Interfaces_Interface_State_OperStatus  `protobuf:"varint,470394226,opt,name=oper_status,json=operStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_State_OperStatus" json:"oper_status,omitempty"`
-	Type         enums.IETFInterfacesInterfaceType      `protobuf:"varint,358148579,opt,name=type,proto3,enum=openconfig.enums.IETFInterfacesInterfaceType" json:"type,omitempty"`
-}
-
-func (x *Interfaces_Interface_State) Reset() {
-	*x = Interfaces_Interface_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2}
-}
-
-func (x *Interfaces_Interface_State) GetAdminStatus() Interfaces_Interface_State_AdminStatus {
-	if x != nil {
-		return x.AdminStatus
-	}
-	return Interfaces_Interface_State_ADMINSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_State) GetCounters() *Interfaces_Interface_State_Counters {
-	if x != nil {
-		return x.Counters
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetIfindex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Ifindex
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLastChange() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastChange
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLogical() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Logical
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetLoopbackMode() *ywrapper.BoolValue {
-	if x != nil {
-		return x.LoopbackMode
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetMtu() *ywrapper.UintValue {
-	if x != nil {
-		return x.Mtu
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State) GetOperStatus() Interfaces_Interface_State_OperStatus {
-	if x != nil {
-		return x.OperStatus
-	}
-	return Interfaces_Interface_State_OPERSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_State) GetType() enums.IETFInterfacesInterfaceType {
-	if x != nil {
-		return x.Type
-	}
-	return enums.IETFInterfacesInterfaceType_IETFINTERFACESINTERFACETYPE_UNSET
-}
-
-type Interfaces_Interface_Subinterfaces struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Subinterface []*Interfaces_Interface_Subinterfaces_SubinterfaceKey `protobuf:"bytes,464802819,rep,name=subinterface,proto3" json:"subinterface,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces) Reset() {
-	*x = Interfaces_Interface_Subinterfaces{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3}
-}
-
-func (x *Interfaces_Interface_Subinterfaces) GetSubinterface() []*Interfaces_Interface_Subinterfaces_SubinterfaceKey {
-	if x != nil {
-		return x.Subinterface
-	}
-	return nil
-}
-
-type Interfaces_Interface_HoldTime_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Down *ywrapper.UintValue `protobuf:"bytes,171181656,opt,name=down,proto3" json:"down,omitempty"`
-	Up   *ywrapper.UintValue `protobuf:"bytes,62026235,opt,name=up,proto3" json:"up,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) Reset() {
-	*x = Interfaces_Interface_HoldTime_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1, 0}
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) GetDown() *ywrapper.UintValue {
-	if x != nil {
-		return x.Down
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime_Config) GetUp() *ywrapper.UintValue {
-	if x != nil {
-		return x.Up
-	}
-	return nil
-}
-
-type Interfaces_Interface_HoldTime_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Down *ywrapper.UintValue `protobuf:"bytes,167887721,opt,name=down,proto3" json:"down,omitempty"`
-	Up   *ywrapper.UintValue `protobuf:"bytes,223847598,opt,name=up,proto3" json:"up,omitempty"`
-}
-
-func (x *Interfaces_Interface_HoldTime_State) Reset() {
-	*x = Interfaces_Interface_HoldTime_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_HoldTime_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_HoldTime_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_HoldTime_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_HoldTime_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_HoldTime_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 1, 1}
-}
-
-func (x *Interfaces_Interface_HoldTime_State) GetDown() *ywrapper.UintValue {
-	if x != nil {
-		return x.Down
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_HoldTime_State) GetUp() *ywrapper.UintValue {
-	if x != nil {
-		return x.Up
-	}
-	return nil
-}
-
-type Interfaces_Interface_State_Counters struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CarrierTransitions *ywrapper.UintValue `protobuf:"bytes,270803130,opt,name=carrier_transitions,json=carrierTransitions,proto3" json:"carrier_transitions,omitempty"`
-	InBroadcastPkts    *ywrapper.UintValue `protobuf:"bytes,280201989,opt,name=in_broadcast_pkts,json=inBroadcastPkts,proto3" json:"in_broadcast_pkts,omitempty"`
-	InDiscards         *ywrapper.UintValue `protobuf:"bytes,11979514,opt,name=in_discards,json=inDiscards,proto3" json:"in_discards,omitempty"`
-	InErrors           *ywrapper.UintValue `protobuf:"bytes,456697578,opt,name=in_errors,json=inErrors,proto3" json:"in_errors,omitempty"`
-	InFcsErrors        *ywrapper.UintValue `protobuf:"bytes,501559027,opt,name=in_fcs_errors,json=inFcsErrors,proto3" json:"in_fcs_errors,omitempty"`
-	InMulticastPkts    *ywrapper.UintValue `protobuf:"bytes,113269128,opt,name=in_multicast_pkts,json=inMulticastPkts,proto3" json:"in_multicast_pkts,omitempty"`
-	InOctets           *ywrapper.UintValue `protobuf:"bytes,333138891,opt,name=in_octets,json=inOctets,proto3" json:"in_octets,omitempty"`
-	InPkts             *ywrapper.UintValue `protobuf:"bytes,412843491,opt,name=in_pkts,json=inPkts,proto3" json:"in_pkts,omitempty"`
-	InUnicastPkts      *ywrapper.UintValue `protobuf:"bytes,272792307,opt,name=in_unicast_pkts,json=inUnicastPkts,proto3" json:"in_unicast_pkts,omitempty"`
-	InUnknownProtos    *ywrapper.UintValue `protobuf:"bytes,241475497,opt,name=in_unknown_protos,json=inUnknownProtos,proto3" json:"in_unknown_protos,omitempty"`
-	LastClear          *ywrapper.UintValue `protobuf:"bytes,186014919,opt,name=last_clear,json=lastClear,proto3" json:"last_clear,omitempty"`
-	OutBroadcastPkts   *ywrapper.UintValue `protobuf:"bytes,338589668,opt,name=out_broadcast_pkts,json=outBroadcastPkts,proto3" json:"out_broadcast_pkts,omitempty"`
-	OutDiscards        *ywrapper.UintValue `protobuf:"bytes,254055111,opt,name=out_discards,json=outDiscards,proto3" json:"out_discards,omitempty"`
-	OutErrors          *ywrapper.UintValue `protobuf:"bytes,471103047,opt,name=out_errors,json=outErrors,proto3" json:"out_errors,omitempty"`
-	OutMulticastPkts   *ywrapper.UintValue `protobuf:"bytes,457840757,opt,name=out_multicast_pkts,json=outMulticastPkts,proto3" json:"out_multicast_pkts,omitempty"`
-	OutOctets          *ywrapper.UintValue `protobuf:"bytes,201005514,opt,name=out_octets,json=outOctets,proto3" json:"out_octets,omitempty"`
-	OutPkts            *ywrapper.UintValue `protobuf:"bytes,437582090,opt,name=out_pkts,json=outPkts,proto3" json:"out_pkts,omitempty"`
-	OutUnicastPkts     *ywrapper.UintValue `protobuf:"bytes,36542246,opt,name=out_unicast_pkts,json=outUnicastPkts,proto3" json:"out_unicast_pkts,omitempty"`
-}
-
-func (x *Interfaces_Interface_State_Counters) Reset() {
-	*x = Interfaces_Interface_State_Counters{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_State_Counters) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_State_Counters) ProtoMessage() {}
-
-func (x *Interfaces_Interface_State_Counters) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_State_Counters.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_State_Counters) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 2, 0}
-}
-
-func (x *Interfaces_Interface_State_Counters) GetCarrierTransitions() *ywrapper.UintValue {
-	if x != nil {
-		return x.CarrierTransitions
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.InDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInFcsErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InFcsErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.InOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnicastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetInUnknownProtos() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnknownProtos
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetLastClear() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastClear
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_State_Counters) GetOutUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutUnicastPkts
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Config *Interfaces_Interface_Subinterfaces_Subinterface_Config `protobuf:"bytes,175001476,opt,name=config,proto3" json:"config,omitempty"`
-	State  *Interfaces_Interface_Subinterfaces_Subinterface_State  `protobuf:"bytes,501974173,opt,name=state,proto3" json:"state,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) GetConfig() *Interfaces_Interface_Subinterfaces_Subinterface_Config {
-	if x != nil {
-		return x.Config
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface) GetState() *Interfaces_Interface_Subinterfaces_Subinterface_State {
-	if x != nil {
-		return x.State
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_SubinterfaceKey struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Index        uint64                                           `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
-	Subinterface *Interfaces_Interface_Subinterfaces_Subinterface `protobuf:"bytes,2,opt,name=subinterface,proto3" json:"subinterface,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_SubinterfaceKey{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_SubinterfaceKey) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_SubinterfaceKey.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_SubinterfaceKey) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 1}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) GetIndex() uint64 {
-	if x != nil {
-		return x.Index
-	}
-	return 0
-}
-
-func (x *Interfaces_Interface_Subinterfaces_SubinterfaceKey) GetSubinterface() *Interfaces_Interface_Subinterfaces_Subinterface {
-	if x != nil {
-		return x.Subinterface
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_Config struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	Description *ywrapper.StringValue `protobuf:"bytes,280671199,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled     *ywrapper.BoolValue   `protobuf:"bytes,297236390,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Index       *ywrapper.UintValue   `protobuf:"bytes,279269781,opt,name=index,proto3" json:"index,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_Config{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_Config) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_Config.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_Config) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_Config) GetIndex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Index
-	}
-	return nil
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	AdminStatus Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus `protobuf:"varint,250658952,opt,name=admin_status,json=adminStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus" json:"admin_status,omitempty"`
-	Counters    *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters   `protobuf:"bytes,483442783,opt,name=counters,proto3" json:"counters,omitempty"`
-	Description *ywrapper.StringValue                                             `protobuf:"bytes,49943526,opt,name=description,proto3" json:"description,omitempty"`
-	Enabled     *ywrapper.BoolValue                                               `protobuf:"bytes,468513843,opt,name=enabled,proto3" json:"enabled,omitempty"`
-	Ifindex     *ywrapper.UintValue                                               `protobuf:"bytes,511987815,opt,name=ifindex,proto3" json:"ifindex,omitempty"`
-	Index       *ywrapper.UintValue                                               `protobuf:"bytes,80745756,opt,name=index,proto3" json:"index,omitempty"`
-	LastChange  *ywrapper.UintValue                                               `protobuf:"bytes,29904521,opt,name=last_change,json=lastChange,proto3" json:"last_change,omitempty"`
-	Logical     *ywrapper.BoolValue                                               `protobuf:"bytes,294124401,opt,name=logical,proto3" json:"logical,omitempty"`
-	Name        *ywrapper.StringValue                                             `protobuf:"bytes,279346681,opt,name=name,proto3" json:"name,omitempty"`
-	OperStatus  Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus  `protobuf:"varint,401969247,opt,name=oper_status,json=operStatus,proto3,enum=openconfig.openconfig_interfaces.Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus" json:"oper_status,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_State{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetAdminStatus() Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus {
-	if x != nil {
-		return x.AdminStatus
-	}
-	return Interfaces_Interface_Subinterfaces_Subinterface_State_ADMINSTATUS_UNSET
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetCounters() *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters {
-	if x != nil {
-		return x.Counters
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetDescription() *ywrapper.StringValue {
-	if x != nil {
-		return x.Description
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetEnabled() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Enabled
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetIfindex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Ifindex
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetIndex() *ywrapper.UintValue {
-	if x != nil {
-		return x.Index
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetLastChange() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastChange
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetLogical() *ywrapper.BoolValue {
-	if x != nil {
-		return x.Logical
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetName() *ywrapper.StringValue {
-	if x != nil {
-		return x.Name
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State) GetOperStatus() Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus {
-	if x != nil {
-		return x.OperStatus
-	}
-	return Interfaces_Interface_Subinterfaces_Subinterface_State_OPERSTATUS_UNSET
-}
-
-type Interfaces_Interface_Subinterfaces_Subinterface_State_Counters struct {
-	state         protoimpl.MessageState
-	sizeCache     protoimpl.SizeCache
-	unknownFields protoimpl.UnknownFields
-
-	CarrierTransitions *ywrapper.UintValue `protobuf:"bytes,141120277,opt,name=carrier_transitions,json=carrierTransitions,proto3" json:"carrier_transitions,omitempty"`
-	InBroadcastPkts    *ywrapper.UintValue `protobuf:"bytes,120244022,opt,name=in_broadcast_pkts,json=inBroadcastPkts,proto3" json:"in_broadcast_pkts,omitempty"`
-	InDiscards         *ywrapper.UintValue `protobuf:"bytes,307490461,opt,name=in_discards,json=inDiscards,proto3" json:"in_discards,omitempty"`
-	InErrors           *ywrapper.UintValue `protobuf:"bytes,319720873,opt,name=in_errors,json=inErrors,proto3" json:"in_errors,omitempty"`
-	InFcsErrors        *ywrapper.UintValue `protobuf:"bytes,169858424,opt,name=in_fcs_errors,json=inFcsErrors,proto3" json:"in_fcs_errors,omitempty"`
-	InMulticastPkts    *ywrapper.UintValue `protobuf:"bytes,320618859,opt,name=in_multicast_pkts,json=inMulticastPkts,proto3" json:"in_multicast_pkts,omitempty"`
-	InOctets           *ywrapper.UintValue `protobuf:"bytes,530205868,opt,name=in_octets,json=inOctets,proto3" json:"in_octets,omitempty"`
-	InPkts             *ywrapper.UintValue `protobuf:"bytes,441153352,opt,name=in_pkts,json=inPkts,proto3" json:"in_pkts,omitempty"`
-	InUnicastPkts      *ywrapper.UintValue `protobuf:"bytes,177838880,opt,name=in_unicast_pkts,json=inUnicastPkts,proto3" json:"in_unicast_pkts,omitempty"`
-	InUnknownProtos    *ywrapper.UintValue `protobuf:"bytes,146059814,opt,name=in_unknown_protos,json=inUnknownProtos,proto3" json:"in_unknown_protos,omitempty"`
-	LastClear          *ywrapper.UintValue `protobuf:"bytes,518046966,opt,name=last_clear,json=lastClear,proto3" json:"last_clear,omitempty"`
-	OutBroadcastPkts   *ywrapper.UintValue `protobuf:"bytes,501221245,opt,name=out_broadcast_pkts,json=outBroadcastPkts,proto3" json:"out_broadcast_pkts,omitempty"`
-	OutDiscards        *ywrapper.UintValue `protobuf:"bytes,159539762,opt,name=out_discards,json=outDiscards,proto3" json:"out_discards,omitempty"`
-	OutErrors          *ywrapper.UintValue `protobuf:"bytes,466636898,opt,name=out_errors,json=outErrors,proto3" json:"out_errors,omitempty"`
-	OutMulticastPkts   *ywrapper.UintValue `protobuf:"bytes,326155776,opt,name=out_multicast_pkts,json=outMulticastPkts,proto3" json:"out_multicast_pkts,omitempty"`
-	OutOctets          *ywrapper.UintValue `protobuf:"bytes,50579235,opt,name=out_octets,json=outOctets,proto3" json:"out_octets,omitempty"`
-	OutPkts            *ywrapper.UintValue `protobuf:"bytes,29497115,opt,name=out_pkts,json=outPkts,proto3" json:"out_pkts,omitempty"`
-	OutUnicastPkts     *ywrapper.UintValue `protobuf:"bytes,297910971,opt,name=out_unicast_pkts,json=outUnicastPkts,proto3" json:"out_unicast_pkts,omitempty"`
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Reset() {
-	*x = Interfaces_Interface_Subinterfaces_Subinterface_State_Counters{}
-	if protoimpl.UnsafeEnabled {
-		mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14]
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		ms.StoreMessageInfo(mi)
-	}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) String() string {
-	return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ProtoMessage() {}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) ProtoReflect() protoreflect.Message {
-	mi := &file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14]
-	if protoimpl.UnsafeEnabled && x != nil {
-		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
-		if ms.LoadMessageInfo() == nil {
-			ms.StoreMessageInfo(mi)
-		}
-		return ms
-	}
-	return mi.MessageOf(x)
-}
-
-// Deprecated: Use Interfaces_Interface_Subinterfaces_Subinterface_State_Counters.ProtoReflect.Descriptor instead.
-func (*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) Descriptor() ([]byte, []int) {
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP(), []int{0, 0, 3, 0, 1, 0}
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetCarrierTransitions() *ywrapper.UintValue {
-	if x != nil {
-		return x.CarrierTransitions
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.InDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInFcsErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.InFcsErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.InOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnicastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetInUnknownProtos() *ywrapper.UintValue {
-	if x != nil {
-		return x.InUnknownProtos
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetLastClear() *ywrapper.UintValue {
-	if x != nil {
-		return x.LastClear
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutBroadcastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutBroadcastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutDiscards() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutDiscards
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutErrors() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutErrors
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutMulticastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutMulticastPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutOctets() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutOctets
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutPkts
-	}
-	return nil
-}
-
-func (x *Interfaces_Interface_Subinterfaces_Subinterface_State_Counters) GetOutUnicastPkts() *ywrapper.UintValue {
-	if x != nil {
-		return x.OutUnicastPkts
-	}
-	return nil
-}
-
-var File_openconfig_openconfig_interfaces_openconfig_interfaces_proto protoreflect.FileDescriptor
-
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc = []byte{
-	0x0a, 0x3c, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x1a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x2f, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2f, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x69, 0x74, 0x68,
-	0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x79, 0x67, 0x6f, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x79, 0x65, 0x78,
-	0x74, 0x2f, 0x79, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2f, 0x65,
-	0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf3, 0x5a, 0x0a, 0x0a, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x75, 0x0a, 0x09, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0xfa, 0xa7, 0xba, 0xc9, 0x01, 0x20, 0x03, 0x28, 0x0b,
-	0x32, 0x39, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x18, 0x82, 0x41, 0x15,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x1a, 0xd3, 0x58, 0x0a, 0x09, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x7a,
-	0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xeb, 0xb4, 0xac, 0x9f, 0x01, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x42, 0x1f, 0x82, 0x41, 0x1c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x83, 0x01, 0x0a, 0x09, 0x68,
-	0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xd4, 0xfd, 0xf1, 0x53, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x3f, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69,
-	0x6d, 0x65, 0x42, 0x22, 0x82, 0x41, 0x1f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c,
-	0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65,
-	0x12, 0x76, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xac, 0xc6, 0xe6, 0xb8, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x42, 0x1e, 0x82, 0x41, 0x1b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x96, 0x01, 0x0a, 0x0d, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x95, 0x9b, 0xa7, 0x9c, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x1a, 0xc9, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x68, 0x0a, 0x0b,
-	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xb4, 0xb3, 0xc9, 0xc7,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65,
-	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
-	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x59, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x18, 0xed, 0xfe, 0xdf, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x27, 0x82, 0x41, 0x24, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x12, 0x6a, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x6f,
-	0x64, 0x65, 0x18, 0xbb, 0xb4, 0xf1, 0x78, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x2d, 0x82, 0x41, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x2d, 0x6d, 0x6f, 0x64, 0x65, 0x52,
-	0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a,
-	0x03, 0x6d, 0x74, 0x75, 0x18, 0xa6, 0x87, 0xb2, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x23, 0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6d, 0x74, 0x75, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x52, 0x0a,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x9b, 0xf0, 0xd9, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x24, 0x82, 0x41, 0x21, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
-	0x65, 0x12, 0x6a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x9e, 0xbf, 0xf9, 0x44, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x65, 0x6e, 0x75, 0x6d, 0x73, 0x2e, 0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
-	0x65, 0x42, 0x24, 0x82, 0x41, 0x21, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x9d, 0x05,
-	0x0a, 0x08, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x06, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0xd9, 0xb3, 0xf6, 0x96, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x46, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65,
-	0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x29, 0x82, 0x41, 0x26, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x89, 0x01, 0x0a, 0x05, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x18, 0xae, 0xd3, 0xa8, 0xe6, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45,
-	0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e,
-	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x2e,
-	0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x28, 0x82, 0x41, 0x25, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52,
-	0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xba, 0x01, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69,
-	0x67, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0xd8, 0x8c, 0xd0, 0x51, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69,
-	0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2e, 0x82, 0x41, 0x2b, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2f, 0x64, 0x6f, 0x77, 0x6e, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x54, 0x0a,
-	0x02, 0x75, 0x70, 0x18, 0xfb, 0xe3, 0xc9, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x2c, 0x82, 0x41, 0x29, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64,
-	0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x75, 0x70, 0x52,
-	0x02, 0x75, 0x70, 0x1a, 0xb7, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a,
-	0x04, 0x64, 0x6f, 0x77, 0x6e, 0x18, 0xe9, 0x86, 0x87, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x2d, 0x82, 0x41, 0x2a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f,
-	0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x6f,
-	0x77, 0x6e, 0x52, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x53, 0x0a, 0x02, 0x75, 0x70, 0x18, 0xae,
-	0xc9, 0xde, 0x6a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x68, 0x6f, 0x6c, 0x64, 0x2d, 0x74, 0x69, 0x6d, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x75, 0x70, 0x52, 0x02, 0x75, 0x70, 0x1a, 0x9b, 0x1e,
-	0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x9c, 0x01, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69,
-	0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xab, 0xee, 0xa0, 0xe2, 0x01, 0x20, 0x01,
-	0x28, 0x0e, 0x32, 0x48, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65,
-	0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2b, 0x82, 0x41,
-	0x28, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x61, 0x64, 0x6d,
-	0x69, 0x6e, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61, 0x64, 0x6d, 0x69, 0x6e,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x18, 0x8c, 0xac, 0xf1, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x42, 0x27, 0x82, 0x41, 0x24, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x08, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x97, 0x9f, 0xd9, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e,
-	0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
-	0x59, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x9e, 0x9b, 0xe6, 0x9d, 0x01,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
-	0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x07, 0x69, 0x66,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xaa, 0xd7, 0xae, 0x37, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x66, 0x69,
-	0x6e, 0x64, 0x65, 0x78, 0x12, 0x63, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61,
-	0x6e, 0x67, 0x65, 0x18, 0x90, 0xe1, 0xdc, 0x3c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x6c,
-	0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x6c, 0x6f, 0x67,
-	0x69, 0x63, 0x61, 0x6c, 0x18, 0xb8, 0xc7, 0x83, 0xd2, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x26, 0x82, 0x41, 0x23, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x07, 0x6c, 0x6f, 0x67,
-	0x69, 0x63, 0x61, 0x6c, 0x12, 0x6a, 0x0a, 0x0d, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b,
-	0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0xd8, 0x96, 0xea, 0xb1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x2c, 0x82, 0x41, 0x29, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x2d, 0x6d, 0x6f,
-	0x64, 0x65, 0x52, 0x0c, 0x6c, 0x6f, 0x6f, 0x70, 0x62, 0x61, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65,
-	0x12, 0x4c, 0x0a, 0x03, 0x6d, 0x74, 0x75, 0x18, 0xd5, 0x9a, 0xfb, 0x2d, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x22, 0x82, 0x41, 0x1f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6d, 0x74, 0x75, 0x52, 0x03, 0x6d, 0x74, 0x75, 0x12, 0x52,
-	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xee, 0xf4, 0x8a, 0xf0, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69,
-	0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x23, 0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61,
-	0x6d, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74,
-	0x75, 0x73, 0x18, 0xf2, 0xca, 0xa6, 0xe0, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x2a, 0x82, 0x41, 0x27, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x6a, 0x0a,
-	0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0xe3, 0xd3, 0xe3, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x2d, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x65, 0x6e, 0x75,
-	0x6d, 0x73, 0x2e, 0x49, 0x45, 0x54, 0x46, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x23,
-	0x82, 0x41, 0x20, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x74,
-	0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0xbe, 0x10, 0x0a, 0x08, 0x43, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x13, 0x63, 0x61, 0x72, 0x72, 0x69,
-	0x65, 0x72, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xba,
-	0xc1, 0x90, 0x81, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3b, 0x82,
-	0x41, 0x38, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f,
-	0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x2d, 0x74,
-	0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x12, 0x63, 0x61, 0x72, 0x72,
-	0x69, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x7e,
-	0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70,
-	0x6b, 0x74, 0x73, 0x18, 0x85, 0x96, 0xce, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
-	0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c,
-	0x75, 0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61,
-	0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x62,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69,
-	0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x6c,
-	0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xfa, 0x95,
-	0xdb, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
-	0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x33, 0x82, 0x41, 0x30,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x52, 0x0a, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x67, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xea, 0xcd, 0xe2, 0xd9, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x31, 0x82, 0x41, 0x2e, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
-	0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x45,
-	0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x72, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x66, 0x63, 0x73, 0x5f,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xf3, 0xdd, 0x94, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x35, 0x82, 0x41, 0x32, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69,
-	0x6e, 0x2d, 0x66, 0x63, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x0b, 0x69, 0x6e,
-	0x46, 0x63, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x7d, 0x0a, 0x11, 0x69, 0x6e, 0x5f,
-	0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0x88,
-	0xb3, 0x81, 0x36, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x39, 0x82, 0x41,
-	0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75,
-	0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69, 0x6e, 0x4d, 0x75, 0x6c, 0x74, 0x69,
-	0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x67, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x6f,
-	0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xcb, 0x97, 0xed, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x31, 0x82, 0x41, 0x2e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e,
-	0x2d, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x4f, 0x63, 0x74, 0x65, 0x74,
-	0x73, 0x12, 0x61, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xe3, 0xfb, 0xed,
-	0xc4, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65,
-	0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x2f, 0x82, 0x41, 0x2c,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e,
-	0x50, 0x6b, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xf3, 0xf5, 0x89, 0x82, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e,
-	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x37, 0x82, 0x41, 0x34, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f,
-	0x69, 0x6e, 0x2d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52,
-	0x0d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x7d,
-	0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x5f, 0x70, 0x72, 0x6f,
-	0x74, 0x6f, 0x73, 0x18, 0xa9, 0xbf, 0x92, 0x73, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79,
-	0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75, 0x6e,
-	0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x52, 0x0f, 0x69, 0x6e,
-	0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x12, 0x69, 0x0a,
-	0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0xc7, 0xb9, 0xd9, 0x58,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65,
-	0x72, 0x73, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x52, 0x09, 0x6c,
-	0x61, 0x73, 0x74, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x6f, 0x75, 0x74,
-	0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18,
-	0xe4, 0xef, 0xb9, 0xa1, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3a,
-	0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x62, 0x72, 0x6f, 0x61,
-	0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x42,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x0c,
-	0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xc7, 0xa5, 0x92,
-	0x79, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x34, 0x82, 0x41, 0x31, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x52, 0x0b, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x6a, 0x0a,
-	0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xc7, 0xec, 0xd1, 0xe0,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x09,
-	0x6f, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x81, 0x01, 0x0a, 0x12, 0x6f, 0x75,
-	0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73,
-	0x18, 0xf5, 0xb0, 0xa8, 0xda, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x3a, 0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6d, 0x75, 0x6c,
-	0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74,
-	0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x69, 0x0a,
-	0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xca, 0xb3, 0xec, 0x5f,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x32, 0x82, 0x41, 0x2f, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65,
-	0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x09, 0x6f,
-	0x75, 0x74, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f,
-	0x70, 0x6b, 0x74, 0x73, 0x18, 0x8a, 0xf2, 0xd3, 0xd0, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x30, 0x82, 0x41, 0x2d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74,
-	0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x7a,
-	0x0a, 0x10, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b,
-	0x74, 0x73, 0x18, 0xa6, 0xae, 0xb6, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x38, 0x82, 0x41, 0x35, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x75, 0x6e,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x55,
-	0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x41,
-	0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44,
-	0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10,
-	0x00, 0x12, 0x19, 0x0a, 0x0e, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53,
-	0x5f, 0x55, 0x50, 0x10, 0x01, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1d, 0x0a, 0x10,
-	0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e,
-	0x10, 0x02, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x23, 0x0a, 0x13, 0x41,
-	0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49,
-	0x4e, 0x47, 0x10, 0x03, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47,
-	0x22, 0xa8, 0x02, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
-	0x14, 0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e,
-	0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12,
-	0x1c, 0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f,
-	0x57, 0x4e, 0x10, 0x03, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a,
-	0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54,
-	0x49, 0x4e, 0x47, 0x10, 0x04, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e,
-	0x47, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
-	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x55, 0x4e,
-	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x10, 0x06, 0x1a, 0x0a, 0x82,
-	0x41, 0x07, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x12, 0x2a, 0x0a, 0x16, 0x4f, 0x50, 0x45,
-	0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53,
-	0x45, 0x4e, 0x54, 0x10, 0x07, 0x1a, 0x0e, 0x82, 0x41, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52,
-	0x45, 0x53, 0x45, 0x4e, 0x54, 0x12, 0x34, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41,
-	0x54, 0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f,
-	0x44, 0x4f, 0x57, 0x4e, 0x10, 0x08, 0x1a, 0x13, 0x82, 0x41, 0x10, 0x4c, 0x4f, 0x57, 0x45, 0x52,
-	0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x1a, 0xa8, 0x2c, 0x0a, 0x0d,
-	0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0xb1, 0x01,
-	0x0a, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x83,
-	0xa8, 0xd1, 0xdd, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x42, 0x33,
-	0x82, 0x41, 0x30, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x1a, 0x86, 0x29, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x84, 0x9f,
-	0xb9, 0x53, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e,
-	0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x42, 0x3a, 0x82, 0x41, 0x37, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f,
-	0x6e, 0x66, 0x69, 0x67, 0x12, 0xac, 0x01, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x9d,
-	0x89, 0xae, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x57, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
-	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
-	0x65, 0x42, 0x39, 0x82, 0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x1a, 0xf6, 0x02, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x83,
-	0x01, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xdf,
-	0xe7, 0xea, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x46, 0x82, 0x41, 0x43, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x64, 0x65, 0x73, 0x63,
-	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
-	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x75, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18,
-	0xa6, 0xef, 0xdd, 0x8d, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61,
-	0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x42,
-	0x82, 0x41, 0x3f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-	0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x6f, 0x0a, 0x05, 0x69,
-	0x6e, 0x64, 0x65, 0x78, 0x18, 0x95, 0xa3, 0x95, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
-	0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61,
-	0x6c, 0x75, 0x65, 0x42, 0x40, 0x82, 0x41, 0x3d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
-	0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x1a, 0x9b, 0x23, 0x0a,
-	0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0xd1, 0x01, 0x0a, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e,
-	0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x88, 0x81, 0xc3, 0x77, 0x20, 0x01, 0x28, 0x0e,
-	0x32, 0x63, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70,
-	0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x46, 0x82, 0x41, 0x43, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0b, 0x61,
-	0x64, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x08, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x18, 0xdf, 0x80, 0xc3, 0xe6, 0x01, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x60, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f,
-	0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e,
-	0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x42, 0x42, 0x82, 0x41, 0x3f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63,
-	0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x52, 0x08, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72,
-	0x73, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
-	0x6e, 0x18, 0xe6, 0xa7, 0xe8, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75,
-	0x65, 0x42, 0x45, 0x82, 0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x64, 0x65, 0x73,
-	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
-	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x74, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
-	0x18, 0xb3, 0xe8, 0xb3, 0xdf, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x41, 0x82, 0x41, 0x3e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
-	0x65, 0x64, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x74, 0x0a, 0x07, 0x69,
-	0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0xe7, 0xa0, 0x91, 0xf4, 0x01, 0x20, 0x01, 0x28, 0x0b,
-	0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74,
-	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x41, 0x82, 0x41, 0x3e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65,
-	0x2f, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x07, 0x69, 0x66, 0x69, 0x6e, 0x64, 0x65,
-	0x78, 0x12, 0x6d, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x9c, 0xaa, 0xc0, 0x26, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x3f, 0x82, 0x41, 0x3c, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78,
-	0x12, 0x7e, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18,
-	0x89, 0x9d, 0xa1, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x45, 0x82,
-	0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x68,
-	0x61, 0x6e, 0x67, 0x65, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65,
-	0x12, 0x74, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x18, 0xf1, 0xf6, 0x9f, 0x8c,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x41, 0x82, 0x41, 0x3e, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x07, 0x6c,
-	0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x6d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0xf9,
-	0xfb, 0x99, 0x85, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70,
-	0x70, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x3e, 0x82, 0x41, 0x3b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x52,
-	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0xce, 0x01, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73,
-	0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0xdf, 0xa0, 0xd6, 0xbf, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
-	0x62, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65,
-	0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61,
-	0x74, 0x75, 0x73, 0x42, 0x45, 0x82, 0x41, 0x42, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x6f,
-	0x70, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72,
-	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0xb0, 0x14, 0x0a, 0x08, 0x43, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x13, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x5f,
-	0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x95, 0xa6, 0xa5, 0x43,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x56, 0x82, 0x41, 0x53, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x63, 0x61,
-	0x72, 0x72, 0x69, 0x65, 0x72, 0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
-	0x73, 0x52, 0x12, 0x63, 0x61, 0x72, 0x72, 0x69, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69,
-	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x62, 0x72, 0x6f,
-	0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xb6, 0x8e, 0xab, 0x39,
-	0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e,
-	0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e,
-	0x2d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52,
-	0x0f, 0x69, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73,
-	0x12, 0x88, 0x01, 0x0a, 0x0b, 0x69, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73,
-	0x18, 0x9d, 0xdd, 0xcf, 0x92, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72,
-	0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42,
-	0x4e, 0x82, 0x41, 0x4b, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74,
-	0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x52,
-	0x0a, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0xa9, 0x9b, 0xba, 0x98, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4c, 0x82, 0x41, 0x49, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d,
-	0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
-	0x12, 0x8c, 0x01, 0x0a, 0x0d, 0x69, 0x6e, 0x5f, 0x66, 0x63, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x73, 0x18, 0xf8, 0xaa, 0xff, 0x50, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x50, 0x82, 0x41, 0x4d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x66, 0x63, 0x73, 0x2d, 0x65, 0x72, 0x72, 0x6f,
-	0x72, 0x73, 0x52, 0x0b, 0x69, 0x6e, 0x46, 0x63, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12,
-	0x99, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74,
-	0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xeb, 0x82, 0xf1, 0x98, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x6d, 0x75, 0x6c, 0x74,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0f, 0x69, 0x6e, 0x4d, 0x75,
-	0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x82, 0x01, 0x0a, 0x09,
-	0x69, 0x6e, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xac, 0x99, 0xe9, 0xfc, 0x01, 0x20,
-	0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55,
-	0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4c, 0x82, 0x41, 0x49, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74,
-	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d,
-	0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x08, 0x69, 0x6e, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73,
-	0x12, 0x7c, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xc8, 0xee, 0xad, 0xd2,
-	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4a, 0x82, 0x41, 0x47, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69,
-	0x6e, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x06, 0x69, 0x6e, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x92,
-	0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b,
-	0x74, 0x73, 0x18, 0xa0, 0xb6, 0xe6, 0x54, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x52, 0x82, 0x41, 0x4f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x2d,
-	0x70, 0x6b, 0x74, 0x73, 0x52, 0x0d, 0x69, 0x6e, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50,
-	0x6b, 0x74, 0x73, 0x12, 0x98, 0x01, 0x0a, 0x11, 0x69, 0x6e, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f,
-	0x77, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x18, 0xa6, 0xe4, 0xd2, 0x45, 0x20, 0x01,
-	0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69,
-	0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x54, 0x82, 0x41, 0x51, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f,
-	0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61,
-	0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x69, 0x6e, 0x2d, 0x75,
-	0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x52, 0x0f, 0x69,
-	0x6e, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x12, 0x85,
-	0x01, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x18, 0xf6, 0x89,
-	0x83, 0xf7, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4d, 0x82, 0x41,
-	0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73,
-	0x2f, 0x6c, 0x61, 0x73, 0x74, 0x2d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x52, 0x09, 0x6c, 0x61, 0x73,
-	0x74, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x12, 0x9c, 0x01, 0x0a, 0x12, 0x6f, 0x75, 0x74, 0x5f, 0x62,
-	0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xfd, 0x8e,
-	0x80, 0xef, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70,
-	0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x55, 0x82, 0x41,
-	0x52, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73,
-	0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x2d, 0x70,
-	0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
-	0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x0c, 0x6f, 0x75, 0x74, 0x5f, 0x64, 0x69,
-	0x73, 0x63, 0x61, 0x72, 0x64, 0x73, 0x18, 0xb2, 0xc4, 0x89, 0x4c, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x4f, 0x82, 0x41, 0x4c, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x64, 0x69, 0x73,
-	0x63, 0x61, 0x72, 0x64, 0x73, 0x52, 0x0b, 0x6f, 0x75, 0x74, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72,
-	0x64, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72,
-	0x73, 0x18, 0xe2, 0xa0, 0xc1, 0xde, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x4d, 0x82, 0x41, 0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52,
-	0x09, 0x6f, 0x75, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x12, 0x6f,
-	0x75, 0x74, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x6b, 0x74,
-	0x73, 0x18, 0x80, 0xfc, 0xc2, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77,
-	0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65,
-	0x42, 0x55, 0x82, 0x41, 0x52, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e,
-	0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
-	0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x4d, 0x75, 0x6c, 0x74,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x0a, 0x6f, 0x75,
-	0x74, 0x5f, 0x6f, 0x63, 0x74, 0x65, 0x74, 0x73, 0x18, 0xa3, 0x8e, 0x8f, 0x18, 0x20, 0x01, 0x28,
-	0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e,
-	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4d, 0x82, 0x41, 0x4a, 0x2f, 0x69, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74,
-	0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x6f,
-	0x63, 0x74, 0x65, 0x74, 0x73, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x4f, 0x63, 0x74, 0x65, 0x74, 0x73,
-	0x12, 0x7e, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0x9b, 0xae, 0x88,
-	0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
-	0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x4b, 0x82, 0x41, 0x48, 0x2f,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63,
-	0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x73, 0x74, 0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f,
-	0x75, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x50, 0x6b, 0x74, 0x73,
-	0x12, 0x96, 0x01, 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74,
-	0x5f, 0x70, 0x6b, 0x74, 0x73, 0x18, 0xbb, 0x85, 0x87, 0x8e, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
-	0x13, 0x2e, 0x79, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x56,
-	0x61, 0x6c, 0x75, 0x65, 0x42, 0x53, 0x82, 0x41, 0x50, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66,
-	0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62,
-	0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2f,
-	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x6f, 0x75, 0x74, 0x2d, 0x75, 0x6e, 0x69,
-	0x63, 0x61, 0x73, 0x74, 0x2d, 0x70, 0x6b, 0x74, 0x73, 0x52, 0x0e, 0x6f, 0x75, 0x74, 0x55, 0x6e,
-	0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x6b, 0x74, 0x73, 0x22, 0x83, 0x01, 0x0a, 0x0b, 0x41, 0x64,
-	0x6d, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x44, 0x4d,
-	0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00,
-	0x12, 0x19, 0x0a, 0x0e, 0x41, 0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
-	0x55, 0x50, 0x10, 0x01, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1d, 0x0a, 0x10, 0x41,
-	0x44, 0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x10,
-	0x02, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x23, 0x0a, 0x13, 0x41, 0x44,
-	0x4d, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e,
-	0x47, 0x10, 0x03, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47, 0x22,
-	0xa8, 0x02, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14,
-	0x0a, 0x10, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53,
-	0x45, 0x54, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x0d, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x55, 0x50, 0x10, 0x02, 0x1a, 0x05, 0x82, 0x41, 0x02, 0x55, 0x50, 0x12, 0x1c,
-	0x0a, 0x0f, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57,
-	0x4e, 0x10, 0x03, 0x1a, 0x07, 0x82, 0x41, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12,
-	0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x49,
-	0x4e, 0x47, 0x10, 0x04, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x54, 0x45, 0x53, 0x54, 0x49, 0x4e, 0x47,
-	0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
-	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x1a, 0x0a, 0x82, 0x41, 0x07, 0x55, 0x4e, 0x4b,
-	0x4e, 0x4f, 0x57, 0x4e, 0x12, 0x22, 0x0a, 0x12, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x10, 0x06, 0x1a, 0x0a, 0x82, 0x41,
-	0x07, 0x44, 0x4f, 0x52, 0x4d, 0x41, 0x4e, 0x54, 0x12, 0x2a, 0x0a, 0x16, 0x4f, 0x50, 0x45, 0x52,
-	0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45,
-	0x4e, 0x54, 0x10, 0x07, 0x1a, 0x0e, 0x82, 0x41, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45,
-	0x53, 0x45, 0x4e, 0x54, 0x12, 0x34, 0x0a, 0x1b, 0x4f, 0x50, 0x45, 0x52, 0x53, 0x54, 0x41, 0x54,
-	0x55, 0x53, 0x5f, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44,
-	0x4f, 0x57, 0x4e, 0x10, 0x08, 0x1a, 0x13, 0x82, 0x41, 0x10, 0x4c, 0x4f, 0x57, 0x45, 0x52, 0x5f,
-	0x4c, 0x41, 0x59, 0x45, 0x52, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x1a, 0xd9, 0x01, 0x0a, 0x0f, 0x53,
-	0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x4f,
-	0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x39, 0x82,
-	0x41, 0x36, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12,
-	0x75, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18,
-	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66,
-	0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
-	0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2e, 0x53, 0x75,
-	0x62, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x69,
-	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x69, 0x6e, 0x74,
-	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x1a, 0x97, 0x01, 0x0a, 0x0c, 0x49, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x31, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
-	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0x82, 0x41, 0x1a, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72,
-	0x66, 0x61, 0x63, 0x65, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f,
-	0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e,
-	0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e,
-	0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6f, 0x70, 0x65, 0x6e, 0x63,
-	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73,
-	0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65,
-	0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
-}
-
-var (
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescOnce sync.Once
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData = file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc
-)
-
-func file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescGZIP() []byte {
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescOnce.Do(func() {
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData = protoimpl.X.CompressGZIP(file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData)
-	})
-	return file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDescData
-}
-
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes = []interface{}{
-	(Interfaces_Interface_State_AdminStatus)(0),                            // 0: openconfig.openconfig_interfaces.Interfaces.Interface.State.AdminStatus
-	(Interfaces_Interface_State_OperStatus)(0),                             // 1: openconfig.openconfig_interfaces.Interfaces.Interface.State.OperStatus
-	(Interfaces_Interface_Subinterfaces_Subinterface_State_AdminStatus)(0), // 2: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.AdminStatus
-	(Interfaces_Interface_Subinterfaces_Subinterface_State_OperStatus)(0),  // 3: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.OperStatus
-	(*Interfaces)(nil),                                                     // 4: openconfig.openconfig_interfaces.Interfaces
-	(*Interfaces_Interface)(nil),                                           // 5: openconfig.openconfig_interfaces.Interfaces.Interface
-	(*Interfaces_InterfaceKey)(nil),                                        // 6: openconfig.openconfig_interfaces.Interfaces.InterfaceKey
-	(*Interfaces_Interface_Config)(nil),                                    // 7: openconfig.openconfig_interfaces.Interfaces.Interface.Config
-	(*Interfaces_Interface_HoldTime)(nil),                                  // 8: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime
-	(*Interfaces_Interface_State)(nil),                                     // 9: openconfig.openconfig_interfaces.Interfaces.Interface.State
-	(*Interfaces_Interface_Subinterfaces)(nil),                             // 10: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces
-	(*Interfaces_Interface_HoldTime_Config)(nil),                           // 11: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config
-	(*Interfaces_Interface_HoldTime_State)(nil),                            // 12: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State
-	(*Interfaces_Interface_State_Counters)(nil),                            // 13: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters
-	(*Interfaces_Interface_Subinterfaces_Subinterface)(nil),                // 14: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface
-	(*Interfaces_Interface_Subinterfaces_SubinterfaceKey)(nil),             // 15: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey
-	(*Interfaces_Interface_Subinterfaces_Subinterface_Config)(nil),         // 16: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config
-	(*Interfaces_Interface_Subinterfaces_Subinterface_State)(nil),          // 17: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State
-	(*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters)(nil), // 18: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters
-	(*ywrapper.StringValue)(nil),                                           // 19: ywrapper.StringValue
-	(*ywrapper.BoolValue)(nil),                                             // 20: ywrapper.BoolValue
-	(*ywrapper.UintValue)(nil),                                             // 21: ywrapper.UintValue
-	(enums.IETFInterfacesInterfaceType)(0),                                 // 22: openconfig.enums.IETFInterfacesInterfaceType
-}
-var file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs = []int32{
-	6,  // 0: openconfig.openconfig_interfaces.Interfaces.interface:type_name -> openconfig.openconfig_interfaces.Interfaces.InterfaceKey
-	7,  // 1: openconfig.openconfig_interfaces.Interfaces.Interface.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Config
-	8,  // 2: openconfig.openconfig_interfaces.Interfaces.Interface.hold_time:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime
-	9,  // 3: openconfig.openconfig_interfaces.Interfaces.Interface.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State
-	10, // 4: openconfig.openconfig_interfaces.Interfaces.Interface.subinterfaces:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces
-	5,  // 5: openconfig.openconfig_interfaces.Interfaces.InterfaceKey.interface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface
-	19, // 6: openconfig.openconfig_interfaces.Interfaces.Interface.Config.description:type_name -> ywrapper.StringValue
-	20, // 7: openconfig.openconfig_interfaces.Interfaces.Interface.Config.enabled:type_name -> ywrapper.BoolValue
-	20, // 8: openconfig.openconfig_interfaces.Interfaces.Interface.Config.loopback_mode:type_name -> ywrapper.BoolValue
-	21, // 9: openconfig.openconfig_interfaces.Interfaces.Interface.Config.mtu:type_name -> ywrapper.UintValue
-	19, // 10: openconfig.openconfig_interfaces.Interfaces.Interface.Config.name:type_name -> ywrapper.StringValue
-	22, // 11: openconfig.openconfig_interfaces.Interfaces.Interface.Config.type:type_name -> openconfig.enums.IETFInterfacesInterfaceType
-	11, // 12: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config
-	12, // 13: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State
-	0,  // 14: openconfig.openconfig_interfaces.Interfaces.Interface.State.admin_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.AdminStatus
-	13, // 15: openconfig.openconfig_interfaces.Interfaces.Interface.State.counters:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters
-	19, // 16: openconfig.openconfig_interfaces.Interfaces.Interface.State.description:type_name -> ywrapper.StringValue
-	20, // 17: openconfig.openconfig_interfaces.Interfaces.Interface.State.enabled:type_name -> ywrapper.BoolValue
-	21, // 18: openconfig.openconfig_interfaces.Interfaces.Interface.State.ifindex:type_name -> ywrapper.UintValue
-	21, // 19: openconfig.openconfig_interfaces.Interfaces.Interface.State.last_change:type_name -> ywrapper.UintValue
-	20, // 20: openconfig.openconfig_interfaces.Interfaces.Interface.State.logical:type_name -> ywrapper.BoolValue
-	20, // 21: openconfig.openconfig_interfaces.Interfaces.Interface.State.loopback_mode:type_name -> ywrapper.BoolValue
-	21, // 22: openconfig.openconfig_interfaces.Interfaces.Interface.State.mtu:type_name -> ywrapper.UintValue
-	19, // 23: openconfig.openconfig_interfaces.Interfaces.Interface.State.name:type_name -> ywrapper.StringValue
-	1,  // 24: openconfig.openconfig_interfaces.Interfaces.Interface.State.oper_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.State.OperStatus
-	22, // 25: openconfig.openconfig_interfaces.Interfaces.Interface.State.type:type_name -> openconfig.enums.IETFInterfacesInterfaceType
-	15, // 26: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.subinterface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey
-	21, // 27: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config.down:type_name -> ywrapper.UintValue
-	21, // 28: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.Config.up:type_name -> ywrapper.UintValue
-	21, // 29: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State.down:type_name -> ywrapper.UintValue
-	21, // 30: openconfig.openconfig_interfaces.Interfaces.Interface.HoldTime.State.up:type_name -> ywrapper.UintValue
-	21, // 31: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.carrier_transitions:type_name -> ywrapper.UintValue
-	21, // 32: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 33: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_discards:type_name -> ywrapper.UintValue
-	21, // 34: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_errors:type_name -> ywrapper.UintValue
-	21, // 35: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_fcs_errors:type_name -> ywrapper.UintValue
-	21, // 36: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 37: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_octets:type_name -> ywrapper.UintValue
-	21, // 38: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_pkts:type_name -> ywrapper.UintValue
-	21, // 39: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_unicast_pkts:type_name -> ywrapper.UintValue
-	21, // 40: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.in_unknown_protos:type_name -> ywrapper.UintValue
-	21, // 41: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.last_clear:type_name -> ywrapper.UintValue
-	21, // 42: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 43: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_discards:type_name -> ywrapper.UintValue
-	21, // 44: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_errors:type_name -> ywrapper.UintValue
-	21, // 45: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 46: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_octets:type_name -> ywrapper.UintValue
-	21, // 47: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_pkts:type_name -> ywrapper.UintValue
-	21, // 48: openconfig.openconfig_interfaces.Interfaces.Interface.State.Counters.out_unicast_pkts:type_name -> ywrapper.UintValue
-	16, // 49: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.config:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config
-	17, // 50: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.state:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State
-	14, // 51: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.SubinterfaceKey.subinterface:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface
-	19, // 52: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.description:type_name -> ywrapper.StringValue
-	20, // 53: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.enabled:type_name -> ywrapper.BoolValue
-	21, // 54: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.Config.index:type_name -> ywrapper.UintValue
-	2,  // 55: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.admin_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.AdminStatus
-	18, // 56: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.counters:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters
-	19, // 57: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.description:type_name -> ywrapper.StringValue
-	20, // 58: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.enabled:type_name -> ywrapper.BoolValue
-	21, // 59: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.ifindex:type_name -> ywrapper.UintValue
-	21, // 60: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.index:type_name -> ywrapper.UintValue
-	21, // 61: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.last_change:type_name -> ywrapper.UintValue
-	20, // 62: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.logical:type_name -> ywrapper.BoolValue
-	19, // 63: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.name:type_name -> ywrapper.StringValue
-	3,  // 64: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.oper_status:type_name -> openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.OperStatus
-	21, // 65: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.carrier_transitions:type_name -> ywrapper.UintValue
-	21, // 66: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 67: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_discards:type_name -> ywrapper.UintValue
-	21, // 68: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_errors:type_name -> ywrapper.UintValue
-	21, // 69: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_fcs_errors:type_name -> ywrapper.UintValue
-	21, // 70: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 71: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_octets:type_name -> ywrapper.UintValue
-	21, // 72: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_pkts:type_name -> ywrapper.UintValue
-	21, // 73: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_unicast_pkts:type_name -> ywrapper.UintValue
-	21, // 74: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.in_unknown_protos:type_name -> ywrapper.UintValue
-	21, // 75: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.last_clear:type_name -> ywrapper.UintValue
-	21, // 76: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_broadcast_pkts:type_name -> ywrapper.UintValue
-	21, // 77: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_discards:type_name -> ywrapper.UintValue
-	21, // 78: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_errors:type_name -> ywrapper.UintValue
-	21, // 79: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_multicast_pkts:type_name -> ywrapper.UintValue
-	21, // 80: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_octets:type_name -> ywrapper.UintValue
-	21, // 81: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_pkts:type_name -> ywrapper.UintValue
-	21, // 82: openconfig.openconfig_interfaces.Interfaces.Interface.Subinterfaces.Subinterface.State.Counters.out_unicast_pkts:type_name -> ywrapper.UintValue
-	83, // [83:83] is the sub-list for method output_type
-	83, // [83:83] is the sub-list for method input_type
-	83, // [83:83] is the sub-list for extension type_name
-	83, // [83:83] is the sub-list for extension extendee
-	0,  // [0:83] is the sub-list for field type_name
-}
-
-func init() { file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_init() }
-func file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_init() {
-	if File_openconfig_openconfig_interfaces_openconfig_interfaces_proto != nil {
-		return
-	}
-	if !protoimpl.UnsafeEnabled {
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_InterfaceKey); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_HoldTime_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_State_Counters); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_SubinterfaceKey); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_Config); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_State); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-		file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
-			switch v := v.(*Interfaces_Interface_Subinterfaces_Subinterface_State_Counters); i {
-			case 0:
-				return &v.state
-			case 1:
-				return &v.sizeCache
-			case 2:
-				return &v.unknownFields
-			default:
-				return nil
-			}
-		}
-	}
-	type x struct{}
-	out := protoimpl.TypeBuilder{
-		File: protoimpl.DescBuilder{
-			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
-			RawDescriptor: file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc,
-			NumEnums:      4,
-			NumMessages:   15,
-			NumExtensions: 0,
-			NumServices:   0,
-		},
-		GoTypes:           file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes,
-		DependencyIndexes: file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs,
-		EnumInfos:         file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_enumTypes,
-		MessageInfos:      file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_msgTypes,
-	}.Build()
-	File_openconfig_openconfig_interfaces_openconfig_interfaces_proto = out.File
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_rawDesc = nil
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_goTypes = nil
-	file_openconfig_openconfig_interfaces_openconfig_interfaces_proto_depIdxs = nil
-}
diff --git a/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.proto b/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.proto
deleted file mode 100644
index 82e99cf6a44d260a1b0b115802b4f55a214c9561..0000000000000000000000000000000000000000
--- a/api/proto/openconfig/openconfig_interfaces/openconfig_interfaces.proto
+++ /dev/null
@@ -1,163 +0,0 @@
-// openconfig.openconfig_interfaces is generated by proto_generator as a protobuf
-// representation of a YANG schema.
-//
-// Input schema modules:
-//  - ../yang-models/models/openconfig/release/models/interfaces/openconfig-interfaces.yang
-// Include paths:
-//   - ../yang-models/models/...
-syntax = "proto3";
-
-package openconfig.openconfig_interfaces;
-option go_package = "code.fbi.h-da.de/cocsn/gosdn";
-
-import "github.com/openconfig/ygot/proto/ywrapper/ywrapper.proto";
-import "github.com/openconfig/ygot/proto/yext/yext.proto";
-import "openconfig/enums/enums.proto";
-
-message Interfaces {
-  message Interface {
-    message Config {
-      ywrapper.StringValue description = 418535860 [(yext.schemapath) = "/interfaces/interface/config/description"];
-      ywrapper.BoolValue enabled = 37224301 [(yext.schemapath) = "/interfaces/interface/config/enabled"];
-      ywrapper.BoolValue loopback_mode = 253516347 [(yext.schemapath) = "/interfaces/interface/config/loopback-mode"];
-      ywrapper.UintValue mtu = 376210342 [(yext.schemapath) = "/interfaces/interface/config/mtu"];
-      ywrapper.StringValue name = 51804187 [(yext.schemapath) = "/interfaces/interface/config/name"];
-      openconfig.enums.IETFInterfacesInterfaceType type = 144596894 [(yext.schemapath) = "/interfaces/interface/config/type"];
-    }
-    message HoldTime {
-      message Config {
-        ywrapper.UintValue down = 171181656 [(yext.schemapath) = "/interfaces/interface/hold-time/config/down"];
-        ywrapper.UintValue up = 62026235 [(yext.schemapath) = "/interfaces/interface/hold-time/config/up"];
-      }
-      message State {
-        ywrapper.UintValue down = 167887721 [(yext.schemapath) = "/interfaces/interface/hold-time/state/down"];
-        ywrapper.UintValue up = 223847598 [(yext.schemapath) = "/interfaces/interface/hold-time/state/up"];
-      }
-      Config config = 316512729 [(yext.schemapath) = "/interfaces/interface/hold-time/config"];
-      State state = 483010990 [(yext.schemapath) = "/interfaces/interface/hold-time/state"];
-    }
-    message State {
-      message Counters {
-        ywrapper.UintValue carrier_transitions = 270803130 [(yext.schemapath) = "/interfaces/interface/state/counters/carrier-transitions"];
-        ywrapper.UintValue in_broadcast_pkts = 280201989 [(yext.schemapath) = "/interfaces/interface/state/counters/in-broadcast-pkts"];
-        ywrapper.UintValue in_discards = 11979514 [(yext.schemapath) = "/interfaces/interface/state/counters/in-discards"];
-        ywrapper.UintValue in_errors = 456697578 [(yext.schemapath) = "/interfaces/interface/state/counters/in-errors"];
-        ywrapper.UintValue in_fcs_errors = 501559027 [(yext.schemapath) = "/interfaces/interface/state/counters/in-fcs-errors"];
-        ywrapper.UintValue in_multicast_pkts = 113269128 [(yext.schemapath) = "/interfaces/interface/state/counters/in-multicast-pkts"];
-        ywrapper.UintValue in_octets = 333138891 [(yext.schemapath) = "/interfaces/interface/state/counters/in-octets"];
-        ywrapper.UintValue in_pkts = 412843491 [(yext.schemapath) = "/interfaces/interface/state/counters/in-pkts"];
-        ywrapper.UintValue in_unicast_pkts = 272792307 [(yext.schemapath) = "/interfaces/interface/state/counters/in-unicast-pkts"];
-        ywrapper.UintValue in_unknown_protos = 241475497 [(yext.schemapath) = "/interfaces/interface/state/counters/in-unknown-protos"];
-        ywrapper.UintValue last_clear = 186014919 [(yext.schemapath) = "/interfaces/interface/state/counters/last-clear"];
-        ywrapper.UintValue out_broadcast_pkts = 338589668 [(yext.schemapath) = "/interfaces/interface/state/counters/out-broadcast-pkts"];
-        ywrapper.UintValue out_discards = 254055111 [(yext.schemapath) = "/interfaces/interface/state/counters/out-discards"];
-        ywrapper.UintValue out_errors = 471103047 [(yext.schemapath) = "/interfaces/interface/state/counters/out-errors"];
-        ywrapper.UintValue out_multicast_pkts = 457840757 [(yext.schemapath) = "/interfaces/interface/state/counters/out-multicast-pkts"];
-        ywrapper.UintValue out_octets = 201005514 [(yext.schemapath) = "/interfaces/interface/state/counters/out-octets"];
-        ywrapper.UintValue out_pkts = 437582090 [(yext.schemapath) = "/interfaces/interface/state/counters/out-pkts"];
-        ywrapper.UintValue out_unicast_pkts = 36542246 [(yext.schemapath) = "/interfaces/interface/state/counters/out-unicast-pkts"];
-      }
-      enum AdminStatus {
-        ADMINSTATUS_UNSET = 0;
-        ADMINSTATUS_UP = 1 [(yext.yang_name) = "UP"];
-        ADMINSTATUS_DOWN = 2 [(yext.yang_name) = "DOWN"];
-        ADMINSTATUS_TESTING = 3 [(yext.yang_name) = "TESTING"];
-      }
-      enum OperStatus {
-        OPERSTATUS_UNSET = 0;
-        OPERSTATUS_UP = 2 [(yext.yang_name) = "UP"];
-        OPERSTATUS_DOWN = 3 [(yext.yang_name) = "DOWN"];
-        OPERSTATUS_TESTING = 4 [(yext.yang_name) = "TESTING"];
-        OPERSTATUS_UNKNOWN = 5 [(yext.yang_name) = "UNKNOWN"];
-        OPERSTATUS_DORMANT = 6 [(yext.yang_name) = "DORMANT"];
-        OPERSTATUS_NOT_PRESENT = 7 [(yext.yang_name) = "NOT_PRESENT"];
-        OPERSTATUS_LOWER_LAYER_DOWN = 8 [(yext.yang_name) = "LOWER_LAYER_DOWN"];
-      }
-      AdminStatus admin_status = 474494763 [(yext.schemapath) = "/interfaces/interface/state/admin-status"];
-      Counters counters = 83645964 [(yext.schemapath) = "/interfaces/interface/state/counters"];
-      ywrapper.StringValue description = 389435287 [(yext.schemapath) = "/interfaces/interface/state/description"];
-      ywrapper.BoolValue enabled = 330927518 [(yext.schemapath) = "/interfaces/interface/state/enabled"];
-      ywrapper.UintValue ifindex = 116108202 [(yext.schemapath) = "/interfaces/interface/state/ifindex"];
-      ywrapper.UintValue last_change = 127348880 [(yext.schemapath) = "/interfaces/interface/state/last-change"];
-      ywrapper.BoolValue logical = 440460216 [(yext.schemapath) = "/interfaces/interface/state/logical"];
-      ywrapper.BoolValue loopback_mode = 372935512 [(yext.schemapath) = "/interfaces/interface/state/loopback-mode"];
-      ywrapper.UintValue mtu = 96390485 [(yext.schemapath) = "/interfaces/interface/state/mtu"];
-      ywrapper.StringValue name = 503495278 [(yext.schemapath) = "/interfaces/interface/state/name"];
-      OperStatus oper_status = 470394226 [(yext.schemapath) = "/interfaces/interface/state/oper-status"];
-      openconfig.enums.IETFInterfacesInterfaceType type = 358148579 [(yext.schemapath) = "/interfaces/interface/state/type"];
-    }
-    message Subinterfaces {
-      message Subinterface {
-        message Config {
-          ywrapper.StringValue description = 280671199 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/config/description"];
-          ywrapper.BoolValue enabled = 297236390 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/config/enabled"];
-          ywrapper.UintValue index = 279269781 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/config/index"];
-        }
-        message State {
-          message Counters {
-            ywrapper.UintValue carrier_transitions = 141120277 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/carrier-transitions"];
-            ywrapper.UintValue in_broadcast_pkts = 120244022 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-broadcast-pkts"];
-            ywrapper.UintValue in_discards = 307490461 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-discards"];
-            ywrapper.UintValue in_errors = 319720873 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-errors"];
-            ywrapper.UintValue in_fcs_errors = 169858424 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-fcs-errors"];
-            ywrapper.UintValue in_multicast_pkts = 320618859 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-multicast-pkts"];
-            ywrapper.UintValue in_octets = 530205868 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-octets"];
-            ywrapper.UintValue in_pkts = 441153352 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-pkts"];
-            ywrapper.UintValue in_unicast_pkts = 177838880 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-unicast-pkts"];
-            ywrapper.UintValue in_unknown_protos = 146059814 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/in-unknown-protos"];
-            ywrapper.UintValue last_clear = 518046966 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/last-clear"];
-            ywrapper.UintValue out_broadcast_pkts = 501221245 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-broadcast-pkts"];
-            ywrapper.UintValue out_discards = 159539762 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-discards"];
-            ywrapper.UintValue out_errors = 466636898 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-errors"];
-            ywrapper.UintValue out_multicast_pkts = 326155776 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-multicast-pkts"];
-            ywrapper.UintValue out_octets = 50579235 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-octets"];
-            ywrapper.UintValue out_pkts = 29497115 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-pkts"];
-            ywrapper.UintValue out_unicast_pkts = 297910971 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters/out-unicast-pkts"];
-          }
-          enum AdminStatus {
-            ADMINSTATUS_UNSET = 0;
-            ADMINSTATUS_UP = 1 [(yext.yang_name) = "UP"];
-            ADMINSTATUS_DOWN = 2 [(yext.yang_name) = "DOWN"];
-            ADMINSTATUS_TESTING = 3 [(yext.yang_name) = "TESTING"];
-          }
-          enum OperStatus {
-            OPERSTATUS_UNSET = 0;
-            OPERSTATUS_UP = 2 [(yext.yang_name) = "UP"];
-            OPERSTATUS_DOWN = 3 [(yext.yang_name) = "DOWN"];
-            OPERSTATUS_TESTING = 4 [(yext.yang_name) = "TESTING"];
-            OPERSTATUS_UNKNOWN = 5 [(yext.yang_name) = "UNKNOWN"];
-            OPERSTATUS_DORMANT = 6 [(yext.yang_name) = "DORMANT"];
-            OPERSTATUS_NOT_PRESENT = 7 [(yext.yang_name) = "NOT_PRESENT"];
-            OPERSTATUS_LOWER_LAYER_DOWN = 8 [(yext.yang_name) = "LOWER_LAYER_DOWN"];
-          }
-          AdminStatus admin_status = 250658952 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/admin-status"];
-          Counters counters = 483442783 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/counters"];
-          ywrapper.StringValue description = 49943526 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/description"];
-          ywrapper.BoolValue enabled = 468513843 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/enabled"];
-          ywrapper.UintValue ifindex = 511987815 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/ifindex"];
-          ywrapper.UintValue index = 80745756 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/index"];
-          ywrapper.UintValue last_change = 29904521 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/last-change"];
-          ywrapper.BoolValue logical = 294124401 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/logical"];
-          ywrapper.StringValue name = 279346681 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/name"];
-          OperStatus oper_status = 401969247 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state/oper-status"];
-        }
-        Config config = 175001476 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/config"];
-        State state = 501974173 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/state"];
-      }
-      message SubinterfaceKey {
-        uint64 index = 1 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface/index"];
-        Subinterface subinterface = 2;
-      }
-      repeated SubinterfaceKey subinterface = 464802819 [(yext.schemapath) = "/interfaces/interface/subinterfaces/subinterface"];
-    }
-    Config config = 334174827 [(yext.schemapath) = "/interfaces/interface/config"];
-    HoldTime hold_time = 175931092 [(yext.schemapath) = "/interfaces/interface/hold-time"];
-    State state = 387556140 [(yext.schemapath) = "/interfaces/interface/state"];
-    Subinterfaces subinterfaces = 327798165 [(yext.schemapath) = "/interfaces/interface/subinterfaces"];
-  }
-  message InterfaceKey {
-    string name = 1 [(yext.schemapath) = "/interfaces/interface/name"];
-    Interface interface = 2;
-  }
-  repeated InterfaceKey interface = 422482938 [(yext.schemapath) = "/interfaces/interface"];
-}
diff --git a/cmd/gosdn-cli/main.go b/cmd/gosdn-cli/main.go
index 5ed64517e9f1d2f7d63ad9e98d70774e58043abf..96d31c4acca436a538a715318dc85d683eb85222 100644
--- a/cmd/gosdn-cli/main.go
+++ b/cmd/gosdn-cli/main.go
@@ -141,7 +141,7 @@ func goSDNTestDB(conn *grpc.ClientConn) {
 }
 
 // TAPIGetEdge triggers the GetEdge function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetEdge(conn *grpc.ClientConn) {
 
 	c := pb.NewGrpcCliClient(conn)
@@ -161,7 +161,7 @@ func TAPIGetEdge(conn *grpc.ClientConn) {
 }
 
 // TAPIGetEdgeNode triggers the GetEdgeNode function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetEdgeNode(conn *grpc.ClientConn) {
 	c := pb.NewGrpcCliClient(conn)
 
@@ -180,7 +180,7 @@ func TAPIGetEdgeNode(conn *grpc.ClientConn) {
 }
 
 // TAPIGetLink triggers the GetLink function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetLink(conn *grpc.ClientConn) {
 
 	c := pb.NewGrpcCliClient(conn)
diff --git a/cmd/gosdn-tview/grpc/commands.go b/cmd/gosdn-tview/grpc/commands.go
index b1d4bc6da052cdd8dadc9dc4b84eea825550652d..10ba4652b2016af91c839b42f0ef07d7a2b4acbe 100644
--- a/cmd/gosdn-tview/grpc/commands.go
+++ b/cmd/gosdn-tview/grpc/commands.go
@@ -169,7 +169,7 @@ func goSDNTestDB(conn *grpc.ClientConn) string {
 }
 
 // TAPIGetEdge triggers the GetEdge function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetEdge(conn *grpc.ClientConn) string {
 
 	c := pb.NewGrpcCliClient(conn)
@@ -186,7 +186,7 @@ func TAPIGetEdge(conn *grpc.ClientConn) string {
 }
 
 // TAPIGetEdgeNode triggers the GetEdgeNode function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetEdgeNode(conn *grpc.ClientConn) string {
 	c := pb.NewGrpcCliClient(conn)
 
@@ -202,7 +202,7 @@ func TAPIGetEdgeNode(conn *grpc.ClientConn) string {
 }
 
 // TAPIGetLink triggers the GetLink function of the Ciena
-// flavoured TAPI ciena
+// flavoured TAPI client
 func TAPIGetLink(conn *grpc.ClientConn) string {
 
 	c := pb.NewGrpcCliClient(conn)
diff --git a/cmd/gosdn/main.go b/cmd/gosdn/main.go
index 2ba0f61f0edc703b9306dbcc3e733b9900e8912a..7555cd65a66a644d0bdafef8e15a01257b239814 100644
--- a/cmd/gosdn/main.go
+++ b/cmd/gosdn/main.go
@@ -2,15 +2,27 @@ package main
 
 import (
 	"code.fbi.h-da.de/cocsn/gosdn/nucleus"
+	"flag"
 	log "github.com/sirupsen/logrus"
 )
 
 func main() {
+
+	// register our supported flags
+	cliListenAddr := flag.String("cli-listen-addr", "", "The IP address of the grpcCLI.")
+	cliListenPort := flag.String("cli-server-port", "55055", "The port number of the grpcCLI")
+	configFileName := flag.String("config-file", "", "Path to the config file")
+
+	flag.Parse()
+	cliSocket := *cliListenAddr + ":" + *cliListenPort
+
 	log.SetLevel(log.DebugLevel)
 
 	// Setup a channel to communicate if goSDN should shutdown.
 	IsRunningChannel := make(chan bool)
 
 	// hand off to cmd for further processing
-	nucleus.StartAndRun(IsRunningChannel)
+	nucleus.StartAndRun(cliSocket, *configFileName, IsRunningChannel)
+
+	// nothing to see here, please move on!
 }
diff --git a/cmd/path-traversal/path_traversal.go b/cmd/path-traversal/path_traversal.go
new file mode 100644
index 0000000000000000000000000000000000000000..9952b95896c93721134b7ea829fcf60693140fba
--- /dev/null
+++ b/cmd/path-traversal/path_traversal.go
@@ -0,0 +1,62 @@
+package main
+
+import (
+	schema "code.fbi.h-da.de/cocsn/yang-models/generated/arista"
+	"fmt"
+	"github.com/openconfig/goyang/pkg/yang"
+)
+
+type PathElement struct {
+	Children []*PathElement
+	Name     string
+}
+
+func (p *PathElement)Print()  {
+	printPE(0, p)
+}
+
+func printPE(indent int, pe *PathElement) {
+	for i := 0; i < indent; i++ {
+		fmt.Print("    ")
+	}
+	fmt.Println(pe.Name)
+	if len(pe.Children) > 0 {
+		for _,p := range pe.Children {
+			printPE(indent+1, p)
+		}
+	}
+}
+
+func main() {
+	tree := schema.SchemaTree
+	paths := make(map[string]*PathElement)
+
+	for k,v := range tree {
+		if v.Parent != nil {
+			if v.Parent.Name == "device" {
+				pathElement := processEntry(v)
+				pathElement.Print()
+				paths[k] = pathElement
+			}
+		}
+	}
+}
+
+func processEntry(e *yang.Entry) *PathElement {
+	if e.Dir != nil {
+		elem := &PathElement{
+			Children: make([]*PathElement, len(e.Dir)),
+			Name:     e.Name,
+		}
+		i := 0
+		for _,v := range e.Dir {
+			elem.Children[i] =  processEntry(v)
+			i++
+		}
+		return elem
+	}
+	leaf := &PathElement{
+		Name:     e.Name,
+	}
+	return leaf
+}
\ No newline at end of file
diff --git a/configs/gosdn.toml b/configs/gosdn.toml
index 229a018b6f844719e7fbb98a3ff18f4f672b6d0d..b0ba9553705d34d970728f39669bb770e252487b 100644
--- a/configs/gosdn.toml
+++ b/configs/gosdn.toml
@@ -1,5 +1,6 @@
 CliSocket = "localhost:55055"
-db.socket = "bolt://172.17.0.4:7687"
-db.user = ""
-db.password = ""
-db.crypto = false
+DatabaseSocket = "bolt://172.17.0.4:7687"
+DatabaseUser = ""
+DatabasePassword = ""
+DatabaseCrypto = false
+ConfigPath = "./configs/gosdn.toml"
diff --git a/database/client.go b/database/client.go
index ecd24e25c13eb8af4d0522f4bfe00958041cabb3..5910b12c7a8b60c54e6089305b348312adfff59e 100644
--- a/database/client.go
+++ b/database/client.go
@@ -4,7 +4,6 @@ import (
 	"errors"
 	"github.com/neo4j/neo4j-go-driver/neo4j"
 	log "github.com/sirupsen/logrus"
-	"github.com/spf13/viper"
 )
 
 //Database is a database
@@ -19,12 +18,8 @@ type PND struct {
 	interfaces  []string
 }
 
-//NewDatabaseClient creates a database ciena
-func NewDatabaseClient() Database {
-	uri := viper.GetString("db.socket")
-	username := viper.GetString("db.user")
-	password := viper.GetString("db.password")
-	encrypted := viper.GetBool("db.crypto")
+//NewDatabaseClient creates a database client
+func NewDatabaseClient(uri, username, password string, encrypted bool) Database {
 	driver := createDriver(uri, username, password, encrypted)
 
 	return Database{
diff --git a/forks/goarista/gnmi/arbitration.go b/forks/goarista/gnmi/arbitration.go
deleted file mode 100644
index 78225d70240584b7e4e8b048bd833753b39ebc5e..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/arbitration.go
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright (c) 2019 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"fmt"
-	"strconv"
-	"strings"
-
-	"github.com/openconfig/gnmi/proto/gnmi_ext"
-)
-
-// ArbitrationExt takes a string representation of a master arbitration value
-// (e.g. "23", "role:42") and return a *gnmi_ext.Extension.
-func ArbitrationExt(s string) (*gnmi_ext.Extension, error) {
-	if s == "" {
-		return nil, nil
-	}
-	roleID, electionID, err := parseArbitrationString(s)
-	if err != nil {
-		return nil, err
-	}
-	arb := &gnmi_ext.MasterArbitration{
-		Role:       &gnmi_ext.Role{Id: roleID},
-		ElectionId: &gnmi_ext.Uint128{High: 0, Low: electionID},
-	}
-	ext := gnmi_ext.Extension_MasterArbitration{MasterArbitration: arb}
-	return &gnmi_ext.Extension{Ext: &ext}, nil
-}
-
-// parseArbitrationString parses the supplied string and returns the role and election id
-// values. Input is of the form [<role>:]<election_id>, where election_id is a uint64.
-//
-// Examples:
-//  "1"
-//  "admin:42"
-func parseArbitrationString(s string) (string, uint64, error) {
-	tokens := strings.Split(s, ":")
-	switch len(tokens) {
-	case 1: // just election id
-		id, err := parseElectionID(tokens[0])
-		return "", id, err
-	case 2: // role and election id
-		id, err := parseElectionID(tokens[1])
-		return tokens[0], id, err
-	}
-	return "", 0, fmt.Errorf("badly formed arbitration id (%s)", s)
-}
-
-func parseElectionID(s string) (uint64, error) {
-	id, err := strconv.ParseUint(s, 0, 64)
-	if err != nil {
-		return 0, fmt.Errorf("badly formed arbitration id (%s)", s)
-	}
-	return id, nil
-}
diff --git a/forks/goarista/gnmi/arbitration_test.go b/forks/goarista/gnmi/arbitration_test.go
deleted file mode 100644
index cdcc37c35b8c332f3ae4279b66ddf7b46e8b8798..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/arbitration_test.go
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright (c) 2019 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"fmt"
-	"testing"
-
-	"github.com/aristanetworks/goarista/test"
-
-	"github.com/openconfig/gnmi/proto/gnmi_ext"
-)
-
-func arbitration(role string, id *gnmi_ext.Uint128) *gnmi_ext.Extension {
-	arb := &gnmi_ext.MasterArbitration{
-		Role:       &gnmi_ext.Role{Id: role},
-		ElectionId: id,
-	}
-	ext := gnmi_ext.Extension_MasterArbitration{MasterArbitration: arb}
-	return &gnmi_ext.Extension{Ext: &ext}
-}
-
-func electionID(high, low uint64) *gnmi_ext.Uint128 {
-	return &gnmi_ext.Uint128{High: high, Low: low}
-}
-
-func TestArbitrationExt(t *testing.T) {
-	testCases := map[string]struct {
-		s   string
-		ext *gnmi_ext.Extension
-		err error
-	}{
-		"empty": {},
-		"no_role": {
-			s:   "1",
-			ext: arbitration("", electionID(0, 1)),
-		},
-		"with_role": {
-			s:   "admin:1",
-			ext: arbitration("admin", electionID(0, 1)),
-		},
-		"large_no_role": {
-			s:   "9223372036854775807",
-			ext: arbitration("", electionID(0, 9223372036854775807)),
-		},
-		"large_with_role": {
-			s:   "admin:18446744073709551615",
-			ext: arbitration("admin", electionID(0, 18446744073709551615)),
-		},
-		"invalid": {
-			s:   "cat",
-			err: fmt.Errorf("badly formed arbitration id (%s)", "cat"),
-		},
-		"invalid_too_many_colons": {
-			s:   "dog:1:2",
-			err: fmt.Errorf("badly formed arbitration id (%s)", "dog:1:2"),
-		},
-	}
-
-	for name, tc := range testCases {
-		t.Run(name, func(t *testing.T) {
-			ext, err := ArbitrationExt(tc.s)
-			if !test.DeepEqual(tc.ext, ext) {
-				t.Errorf("Expected %#v, got %#v", tc.ext, ext)
-			}
-			if !test.DeepEqual(tc.err, err) {
-				t.Errorf("Expected %v, got %v", tc.err, err)
-			}
-		})
-	}
-}
diff --git a/forks/goarista/gnmi/client.go b/forks/goarista/gnmi/client.go
deleted file mode 100644
index 1a23050eb66ee850af78a25dcdb53ca2bc34c92f..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/client.go
+++ /dev/null
@@ -1,330 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"context"
-	"crypto/tls"
-	"crypto/x509"
-	"flag"
-	"fmt"
-	"math"
-	"net"
-	"os"
-
-	"io/ioutil"
-	"strings"
-
-	"github.com/golang/protobuf/proto"
-	pb "github.com/openconfig/gnmi/proto/gnmi"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/credentials"
-	"google.golang.org/grpc/encoding/gzip"
-	"google.golang.org/grpc/metadata"
-)
-
-const (
-	defaultPort = "6030"
-	// HostnameArg is the value to be replaced by the actual hostname
-	HostnameArg = "HOSTNAME"
-)
-
-// PublishFunc is the method to publish responses
-type PublishFunc func(addr string, message proto.Message)
-
-// ParseHostnames parses a comma-separated list of names and replaces HOSTNAME with the current
-// hostname in it
-func ParseHostnames(list string) ([]string, error) {
-	items := strings.Split(list, ",")
-	hostname, err := os.Hostname()
-	if err != nil {
-		return nil, err
-	}
-	names := make([]string, len(items))
-	for i, name := range items {
-		if name == HostnameArg {
-			name = hostname
-		}
-		names[i] = name
-	}
-	return names, nil
-}
-
-// Config is the gnmi.Client config
-type Config struct {
-	Addr        string
-	CAFile      string
-	CertFile    string
-	KeyFile     string
-	Password    string
-	Username    string
-	TLS         bool
-	Compression string
-	DialOptions []grpc.DialOption
-	Token       string
-}
-
-// SubscribeOptions is the gNMI subscription request options
-type SubscribeOptions struct {
-	UpdatesOnly       bool
-	Prefix            string
-	Mode              string
-	StreamMode        string
-	SampleInterval    uint64
-	SuppressRedundant bool
-	HeartbeatInterval uint64
-	Paths             [][]string
-	Origin            string
-	Target            string
-}
-
-// ParseFlags reads arguments from stdin and returns a populated Config object and a list of
-// paths to subscribe to
-func ParseFlags() (*Config, []string) {
-	// flags
-	var (
-		addrsFlag = flag.String("addrs", "localhost:6030",
-			"Comma-separated list of addresses of OpenConfig gRPC servers. The address 'HOSTNAME' "+
-				"is replaced by the current hostname.")
-
-		caFileFlag = flag.String("cafile", "",
-			"Path to server TLS certificate file")
-
-		certFileFlag = flag.String("certfile", "",
-			"Path to ciena TLS certificate file")
-
-		keyFileFlag = flag.String("keyfile", "",
-			"Path to ciena TLS private key file")
-
-		passwordFlag = flag.String("password", "",
-			"Password to authenticate with")
-
-		usernameFlag = flag.String("username", "",
-			"Username to authenticate with")
-
-		tlsFlag = flag.Bool("tls", false,
-			"Enable TLS")
-
-		compressionFlag = flag.String("compression", "",
-			"Type of compression to use")
-
-		subscribeFlag = flag.String("subscribe", "",
-			"Comma-separated list of paths to subscribe to upon connecting to the server")
-
-		token = flag.String("token", "",
-			"Authentication token")
-	)
-	flag.Parse()
-	cfg := &Config{
-		Addr:        *addrsFlag,
-		CAFile:      *caFileFlag,
-		CertFile:    *certFileFlag,
-		KeyFile:     *keyFileFlag,
-		Password:    *passwordFlag,
-		Username:    *usernameFlag,
-		TLS:         *tlsFlag,
-		Compression: *compressionFlag,
-		Token:       *token,
-	}
-	subscriptions := strings.Split(*subscribeFlag, ",")
-	return cfg, subscriptions
-
-}
-
-// accessTokenCred implements credentials.PerRPCCredentials, the gRPC
-// interface for credentials that need to attach security information
-// to every RPC.
-type accessTokenCred struct {
-	bearerToken string
-}
-
-// newAccessTokenCredential constructs a new per-RPC credential from a token.
-func newAccessTokenCredential(token string) credentials.PerRPCCredentials {
-	bearerFmt := "Bearer %s"
-	return &accessTokenCred{bearerToken: fmt.Sprintf(bearerFmt, token)}
-}
-
-func (a *accessTokenCred) GetRequestMetadata(ctx context.Context,
-	uri ...string) (map[string]string, error) {
-	authHeader := "Authorization"
-	return map[string]string{
-		authHeader: a.bearerToken,
-	}, nil
-}
-
-func (a *accessTokenCred) RequireTransportSecurity() bool { return true }
-
-// DialContext connects to a gnmi service and returns a ciena
-func DialContext(ctx context.Context, cfg *Config) (pb.GNMIClient, error) {
-	opts := append([]grpc.DialOption(nil), cfg.DialOptions...)
-
-	switch cfg.Compression {
-	case "":
-	case "gzip":
-		opts = append(opts, grpc.WithDefaultCallOptions(grpc.UseCompressor(gzip.Name)))
-	default:
-		return nil, fmt.Errorf("unsupported compression option: %q", cfg.Compression)
-	}
-
-	if cfg.TLS || cfg.CAFile != "" || cfg.CertFile != "" || cfg.Token != "" {
-		tlsConfig := &tls.Config{}
-		if cfg.CAFile != "" {
-			b, err := ioutil.ReadFile(cfg.CAFile)
-			if err != nil {
-				return nil, err
-			}
-			cp := x509.NewCertPool()
-			if !cp.AppendCertsFromPEM(b) {
-				return nil, fmt.Errorf("credentials: failed to append certificates")
-			}
-			tlsConfig.RootCAs = cp
-		} else {
-			tlsConfig.InsecureSkipVerify = true
-		}
-		if cfg.CertFile != "" {
-			if cfg.KeyFile == "" {
-				return nil, fmt.Errorf("please provide both -certfile and -keyfile")
-			}
-			cert, err := tls.LoadX509KeyPair(cfg.CertFile, cfg.KeyFile)
-			if err != nil {
-				return nil, err
-			}
-			tlsConfig.Certificates = []tls.Certificate{cert}
-		}
-		if cfg.Token != "" {
-			opts = append(opts,
-				grpc.WithPerRPCCredentials(newAccessTokenCredential(cfg.Token)))
-		}
-		opts = append(opts, grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)))
-	} else {
-		opts = append(opts, grpc.WithInsecure())
-	}
-
-	dial := func(ctx context.Context, addrIn string) (conn net.Conn, err error) {
-		var network, addr string
-
-		split := strings.Split(addrIn, "://")
-		if l := len(split); l == 2 {
-			network = split[0]
-			addr = split[1]
-		} else {
-			network = "tcp"
-			addr = split[0]
-		}
-
-		conn, err = (&net.Dialer{}).DialContext(ctx, network, addr)
-		return
-	}
-
-	opts = append(opts,
-		grpc.WithContextDialer(dial),
-
-		// Allows received protobuf messages to be larger than 4MB
-		grpc.WithDefaultCallOptions(grpc.MaxCallRecvMsgSize(math.MaxInt32)),
-	)
-
-	grpcconn, err := grpc.DialContext(ctx, cfg.Addr, opts...)
-	if err != nil {
-		return nil, fmt.Errorf("failed to dial: %s", err)
-	}
-
-	return pb.NewGNMIClient(grpcconn), nil
-}
-
-// Dial connects to a gnmi service and returns a ciena
-func Dial(cfg *Config) (pb.GNMIClient, error) {
-	return DialContext(context.Background(), cfg)
-}
-
-// NewContext returns a new context with username and password
-// metadata if they are set in cfg.
-func NewContext(ctx context.Context, cfg *Config) context.Context {
-	if cfg.Username != "" {
-		ctx = metadata.NewOutgoingContext(ctx, metadata.Pairs(
-			"username", cfg.Username,
-			"password", cfg.Password))
-	}
-	return ctx
-}
-
-// NewGetRequest returns a GetRequest for the given paths
-func NewGetRequest(paths [][]string, origin string) (*pb.GetRequest, error) {
-	req := &pb.GetRequest{
-		Path: make([]*pb.Path, len(paths)),
-	}
-	for i, p := range paths {
-		gnmiPath, err := ParseGNMIElements(p)
-		if err != nil {
-			return nil, err
-		}
-		req.Path[i] = gnmiPath
-		req.Path[i].Origin = origin
-	}
-	return req, nil
-}
-
-// NewSubscribeRequest returns a SubscribeRequest for the given paths
-func NewSubscribeRequest(subscribeOptions *SubscribeOptions) (*pb.SubscribeRequest, error) {
-	var mode pb.SubscriptionList_Mode
-	switch subscribeOptions.Mode {
-	case "once":
-		mode = pb.SubscriptionList_ONCE
-	case "poll":
-		mode = pb.SubscriptionList_POLL
-	case "":
-		fallthrough
-	case "stream":
-		mode = pb.SubscriptionList_STREAM
-	default:
-		return nil, fmt.Errorf("subscribe mode (%s) invalid", subscribeOptions.Mode)
-	}
-
-	var streamMode pb.SubscriptionMode
-	switch subscribeOptions.StreamMode {
-	case "on_change":
-		streamMode = pb.SubscriptionMode_ON_CHANGE
-	case "sample":
-		streamMode = pb.SubscriptionMode_SAMPLE
-	case "":
-		fallthrough
-	case "target_defined":
-		streamMode = pb.SubscriptionMode_TARGET_DEFINED
-	default:
-		return nil, fmt.Errorf("subscribe stream mode (%s) invalid", subscribeOptions.StreamMode)
-	}
-
-	prefixPath, err := ParseGNMIElements(SplitPath(subscribeOptions.Prefix))
-	if err != nil {
-		return nil, err
-	}
-	subList := &pb.SubscriptionList{
-		Subscription: make([]*pb.Subscription, len(subscribeOptions.Paths)),
-		Mode:         mode,
-		UpdatesOnly:  subscribeOptions.UpdatesOnly,
-		Prefix:       prefixPath,
-	}
-	if subscribeOptions.Target != "" {
-		if subList.Prefix == nil {
-			subList.Prefix = &pb.Path{}
-		}
-		subList.Prefix.Target = subscribeOptions.Target
-	}
-	for i, p := range subscribeOptions.Paths {
-		gnmiPath, err := ParseGNMIElements(p)
-		if err != nil {
-			return nil, err
-		}
-		gnmiPath.Origin = subscribeOptions.Origin
-		subList.Subscription[i] = &pb.Subscription{
-			Path:              gnmiPath,
-			Mode:              streamMode,
-			SampleInterval:    subscribeOptions.SampleInterval,
-			SuppressRedundant: subscribeOptions.SuppressRedundant,
-			HeartbeatInterval: subscribeOptions.HeartbeatInterval,
-		}
-	}
-	return &pb.SubscribeRequest{Request: &pb.SubscribeRequest_Subscribe{
-		Subscribe: subList}}, nil
-}
diff --git a/forks/goarista/gnmi/json.go b/forks/goarista/gnmi/json.go
deleted file mode 100644
index 30aacd3df8239f39dd1af90a4fca9582cff6de1c..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/json.go
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"github.com/openconfig/gnmi/proto/gnmi"
-)
-
-// NotificationToMap converts a Notification into a map[string]interface{}
-func NotificationToMap(notif *gnmi.Notification) (map[string]interface{}, error) {
-	m := make(map[string]interface{}, 1)
-	m["timestamp"] = notif.Timestamp
-	m["path"] = StrPath(notif.Prefix)
-	if len(notif.Update) != 0 {
-		updates := make(map[string]interface{}, len(notif.Update))
-		var err error
-		for _, update := range notif.Update {
-			updates[StrPath(update.Path)] = StrUpdateVal(update)
-			if err != nil {
-				return nil, err
-			}
-		}
-		m["updates"] = updates
-	}
-	if len(notif.Delete) != 0 {
-		deletes := make([]string, len(notif.Delete))
-		for i, del := range notif.Delete {
-			deletes[i] = StrPath(del)
-		}
-		m["deletes"] = deletes
-	}
-	return m, nil
-}
diff --git a/forks/goarista/gnmi/operation.go b/forks/goarista/gnmi/operation.go
deleted file mode 100644
index ef506ac5e99e824fc4adc4cb34805e2b4ed27dd1..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/operation.go
+++ /dev/null
@@ -1,541 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"bufio"
-	"bytes"
-	"context"
-	"encoding/base64"
-	"encoding/json"
-	"errors"
-	"fmt"
-	"io"
-	"io/ioutil"
-	"math"
-	"os"
-	"path"
-	"strconv"
-	"strings"
-	"time"
-
-	pb "github.com/openconfig/gnmi/proto/gnmi"
-	"github.com/openconfig/gnmi/proto/gnmi_ext"
-	"google.golang.org/grpc/codes"
-)
-
-// GetWithRequest takes a fully formed GetRequest, performs the Get,
-// and displays any response.
-func GetWithRequest(ctx context.Context, client pb.GNMIClient,
-	req *pb.GetRequest) error {
-	resp, err := client.Get(ctx, req)
-	if err != nil {
-		return err
-	}
-	for _, notif := range resp.Notification {
-		prefix := StrPath(notif.Prefix)
-		for _, update := range notif.Update {
-			fmt.Printf("%s:\n", path.Join(prefix, StrPath(update.Path)))
-			fmt.Println(StrUpdateVal(update))
-		}
-	}
-	return nil
-}
-
-// Get sends a GetRequest to the given ciena.
-func Get(ctx context.Context, client pb.GNMIClient, paths [][]string,
-	origin string) error {
-	req, err := NewGetRequest(paths, origin)
-	if err != nil {
-		return err
-	}
-	return GetWithRequest(ctx, client, req)
-}
-
-// Capabilities retuns the capabilities of the ciena.
-func Capabilities(ctx context.Context, client pb.GNMIClient) error {
-	resp, err := client.Capabilities(ctx, &pb.CapabilityRequest{})
-	if err != nil {
-		return err
-	}
-	fmt.Printf("Version: %s\n", resp.GNMIVersion)
-	for _, mod := range resp.SupportedModels {
-		fmt.Printf("SupportedModel: %s\n", mod)
-	}
-	for _, enc := range resp.SupportedEncodings {
-		fmt.Printf("SupportedEncoding: %s\n", enc)
-	}
-	return nil
-}
-
-// val may be a path to a file or it may be json. First see if it is a
-// file, if so return its contents, otherwise return val
-func extractJSON(val string) []byte {
-	if jsonBytes, err := ioutil.ReadFile(val); err == nil {
-		return jsonBytes
-	}
-	// Best effort check if the value might a string literal, in which
-	// case wrap it in quotes. This is to allow a user to do:
-	//   gnmi update ../hostname host1234
-	//   gnmi update ../description 'This is a description'
-	// instead of forcing them to quote the string:
-	//   gnmi update ../hostname '"host1234"'
-	//   gnmi update ../description '"This is a description"'
-	maybeUnquotedStringLiteral := func(s string) bool {
-		if s == "true" || s == "false" || s == "null" || // JSON reserved words
-			strings.ContainsAny(s, `"'{}[]`) { // Already quoted or is a JSON object or array
-			return false
-		} else if _, err := strconv.ParseInt(s, 0, 32); err == nil {
-			// Integer. Using byte size of 32 because larger integer
-			// types are supposed to be sent as strings in JSON.
-			return false
-		} else if _, err := strconv.ParseFloat(s, 64); err == nil {
-			// Float
-			return false
-		}
-
-		return true
-	}
-	if maybeUnquotedStringLiteral(val) {
-		out := make([]byte, len(val)+2)
-		out[0] = '"'
-		copy(out[1:], val)
-		out[len(out)-1] = '"'
-		return out
-	}
-	return []byte(val)
-}
-
-// StrUpdateVal will return a string representing the value within the supplied update
-func StrUpdateVal(u *pb.Update) string {
-	if u.Value != nil {
-		// Backwards compatibility with pre-v0.4 gnmi
-		switch u.Value.Type {
-		case pb.Encoding_JSON, pb.Encoding_JSON_IETF:
-			return strJSON(u.Value.Value)
-		case pb.Encoding_BYTES, pb.Encoding_PROTO:
-			return base64.StdEncoding.EncodeToString(u.Value.Value)
-		case pb.Encoding_ASCII:
-			return string(u.Value.Value)
-		default:
-			return string(u.Value.Value)
-		}
-	}
-	return StrVal(u.Val)
-}
-
-// StrVal will return a string representing the supplied value
-func StrVal(val *pb.TypedValue) string {
-	switch v := val.GetValue().(type) {
-	case *pb.TypedValue_StringVal:
-		return v.StringVal
-	case *pb.TypedValue_JsonIetfVal:
-		return strJSON(v.JsonIetfVal)
-	case *pb.TypedValue_JsonVal:
-		return strJSON(v.JsonVal)
-	case *pb.TypedValue_IntVal:
-		return strconv.FormatInt(v.IntVal, 10)
-	case *pb.TypedValue_UintVal:
-		return strconv.FormatUint(v.UintVal, 10)
-	case *pb.TypedValue_BoolVal:
-		return strconv.FormatBool(v.BoolVal)
-	case *pb.TypedValue_BytesVal:
-		return base64.StdEncoding.EncodeToString(v.BytesVal)
-	case *pb.TypedValue_DecimalVal:
-		return strDecimal64(v.DecimalVal)
-	case *pb.TypedValue_FloatVal:
-		return strconv.FormatFloat(float64(v.FloatVal), 'g', -1, 32)
-	case *pb.TypedValue_LeaflistVal:
-		return strLeaflist(v.LeaflistVal)
-	case *pb.TypedValue_AsciiVal:
-		return v.AsciiVal
-	case *pb.TypedValue_AnyVal:
-		return v.AnyVal.String()
-	case *pb.TypedValue_ProtoBytes:
-		return base64.StdEncoding.EncodeToString(v.ProtoBytes)
-	default:
-		panic(v)
-	}
-}
-
-func strJSON(inJSON []byte) string {
-	var (
-		out bytes.Buffer
-		err error
-	)
-	// Check for ',' as simple heuristic on whether to expand JSON
-	// onto multiple lines, or compact it to a single line.
-	if bytes.Contains(inJSON, []byte{','}) {
-		err = json.Indent(&out, inJSON, "", "  ")
-	} else {
-		err = json.Compact(&out, inJSON)
-	}
-	if err != nil {
-		return fmt.Sprintf("(error unmarshalling json: %s)\n", err) + string(inJSON)
-	}
-	return out.String()
-}
-
-func strDecimal64(d *pb.Decimal64) string {
-	var i, frac int64
-	if d.Precision > 0 {
-		div := int64(10)
-		it := d.Precision - 1
-		for it > 0 {
-			div *= 10
-			it--
-		}
-		i = d.Digits / div
-		frac = d.Digits % div
-	} else {
-		i = d.Digits
-	}
-	if frac < 0 {
-		frac = -frac
-	}
-	return fmt.Sprintf("%d.%d", i, frac)
-}
-
-// strLeafList builds a human-readable form of a leaf-list. e.g. [1, 2, 3] or [a, b, c]
-func strLeaflist(v *pb.ScalarArray) string {
-	var b strings.Builder
-	b.WriteByte('[')
-
-	for i, elm := range v.Element {
-		b.WriteString(StrVal(elm))
-		if i < len(v.Element)-1 {
-			b.WriteString(", ")
-		}
-	}
-
-	b.WriteByte(']')
-	return b.String()
-}
-
-// TypedValue marshals an interface into a gNMI TypedValue value
-func TypedValue(val interface{}) *pb.TypedValue {
-	// TODO: handle more types:
-	// float64
-	// maps
-	// key.Key
-	// key.Map
-	// ... etc
-	switch v := val.(type) {
-	case string:
-		return &pb.TypedValue{Value: &pb.TypedValue_StringVal{StringVal: v}}
-	case int:
-		return &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: int64(v)}}
-	case int8:
-		return &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: int64(v)}}
-	case int16:
-		return &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: int64(v)}}
-	case int32:
-		return &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: int64(v)}}
-	case int64:
-		return &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: v}}
-	case uint:
-		return &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: uint64(v)}}
-	case uint8:
-		return &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: uint64(v)}}
-	case uint16:
-		return &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: uint64(v)}}
-	case uint32:
-		return &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: uint64(v)}}
-	case uint64:
-		return &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: v}}
-	case bool:
-		return &pb.TypedValue{Value: &pb.TypedValue_BoolVal{BoolVal: v}}
-	case float32:
-		return &pb.TypedValue{Value: &pb.TypedValue_FloatVal{FloatVal: v}}
-	case []interface{}:
-		gnmiElems := make([]*pb.TypedValue, len(v))
-		for i, elem := range v {
-			gnmiElems[i] = TypedValue(elem)
-		}
-		return &pb.TypedValue{
-			Value: &pb.TypedValue_LeaflistVal{
-				LeaflistVal: &pb.ScalarArray{
-					Element: gnmiElems,
-				}}}
-	default:
-		panic(fmt.Sprintf("unexpected type %T for value %v", val, val))
-	}
-}
-
-// ExtractValue pulls a value out of a gNMI Update, parsing JSON if present.
-// Possible return types:
-//  string
-//  int64
-//  uint64
-//  bool
-//  []byte
-//  float32
-//  *gnmi.Decimal64
-//  json.Number
-//  *any.Any
-//  []interface{}
-//  map[string]interface{}
-func ExtractValue(update *pb.Update) (interface{}, error) {
-	var i interface{}
-	var err error
-	if update == nil {
-		return nil, fmt.Errorf("empty update")
-	}
-	if update.Val != nil {
-		i, err = extractValueV04(update.Val)
-	} else if update.Value != nil {
-		i, err = extractValueV03(update.Value)
-	}
-	return i, err
-}
-
-func extractValueV04(val *pb.TypedValue) (interface{}, error) {
-	switch v := val.Value.(type) {
-	case *pb.TypedValue_StringVal:
-		return v.StringVal, nil
-	case *pb.TypedValue_IntVal:
-		return v.IntVal, nil
-	case *pb.TypedValue_UintVal:
-		return v.UintVal, nil
-	case *pb.TypedValue_BoolVal:
-		return v.BoolVal, nil
-	case *pb.TypedValue_BytesVal:
-		return v.BytesVal, nil
-	case *pb.TypedValue_FloatVal:
-		return v.FloatVal, nil
-	case *pb.TypedValue_DecimalVal:
-		return v.DecimalVal, nil
-	case *pb.TypedValue_LeaflistVal:
-		elementList := v.LeaflistVal.Element
-		l := make([]interface{}, len(elementList))
-		for i, element := range elementList {
-			el, err := extractValueV04(element)
-			if err != nil {
-				return nil, err
-			}
-			l[i] = el
-		}
-		return l, nil
-	case *pb.TypedValue_AnyVal:
-		return v.AnyVal, nil
-	case *pb.TypedValue_JsonVal:
-		return decode(v.JsonVal)
-	case *pb.TypedValue_JsonIetfVal:
-		return decode(v.JsonIetfVal)
-	case *pb.TypedValue_AsciiVal:
-		return v.AsciiVal, nil
-	case *pb.TypedValue_ProtoBytes:
-		return v.ProtoBytes, nil
-	}
-	return nil, fmt.Errorf("unhandled type of value %v", val.GetValue())
-}
-
-func extractValueV03(val *pb.Value) (interface{}, error) {
-	switch val.Type {
-	case pb.Encoding_JSON, pb.Encoding_JSON_IETF:
-		return decode(val.Value)
-	case pb.Encoding_BYTES, pb.Encoding_PROTO:
-		return val.Value, nil
-	case pb.Encoding_ASCII:
-		return string(val.Value), nil
-	}
-	return nil, fmt.Errorf("unhandled type of value %v", val.GetValue())
-}
-
-func decode(byteArr []byte) (interface{}, error) {
-	decoder := json.NewDecoder(bytes.NewReader(byteArr))
-	decoder.UseNumber()
-	var value interface{}
-	err := decoder.Decode(&value)
-	return value, err
-}
-
-// DecimalToFloat converts a gNMI Decimal64 to a float64
-func DecimalToFloat(dec *pb.Decimal64) float64 {
-	return float64(dec.Digits) / math.Pow10(int(dec.Precision))
-}
-
-func update(p *pb.Path, val string) (*pb.Update, error) {
-	var v *pb.TypedValue
-	switch p.Origin {
-	case "":
-		v = &pb.TypedValue{
-			Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: extractJSON(val)}}
-	case "eos_native":
-		v = &pb.TypedValue{
-			Value: &pb.TypedValue_JsonVal{JsonVal: extractJSON(val)}}
-	case "cli", "test-regen-cli":
-		v = &pb.TypedValue{
-			Value: &pb.TypedValue_AsciiVal{AsciiVal: val}}
-	case "p4_config":
-		b, err := ioutil.ReadFile(val)
-		if err != nil {
-			return nil, err
-		}
-		v = &pb.TypedValue{
-			Value: &pb.TypedValue_ProtoBytes{ProtoBytes: b}}
-	default:
-		return nil, fmt.Errorf("unexpected origin: %q", p.Origin)
-	}
-
-	return &pb.Update{Path: p, Val: v}, nil
-}
-
-// Operation describes an gNMI operation.
-type Operation struct {
-	Type   string
-	Origin string
-	Target string
-	Path   []string
-	Val    string
-}
-
-func newSetRequest(setOps []*Operation, exts ...*gnmi_ext.Extension) (*pb.SetRequest, error) {
-	req := &pb.SetRequest{}
-	for _, op := range setOps {
-		p, err := ParseGNMIElements(op.Path)
-		if err != nil {
-			return nil, err
-		}
-		p.Origin = op.Origin
-
-		// Target must apply to the entire SetRequest.
-		if op.Target != "" {
-			req.Prefix = &pb.Path{
-				Target: op.Target,
-			}
-		}
-
-		switch op.Type {
-		case "delete":
-			req.Delete = append(req.Delete, p)
-		case "update":
-			u, err := update(p, op.Val)
-			if err != nil {
-				return nil, err
-			}
-			req.Update = append(req.Update, u)
-		case "replace":
-			u, err := update(p, op.Val)
-			if err != nil {
-				return nil, err
-			}
-			req.Replace = append(req.Replace, u)
-		}
-	}
-	for _, ext := range exts {
-		req.Extension = append(req.Extension, ext)
-	}
-	return req, nil
-}
-
-// Set sends a SetRequest to the given ciena.
-func Set(ctx context.Context, client pb.GNMIClient, setOps []*Operation,
-	exts ...*gnmi_ext.Extension) error {
-	req, err := newSetRequest(setOps, exts...)
-	if err != nil {
-		return err
-	}
-	resp, err := client.Set(ctx, req)
-	if err != nil {
-		return err
-	}
-	if resp.Message != nil && codes.Code(resp.Message.Code) != codes.OK {
-		return errors.New(resp.Message.Message)
-	}
-	return nil
-}
-
-// Subscribe sends a SubscribeRequest to the given ciena.
-// Deprecated: Use SubscribeErr instead.
-func Subscribe(ctx context.Context, client pb.GNMIClient, subscribeOptions *SubscribeOptions,
-	respChan chan<- *pb.SubscribeResponse, errChan chan<- error) {
-	defer close(errChan)
-	if err := SubscribeErr(ctx, client, subscribeOptions, respChan); err != nil {
-		errChan <- err
-	}
-}
-
-// SubscribeErr makes a gNMI.Subscribe call and writes the responses
-// to the respChan. Before returning respChan will be closed.
-func SubscribeErr(ctx context.Context, client pb.GNMIClient, subscribeOptions *SubscribeOptions,
-	respChan chan<- *pb.SubscribeResponse) error {
-	ctx, cancel := context.WithCancel(ctx)
-	defer cancel()
-	defer close(respChan)
-
-	stream, err := client.Subscribe(ctx)
-	if err != nil {
-		return err
-	}
-	req, err := NewSubscribeRequest(subscribeOptions)
-	if err != nil {
-		return err
-	}
-	if err := stream.Send(req); err != nil {
-		return err
-	}
-
-	for {
-		resp, err := stream.Recv()
-		if err != nil {
-			if err == io.EOF {
-				return nil
-			}
-			return err
-		}
-		respChan <- resp
-
-		// For POLL subscriptions, initiate a poll request by pressing ENTER
-		if subscribeOptions.Mode == "poll" {
-			switch resp.Response.(type) {
-			case *pb.SubscribeResponse_SyncResponse:
-				fmt.Print("Press ENTER to send a poll request: ")
-				reader := bufio.NewReader(os.Stdin)
-				reader.ReadString('\n')
-
-				pollReq := &pb.SubscribeRequest{
-					Request: &pb.SubscribeRequest_Poll{
-						Poll: &pb.Poll{},
-					},
-				}
-				if err := stream.Send(pollReq); err != nil {
-					return err
-				}
-			}
-		}
-	}
-}
-
-// LogSubscribeResponse logs update responses to stderr.
-func LogSubscribeResponse(response *pb.SubscribeResponse) error {
-	switch resp := response.Response.(type) {
-	case *pb.SubscribeResponse_Error:
-		return errors.New(resp.Error.Message)
-	case *pb.SubscribeResponse_SyncResponse:
-		if !resp.SyncResponse {
-			return errors.New("initial sync failed")
-		}
-	case *pb.SubscribeResponse_Update:
-		t := time.Unix(0, resp.Update.Timestamp).UTC()
-		prefix := StrPath(resp.Update.Prefix)
-		var target string
-		if t := resp.Update.Prefix.GetTarget(); t != "" {
-			target = "(" + t + ") "
-		}
-		for _, update := range resp.Update.Update {
-			fmt.Printf("[%s] %s%s = %s\n", t.Format(time.RFC3339Nano),
-				target,
-				path.Join(prefix, StrPath(update.Path)),
-				StrUpdateVal(update))
-		}
-		for _, del := range resp.Update.Delete {
-			fmt.Printf("[%s] %sDeleted %s\n", t.Format(time.RFC3339Nano),
-				target,
-				path.Join(prefix, StrPath(del)))
-		}
-	}
-	return nil
-}
diff --git a/forks/goarista/gnmi/operation_test.go b/forks/goarista/gnmi/operation_test.go
deleted file mode 100644
index fd575d10aa5ea2766b9da07a4c4865ee101d923c..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/operation_test.go
+++ /dev/null
@@ -1,423 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"bytes"
-	"encoding/json"
-	"io/ioutil"
-	"os"
-	"testing"
-
-	"github.com/aristanetworks/goarista/test"
-	"github.com/golang/protobuf/proto"
-	"github.com/golang/protobuf/ptypes/any"
-
-	pb "github.com/openconfig/gnmi/proto/gnmi"
-)
-
-func TestNewSetRequest(t *testing.T) {
-	pathFoo := &pb.Path{
-		Element: []string{"foo"},
-		Elem:    []*pb.PathElem{{Name: "foo"}},
-	}
-	pathCli := &pb.Path{
-		Origin: "cli",
-	}
-	pathP4 := &pb.Path{
-		Origin: "p4_config",
-	}
-
-	p4FileContent := "p4_config test"
-	p4TestFile, err := ioutil.TempFile("", "p4TestFile")
-	if err != nil {
-		t.Errorf("cannot create test file for p4_config")
-	}
-	p4Filename := p4TestFile.Name()
-
-	defer os.Remove(p4Filename)
-
-	if _, err := p4TestFile.WriteString(p4FileContent); err != nil {
-		t.Errorf("cannot write test file for p4_config")
-	}
-	p4TestFile.Close()
-
-	testCases := map[string]struct {
-		setOps []*Operation
-		exp    pb.SetRequest
-	}{
-		"delete": {
-			setOps: []*Operation{{Type: "delete", Path: []string{"foo"}}},
-			exp:    pb.SetRequest{Delete: []*pb.Path{pathFoo}},
-		},
-		"update": {
-			setOps: []*Operation{{Type: "update", Path: []string{"foo"}, Val: "true"}},
-			exp: pb.SetRequest{
-				Update: []*pb.Update{{
-					Path: pathFoo,
-					Val: &pb.TypedValue{
-						Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: []byte("true")}},
-				}},
-			},
-		},
-		"replace": {
-			setOps: []*Operation{{Type: "replace", Path: []string{"foo"}, Val: "true"}},
-			exp: pb.SetRequest{
-				Replace: []*pb.Update{{
-					Path: pathFoo,
-					Val: &pb.TypedValue{
-						Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: []byte("true")}},
-				}},
-			},
-		},
-		"cli-replace": {
-			setOps: []*Operation{{Type: "replace", Origin: "cli",
-				Val: "hostname foo\nip routing"}},
-			exp: pb.SetRequest{
-				Replace: []*pb.Update{{
-					Path: pathCli,
-					Val: &pb.TypedValue{
-						Value: &pb.TypedValue_AsciiVal{AsciiVal: "hostname foo\nip routing"}},
-				}},
-			},
-		},
-		"p4_config": {
-			setOps: []*Operation{{Type: "replace", Origin: "p4_config",
-				Val: p4Filename}},
-			exp: pb.SetRequest{
-				Replace: []*pb.Update{{
-					Path: pathP4,
-					Val: &pb.TypedValue{
-						Value: &pb.TypedValue_ProtoBytes{ProtoBytes: []byte(p4FileContent)}},
-				}},
-			},
-		},
-		"target": {
-			setOps: []*Operation{{Type: "replace", Target: "JPE1234567",
-				Path: []string{"foo"}, Val: "true"}},
-			exp: pb.SetRequest{
-				Prefix: &pb.Path{Target: "JPE1234567"},
-				Replace: []*pb.Update{{
-					Path: pathFoo,
-					Val: &pb.TypedValue{
-						Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: []byte("true")}},
-				}},
-			},
-		},
-	}
-
-	for name, tc := range testCases {
-		t.Run(name, func(t *testing.T) {
-			got, err := newSetRequest(tc.setOps)
-			if err != nil {
-				t.Fatal(err)
-			}
-			if diff := test.Diff(tc.exp, *got); diff != "" {
-				t.Errorf("unexpected diff: %s", diff)
-			}
-		})
-	}
-}
-
-func TestStrUpdateVal(t *testing.T) {
-	anyBytes, err := proto.Marshal(&pb.ModelData{Name: "foobar"})
-	if err != nil {
-		t.Fatal(err)
-	}
-	anyMessage := &any.Any{TypeUrl: "gnmi/ModelData", Value: anyBytes}
-	anyString := proto.CompactTextString(anyMessage)
-
-	for name, tc := range map[string]struct {
-		update *pb.Update
-		exp    string
-	}{
-		"JSON Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte(`{"foo":"bar"}`),
-					Type:  pb.Encoding_JSON}},
-			exp: `{"foo":"bar"}`,
-		},
-		"JSON_IETF Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte(`{"foo":"bar"}`),
-					Type:  pb.Encoding_JSON_IETF}},
-			exp: `{"foo":"bar"}`,
-		},
-		"BYTES Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte{0xde, 0xad},
-					Type:  pb.Encoding_BYTES}},
-			exp: "3q0=",
-		},
-		"PROTO Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte{0xde, 0xad},
-					Type:  pb.Encoding_PROTO}},
-			exp: "3q0=",
-		},
-		"ASCII Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte("foobar"),
-					Type:  pb.Encoding_ASCII}},
-			exp: "foobar",
-		},
-		"INVALID Value": {
-			update: &pb.Update{
-				Value: &pb.Value{
-					Value: []byte("foobar"),
-					Type:  pb.Encoding(42)}},
-			exp: "foobar",
-		},
-		"StringVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_StringVal{StringVal: "foobar"}}},
-			exp: "foobar",
-		},
-		"IntVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_IntVal{IntVal: -42}}},
-			exp: "-42",
-		},
-		"UintVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_UintVal{UintVal: 42}}},
-			exp: "42",
-		},
-		"BoolVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_BoolVal{BoolVal: true}}},
-			exp: "true",
-		},
-		"BytesVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_BytesVal{BytesVal: []byte{0xde, 0xad}}}},
-			exp: "3q0=",
-		},
-		"FloatVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_FloatVal{FloatVal: 3.14}}},
-			exp: "3.14",
-		},
-		"DecimalVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_DecimalVal{
-					DecimalVal: &pb.Decimal64{Digits: 314, Precision: 2},
-				}}},
-			exp: "3.14",
-		},
-		"LeafListVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_LeaflistVal{
-					LeaflistVal: &pb.ScalarArray{Element: []*pb.TypedValue{
-						{Value: &pb.TypedValue_BoolVal{BoolVal: true}},
-						{Value: &pb.TypedValue_AsciiVal{AsciiVal: "foobar"}},
-					}},
-				}}},
-			exp: "[true, foobar]",
-		},
-		"AnyVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_AnyVal{AnyVal: anyMessage}}},
-			exp: anyString,
-		},
-		"JsonVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`{"foo":"bar"}`)}}},
-			exp: `{"foo":"bar"}`,
-		},
-		"JsonVal_complex": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`{"foo":"bar","baz":"qux"}`)}}},
-			exp: `{
-  "foo": "bar",
-  "baz": "qux"
-}`,
-		},
-		"JsonIetfVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: []byte(`{"foo":"bar"}`)}}},
-			exp: `{"foo":"bar"}`,
-		},
-		"AsciiVal": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_AsciiVal{AsciiVal: "foobar"}}},
-			exp: "foobar",
-		},
-		"ProtoBytes": {
-			update: &pb.Update{Val: &pb.TypedValue{
-				Value: &pb.TypedValue_ProtoBytes{ProtoBytes: anyBytes}}},
-			exp: "CgZmb29iYXI=",
-		},
-	} {
-		t.Run(name, func(t *testing.T) {
-			got := StrUpdateVal(tc.update)
-			if got != tc.exp {
-				t.Errorf("Expected: %q Got: %q", tc.exp, got)
-			}
-		})
-	}
-}
-
-func TestTypedValue(t *testing.T) {
-	for tname, tcase := range map[string]struct {
-		in  interface{}
-		exp *pb.TypedValue
-	}{
-		"string": {
-			in:  "foo",
-			exp: &pb.TypedValue{Value: &pb.TypedValue_StringVal{StringVal: "foo"}},
-		},
-		"int": {
-			in:  42,
-			exp: &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: 42}},
-		},
-		"int64": {
-			in:  int64(42),
-			exp: &pb.TypedValue{Value: &pb.TypedValue_IntVal{IntVal: 42}},
-		},
-		"uint": {
-			in:  uint(42),
-			exp: &pb.TypedValue{Value: &pb.TypedValue_UintVal{UintVal: 42}},
-		},
-		"bool": {
-			in:  true,
-			exp: &pb.TypedValue{Value: &pb.TypedValue_BoolVal{BoolVal: true}},
-		},
-		"slice": {
-			in: []interface{}{"foo", 1, uint(2), true},
-			exp: &pb.TypedValue{Value: &pb.TypedValue_LeaflistVal{LeaflistVal: &pb.ScalarArray{
-				Element: []*pb.TypedValue{
-					{Value: &pb.TypedValue_StringVal{StringVal: "foo"}},
-					{Value: &pb.TypedValue_IntVal{IntVal: 1}},
-					{Value: &pb.TypedValue_UintVal{UintVal: 2}},
-					{Value: &pb.TypedValue_BoolVal{BoolVal: true}},
-				}}}},
-		},
-	} {
-		t.Run(tname, func(t *testing.T) {
-			if got := TypedValue(tcase.in); !test.DeepEqual(got, tcase.exp) {
-				t.Errorf("Expected: %q Got: %q", tcase.exp, got)
-			}
-		})
-	}
-}
-
-func TestExtractJSON(t *testing.T) {
-	jsonFile, err := ioutil.TempFile("", "extractJSON")
-	if err != nil {
-		t.Fatal(err)
-	}
-	defer os.Remove(jsonFile.Name())
-	if _, err := jsonFile.Write([]byte(`"jsonFile"`)); err != nil {
-		jsonFile.Close()
-		t.Fatal(err)
-	}
-	if err := jsonFile.Close(); err != nil {
-		t.Fatal(err)
-	}
-
-	for val, exp := range map[string][]byte{
-		jsonFile.Name(): []byte(`"jsonFile"`),
-		"foobar":        []byte(`"foobar"`),
-		`"foobar"`:      []byte(`"foobar"`),
-		"Val: true":     []byte(`"Val: true"`),
-		"host42":        []byte(`"host42"`),
-		"42":            []byte("42"),
-		"-123.43":       []byte("-123.43"),
-		"0xFFFF":        []byte("0xFFFF"),
-		// Int larger than can fit in 32 bits should be quoted
-		"0x8000000000":  []byte(`"0x8000000000"`),
-		"-0x8000000000": []byte(`"-0x8000000000"`),
-		"true":          []byte("true"),
-		"false":         []byte("false"),
-		"null":          []byte("null"),
-		"{true: 42}":    []byte("{true: 42}"),
-		"[]":            []byte("[]"),
-	} {
-		t.Run(val, func(t *testing.T) {
-			got := extractJSON(val)
-			if !bytes.Equal(exp, got) {
-				t.Errorf("Unexpected diff. Expected: %q Got: %q", exp, got)
-			}
-		})
-	}
-}
-
-func TestExtractValue(t *testing.T) {
-	cases := []struct {
-		in  *pb.Update
-		exp interface{}
-	}{{
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_StringVal{StringVal: "foo"}}},
-		exp: "foo",
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_IntVal{IntVal: 123}}},
-		exp: int64(123),
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_UintVal{UintVal: 123}}},
-		exp: uint64(123),
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_BoolVal{BoolVal: true}}},
-		exp: true,
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_BytesVal{BytesVal: []byte{0xde, 0xad}}}},
-		exp: []byte{0xde, 0xad},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_FloatVal{FloatVal: -12.34}}},
-		exp: float32(-12.34),
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_DecimalVal{DecimalVal: &pb.Decimal64{
-				Digits: -1234, Precision: 2}}}},
-		exp: &pb.Decimal64{Digits: -1234, Precision: 2},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_LeaflistVal{LeaflistVal: &pb.ScalarArray{
-				Element: []*pb.TypedValue{
-					{Value: &pb.TypedValue_StringVal{StringVal: "foo"}},
-					{Value: &pb.TypedValue_IntVal{IntVal: 123}}}}}}},
-		exp: []interface{}{"foo", int64(123)},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`12.34`)}}},
-		exp: json.Number("12.34"),
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`[12.34, 123, "foo"]`)}}},
-		exp: []interface{}{json.Number("12.34"), json.Number("123"), "foo"},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`{"foo":"bar"}`)}}},
-		exp: map[string]interface{}{"foo": "bar"},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_JsonVal{JsonVal: []byte(`{"foo":45.67}`)}}},
-		exp: map[string]interface{}{"foo": json.Number("45.67")},
-	}, {
-		in: &pb.Update{Val: &pb.TypedValue{
-			Value: &pb.TypedValue_JsonIetfVal{JsonIetfVal: []byte(`{"foo":"bar"}`)}}},
-		exp: map[string]interface{}{"foo": "bar"},
-	}}
-	for _, tc := range cases {
-		out, err := ExtractValue(tc.in)
-		if err != nil {
-			t.Errorf(err.Error())
-		}
-		if !test.DeepEqual(tc.exp, out) {
-			t.Errorf("Extracted value is incorrect. Expected %+v, got %+v", tc.exp, out)
-		}
-	}
-}
diff --git a/forks/goarista/gnmi/path.go b/forks/goarista/gnmi/path.go
deleted file mode 100644
index 00280a8fc5924785e036e8daf7e9e187ec8a0406..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/path.go
+++ /dev/null
@@ -1,251 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"fmt"
-	"sort"
-	"strings"
-
-	pb "github.com/openconfig/gnmi/proto/gnmi"
-)
-
-// nextTokenIndex returns the end index of the first token.
-func nextTokenIndex(path string) int {
-	var inBrackets bool
-	var escape bool
-	for i, c := range path {
-		switch c {
-		case '[':
-			inBrackets = true
-			escape = false
-		case ']':
-			if !escape {
-				inBrackets = false
-			}
-			escape = false
-		case '\\':
-			escape = !escape
-		case '/':
-			if !inBrackets && !escape {
-				return i
-			}
-			escape = false
-		default:
-			escape = false
-		}
-	}
-	return len(path)
-}
-
-// SplitPath splits a gnmi path according to the spec. See
-// https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-path-conventions.md
-// No validation is done. Behavior is undefined if path is an invalid
-// gnmi path. TODO: Do validation?
-func SplitPath(path string) []string {
-	var result []string
-	if len(path) > 0 && path[0] == '/' {
-		path = path[1:]
-	}
-	for len(path) > 0 {
-		i := nextTokenIndex(path)
-		result = append(result, path[:i])
-		path = path[i:]
-		if len(path) > 0 && path[0] == '/' {
-			path = path[1:]
-		}
-	}
-	return result
-}
-
-// SplitPaths splits multiple gnmi paths
-func SplitPaths(paths []string) [][]string {
-	out := make([][]string, len(paths))
-	for i, path := range paths {
-		out[i] = SplitPath(path)
-	}
-	return out
-}
-
-// StrPath builds a human-readable form of a gnmi path.
-// e.g. /a/b/c[e=f]
-func StrPath(path *pb.Path) string {
-	if path == nil {
-		return "/"
-	} else if len(path.Elem) != 0 {
-		return strPathV04(path)
-	} else if len(path.Element) != 0 {
-		return strPathV03(path)
-	}
-	return "/"
-}
-
-// strPathV04 handles the v0.4 gnmi and later path.Elem member.
-func strPathV04(path *pb.Path) string {
-	b := &strings.Builder{}
-	for _, elm := range path.Elem {
-		b.WriteRune('/')
-		writeSafeString(b, elm.Name, '/')
-		if len(elm.Key) > 0 {
-			// Sort the keys so that they print in a conistent
-			// order. We don't have the YANG AST information, so the
-			// best we can do is sort them alphabetically.
-			keys := make([]string, 0, len(elm.Key))
-			for k := range elm.Key {
-				keys = append(keys, k)
-			}
-			sort.Strings(keys)
-			for _, k := range keys {
-				b.WriteRune('[')
-				b.WriteString(k)
-				b.WriteRune('=')
-				writeSafeString(b, elm.Key[k], ']')
-				b.WriteRune(']')
-			}
-		}
-	}
-	return b.String()
-}
-
-// strPathV03 handles the v0.3 gnmi and earlier path.Element member.
-func strPathV03(path *pb.Path) string {
-	return "/" + strings.Join(path.Element, "/")
-}
-
-// upgradePath modernizes a Path by translating the contents of the Element field to Elem
-func upgradePath(path *pb.Path) *pb.Path {
-	if len(path.Elem) == 0 {
-		var elems []*pb.PathElem
-		for _, element := range path.Element {
-			n, keys, _ := parseElement(element)
-			elems = append(elems, &pb.PathElem{Name: n, Key: keys})
-		}
-		path.Elem = elems
-		path.Element = nil
-	}
-	return path
-}
-
-// JoinPaths joins multiple gnmi paths and returns a string representation
-func JoinPaths(paths ...*pb.Path) *pb.Path {
-	var elems []*pb.PathElem
-	for _, path := range paths {
-		path = upgradePath(path)
-		elems = append(elems, path.Elem...)
-	}
-	return &pb.Path{Elem: elems}
-}
-
-func writeSafeString(b *strings.Builder, s string, esc rune) {
-	for _, c := range s {
-		if c == esc || c == '\\' {
-			b.WriteRune('\\')
-		}
-		b.WriteRune(c)
-	}
-}
-
-// ParseGNMIElements builds up a gnmi path, from user-supplied text
-func ParseGNMIElements(elms []string) (*pb.Path, error) {
-	var parsed []*pb.PathElem
-	for _, e := range elms {
-		n, keys, err := parseElement(e)
-		if err != nil {
-			return nil, err
-		}
-		parsed = append(parsed, &pb.PathElem{Name: n, Key: keys})
-	}
-	return &pb.Path{
-		Element: elms, // Backwards compatibility with pre-v0.4 gnmi
-		Elem:    parsed,
-	}, nil
-}
-
-// parseElement parses a path element, according to the gNMI specification. See
-// https://github.com/openconfig/reference/blame/master/rpc/gnmi/gnmi-path-conventions.md
-//
-// It returns the first string (the current element name), and an optional map of key name
-// value pairs.
-func parseElement(pathElement string) (string, map[string]string, error) {
-	// First check if there are any keys, i.e. do we have at least one '[' in the element
-	name, keyStart := findUnescaped(pathElement, '[')
-	if keyStart < 0 {
-		return name, nil, nil
-	}
-
-	// Error if there is no element name or if the "[" is at the beginning of the path element
-	if len(name) == 0 {
-		return "", nil, fmt.Errorf("failed to find element name in %q", pathElement)
-	}
-
-	// Look at the keys now.
-	keys := make(map[string]string)
-	keyPart := pathElement[keyStart:]
-	for keyPart != "" {
-		k, v, nextKey, err := parseKey(keyPart)
-		if err != nil {
-			return "", nil, err
-		}
-		keys[k] = v
-		keyPart = nextKey
-	}
-	return name, keys, nil
-}
-
-// parseKey returns the key name, key value and the remaining string to be parsed,
-func parseKey(s string) (string, string, string, error) {
-	if s[0] != '[' {
-		return "", "", "", fmt.Errorf("failed to find opening '[' in %q", s)
-	}
-	k, iEq := findUnescaped(s[1:], '=')
-	if iEq < 0 {
-		return "", "", "", fmt.Errorf("failed to find '=' in %q", s)
-	}
-	if k == "" {
-		return "", "", "", fmt.Errorf("failed to find key name in %q", s)
-	}
-
-	rhs := s[1+iEq+1:]
-	v, iClosBr := findUnescaped(rhs, ']')
-	if iClosBr < 0 {
-		return "", "", "", fmt.Errorf("failed to find ']' in %q", s)
-	}
-	if v == "" {
-		return "", "", "", fmt.Errorf("failed to find key value in %q", s)
-	}
-
-	next := rhs[iClosBr+1:]
-	return k, v, next, nil
-}
-
-// findUnescaped will return the index of the first unescaped match of 'find', and the unescaped
-// string leading up to it.
-func findUnescaped(s string, find byte) (string, int) {
-	// Take a fast track if there are no escape sequences
-	if strings.IndexByte(s, '\\') == -1 {
-		i := strings.IndexByte(s, find)
-		if i < 0 {
-			return s, -1
-		}
-		return s[:i], i
-	}
-
-	// Find the first match, taking care of escaped chars.
-	var b strings.Builder
-	var i int
-	len := len(s)
-	for i = 0; i < len; {
-		ch := s[i]
-		if ch == find {
-			return b.String(), i
-		} else if ch == '\\' && i < len-1 {
-			i++
-			ch = s[i]
-		}
-		b.WriteByte(ch)
-		i++
-	}
-	return b.String(), -1
-}
diff --git a/forks/goarista/gnmi/path_test.go b/forks/goarista/gnmi/path_test.go
deleted file mode 100644
index 27318b65c10a64949326995b727347d3f5de211a..0000000000000000000000000000000000000000
--- a/forks/goarista/gnmi/path_test.go
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright (c) 2017 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package gnmi
-
-import (
-	"fmt"
-	"testing"
-
-	"github.com/aristanetworks/goarista/test"
-
-	pb "github.com/openconfig/gnmi/proto/gnmi"
-)
-
-func p(s ...string) []string {
-	return s
-}
-
-func TestSplitPath(t *testing.T) {
-	for i, tc := range []struct {
-		in  string
-		exp []string
-	}{{
-		in:  "/foo/bar",
-		exp: p("foo", "bar"),
-	}, {
-		in:  "/foo/bar/",
-		exp: p("foo", "bar"),
-	}, {
-		in:  "//foo//bar//",
-		exp: p("", "foo", "", "bar", ""),
-	}, {
-		in:  "/foo[name=///]/bar",
-		exp: p("foo[name=///]", "bar"),
-	}, {
-		in:  `/foo[name=[\\\]/]/bar`,
-		exp: p(`foo[name=[\\\]/]`, "bar"),
-	}, {
-		in:  `/foo[name=[\\]/bar`,
-		exp: p(`foo[name=[\\]`, "bar"),
-	}, {
-		in:  "/foo[a=1][b=2]/bar",
-		exp: p("foo[a=1][b=2]", "bar"),
-	}, {
-		in:  "/foo[a=1\\]2][b=2]/bar",
-		exp: p("foo[a=1\\]2][b=2]", "bar"),
-	}, {
-		in:  "/foo[a=1][b=2]/bar\\baz",
-		exp: p("foo[a=1][b=2]", "bar\\baz"),
-	}} {
-		got := SplitPath(tc.in)
-		if !test.DeepEqual(tc.exp, got) {
-			t.Errorf("[%d] unexpect split for %q. Expected: %v, Got: %v",
-				i, tc.in, tc.exp, got)
-		}
-	}
-}
-
-func TestStrPath(t *testing.T) {
-	for i, tc := range []struct {
-		path string
-	}{{
-		path: "/",
-	}, {
-		path: "/foo/bar",
-	}, {
-		path: "/foo[name=a]/bar",
-	}, {
-		path: "/foo[a=1][b=2]/bar",
-	}, {
-		path: "/foo[a=1\\]2][b=2]/bar",
-	}, {
-		path: "/foo[a=1][b=2]/bar\\/baz",
-	}} {
-		sElms := SplitPath(tc.path)
-		pbPath, err := ParseGNMIElements(sElms)
-		if err != nil {
-			t.Errorf("failed to parse %s: %s", sElms, err)
-		}
-		s := StrPath(pbPath)
-		if !test.DeepEqual(tc.path, s) {
-			t.Errorf("[%d] want %s, got %s", i, tc.path, s)
-		}
-	}
-}
-
-func TestStrPathBackwardsCompat(t *testing.T) {
-	for i, tc := range []struct {
-		path *pb.Path
-		str  string
-	}{{
-		path: &pb.Path{
-			Element: p("foo[a=1][b=2]", "bar"),
-		},
-		str: "/foo[a=1][b=2]/bar",
-	}} {
-		got := StrPath(tc.path)
-		if got != tc.str {
-			t.Errorf("[%d] want %q, got %q", i, tc.str, got)
-		}
-	}
-}
-
-func TestParseElement(t *testing.T) {
-	// test cases
-	cases := []struct {
-		// name is the name of the test useful if you want to run a single test
-		// from the command line -run TestParseElement/<name>
-		name string
-		// in is the path element to be parsed
-		in string
-		// fieldName is field name (YANG node name) expected to be parsed from the path element.
-		// Normally this is simply the path element, or if the path element contains keys this is
-		// the text before the first [
-		fieldName string
-		// keys is a map of the expected key value pairs from within the []s in the
-		// `path element.
-		//
-		// For example prefix[ip-prefix=10.0.0.0/24][masklength-range=26..28]
-		// fieldName would be "prefix"
-		// keys would be {"ip-prefix": "10.0.0.0/24", "masklength-range": "26..28"}
-		keys map[string]string
-		// expectedError is the exact error we expect.
-		expectedError error
-	}{{
-		name:      "no_elms",
-		in:        "hello",
-		fieldName: "hello",
-	}, {
-		name:          "single_open",
-		in:            "[",
-		expectedError: fmt.Errorf("failed to find element name in %q", "["),
-	}, {
-		name:          "no_equal_no_close",
-		in:            "hello[there",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "[there"),
-	}, {
-		name:          "no_equals",
-		in:            "hello[there]",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "[there]"),
-	}, {
-		name:          "no_left_side",
-		in:            "hello[=there]",
-		expectedError: fmt.Errorf("failed to find key name in %q", "[=there]"),
-	}, {
-		name:          "no_right_side",
-		in:            "hello[there=]",
-		expectedError: fmt.Errorf("failed to find key value in %q", "[there=]"),
-	}, {
-		name:          "hanging_escape",
-		in:            "hello[there\\",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "[there\\"),
-	}, {
-		name:      "single_name_value",
-		in:        "hello[there=where]",
-		fieldName: "hello",
-		keys:      map[string]string{"there": "where"},
-	}, {
-		name:      "single_value_with=",
-		in:        "hello[there=whe=r=e]",
-		fieldName: "hello",
-		keys:      map[string]string{"there": "whe=r=e"},
-	}, {
-		name:      "single_value_with=_and_escaped_]",
-		in:        `hello[there=whe=\]r=e]`,
-		fieldName: "hello",
-		keys:      map[string]string{"there": `whe=]r=e`},
-	}, {
-		name:      "single_value_with[",
-		in:        "hello[there=w[[here]",
-		fieldName: "hello",
-		keys:      map[string]string{"there": "w[[here"},
-	}, {
-		name:          "value_single_open",
-		in:            "hello[first=value][",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "["),
-	}, {
-		name:          "value_no_close",
-		in:            "hello[there=where][somename",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "[somename"),
-	}, {
-		name:          "value_no_equals",
-		in:            "hello[there=where][somename]",
-		expectedError: fmt.Errorf("failed to find '=' in %q", "[somename]"),
-	}, {
-		name:          "no_left_side",
-		in:            "hello[there=where][=somevalue]",
-		expectedError: fmt.Errorf("failed to find key name in %q", "[=somevalue]"),
-	}, {
-		name:          "no_right_side",
-		in:            "hello[there=where][somename=]",
-		expectedError: fmt.Errorf("failed to find key value in %q", "[somename=]"),
-	}, {
-		name:      "two_name_values",
-		in:        "hello[there=where][somename=somevalue]",
-		fieldName: "hello",
-		keys:      map[string]string{"there": "where", "somename": "somevalue"},
-	}, {
-		name:      "three_name_values",
-		in:        "hello[there=where][somename=somevalue][anothername=value]",
-		fieldName: "hello",
-		keys: map[string]string{"there": "where", "somename": "somevalue",
-			"anothername": "value"},
-	}, {
-		name:      "aserisk_value",
-		in:        "hello[there=*][somename=somevalue][anothername=value]",
-		fieldName: "hello",
-		keys: map[string]string{"there": "*", "somename": "somevalue",
-			"anothername": "value"},
-	}}
-
-	for _, tc := range cases {
-		t.Run(tc.name, func(t *testing.T) {
-			fieldName, keys, err := parseElement(tc.in)
-			if !test.DeepEqual(tc.expectedError, err) {
-				t.Fatalf("[%s] expected err %#v, got %#v", tc.name, tc.expectedError, err)
-			}
-			if !test.DeepEqual(tc.keys, keys) {
-				t.Fatalf("[%s] expected output %#v, got %#v", tc.name, tc.keys, keys)
-			}
-			if tc.fieldName != fieldName {
-				t.Fatalf("[%s] expected field name %s, got %s", tc.name, tc.fieldName, fieldName)
-			}
-		})
-	}
-}
-
-func strToPath(pathStr string) *pb.Path {
-	splitPath := SplitPath(pathStr)
-	path, _ := ParseGNMIElements(splitPath)
-	path.Element = nil
-	return path
-}
-
-func strsToPaths(pathStrs []string) []*pb.Path {
-	var paths []*pb.Path
-	for _, splitPath := range SplitPaths(pathStrs) {
-		path, _ := ParseGNMIElements(splitPath)
-		path.Element = nil
-		paths = append(paths, path)
-	}
-	return paths
-}
-
-func TestJoinPath(t *testing.T) {
-	cases := []struct {
-		paths []*pb.Path
-		exp   string
-	}{{
-		paths: strsToPaths([]string{"/foo/bar", "/baz/qux"}),
-		exp:   "/foo/bar/baz/qux",
-	},
-		{
-			paths: strsToPaths([]string{
-				"/foo/bar[somekey=someval][otherkey=otherval]", "/baz/qux"}),
-			exp: "/foo/bar[otherkey=otherval][somekey=someval]/baz/qux",
-		},
-		{
-			paths: strsToPaths([]string{
-				"/foo/bar[somekey=someval][otherkey=otherval]",
-				"/baz/qux[somekey=someval][otherkey=otherval]"}),
-			exp: "/foo/bar[otherkey=otherval][somekey=someval]/" +
-				"baz/qux[otherkey=otherval][somekey=someval]",
-		},
-		{
-			paths: []*pb.Path{
-				{Element: []string{"foo", "bar[somekey=someval][otherkey=otherval]"}},
-				{Element: []string{"baz", "qux[somekey=someval][otherkey=otherval]"}}},
-			exp: "/foo/bar[somekey=someval][otherkey=otherval]/" +
-				"baz/qux[somekey=someval][otherkey=otherval]",
-		},
-	}
-
-	for _, tc := range cases {
-		got := JoinPaths(tc.paths...)
-		exp := strToPath(tc.exp)
-		exp.Element = nil
-		if !test.DeepEqual(got, exp) {
-			t.Fatalf("ERROR!\n Got: %s,\n Want %s\n", got, exp)
-		}
-	}
-}
-
-func BenchmarkPathElementToSigleElementName(b *testing.B) {
-	for i := 0; i < b.N; i++ {
-		_, _, _ = parseElement("hello")
-	}
-}
-
-func BenchmarkPathElementTwoKeys(b *testing.B) {
-	for i := 0; i < b.N; i++ {
-		_, _, _ = parseElement("hello[hello=world][bye=moon]")
-	}
-}
-
-func BenchmarkPathElementBadKeys(b *testing.B) {
-	for i := 0; i < b.N; i++ {
-		_, _, _ = parseElement("hello[hello=world][byemoon]")
-	}
-}
-
-func BenchmarkPathElementMaxKeys(b *testing.B) {
-	for i := 0; i < b.N; i++ {
-		_, _, _ = parseElement("hello[name=firstName][name=secondName][name=thirdName]" +
-			"[name=fourthName][name=fifthName][name=sixthName]")
-	}
-}
diff --git a/forks/goarista/openconfig/client/client.go b/forks/goarista/openconfig/client/client.go
deleted file mode 100644
index 1d7d1992f375d06b747161dc4570124696202fac..0000000000000000000000000000000000000000
--- a/forks/goarista/openconfig/client/client.go
+++ /dev/null
@@ -1,132 +0,0 @@
-// Copyright (c) 2016 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-// Package ciena provides helper functions for OpenConfig CLI tools.
-package client
-
-import (
-	"io"
-	"strings"
-	"sync"
-
-	"github.com/golang/glog"
-	"github.com/golang/protobuf/proto"
-	"github.com/openconfig/reference/rpc/openconfig"
-	"golang.org/x/net/context"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/metadata"
-)
-
-const defaultPort = "6030"
-
-// PublishFunc is the method to publish responses
-type PublishFunc func(addr string, message proto.Message)
-
-// Client is a connected gRPC ciena
-type Client struct {
-	client openconfig.OpenConfigClient
-	ctx    context.Context
-	device string
-}
-
-// New creates a new gRPC ciena and connects it
-func New(username, password, addr string, opts []grpc.DialOption) *Client {
-	device := addr
-	if !strings.ContainsRune(addr, ':') {
-		addr += ":" + defaultPort
-	}
-	// Make sure we don't move past the grpc.Dial() call until we actually
-	// established an HTTP/2 connection successfully.
-	opts = append(opts, grpc.WithBlock())
-	conn, err := grpc.Dial(addr, opts...)
-	if err != nil {
-		glog.Fatalf("Failed to dial: %s", err)
-	}
-	glog.Infof("Connected to %s", addr)
-	client := openconfig.NewOpenConfigClient(conn)
-
-	ctx := context.Background()
-	if username != "" {
-		ctx = metadata.NewOutgoingContext(ctx, metadata.Pairs(
-			"username", username,
-			"password", password))
-	}
-	return &Client{
-		client: client,
-		device: device,
-		ctx:    ctx,
-	}
-}
-
-// Get sends a get request and returns the responses
-func (c *Client) Get(path string) []*openconfig.Notification {
-	req := &openconfig.GetRequest{
-		Path: []*openconfig.Path{
-			{
-				Element: strings.Split(path, "/"),
-			},
-		},
-	}
-	response, err := c.client.Get(c.ctx, req)
-	if err != nil {
-		glog.Fatalf("Get failed: %s", err)
-	}
-	return response.Notification
-}
-
-// Subscribe sends subscriptions, and consumes responses.
-// The given publish function is used to publish SubscribeResponses received
-// for the given subscriptions, when connected to the given host, with the
-// given user/pass pair, or the ciena-side cert specified in the gRPC opts.
-// This function does not normally return so it should probably be run in its
-// own goroutine.  When this function returns, the given WaitGroup is marked
-// as done.
-func (c *Client) Subscribe(wg *sync.WaitGroup, subscriptions []string,
-	publish PublishFunc) {
-	defer wg.Done()
-	stream, err := c.client.Subscribe(c.ctx)
-	if err != nil {
-		glog.Fatalf("Subscribe failed: %s", err)
-	}
-	defer stream.CloseSend()
-
-	for _, path := range subscriptions {
-		sub := &openconfig.SubscribeRequest{
-			Request: &openconfig.SubscribeRequest_Subscribe{
-				Subscribe: &openconfig.SubscriptionList{
-					Subscription: []*openconfig.Subscription{
-						{
-							Path: &openconfig.Path{Element: strings.Split(path, "/")},
-						},
-					},
-				},
-			},
-		}
-
-		glog.Infof("Sending subscribe request: %s", sub)
-		err = stream.Send(sub)
-		if err != nil {
-			glog.Fatalf("Failed to subscribe: %s", err)
-		}
-	}
-
-	for {
-		resp, err := stream.Recv()
-		if err != nil {
-			if err != io.EOF {
-				glog.Fatalf("Error received from the server: %s", err)
-			}
-			return
-		}
-		switch resp := resp.Response.(type) {
-		case *openconfig.SubscribeResponse_SyncResponse:
-			if !resp.SyncResponse {
-				panic("initial sync failed," +
-					" check that you're using a ciena compatible with the server")
-			}
-		}
-		glog.V(3).Info(resp)
-		publish(c.device, resp)
-	}
-}
diff --git a/forks/goarista/openconfig/client/flags.go b/forks/goarista/openconfig/client/flags.go
deleted file mode 100644
index fb91bba3715c286babedb3e58caf221b576d213b..0000000000000000000000000000000000000000
--- a/forks/goarista/openconfig/client/flags.go
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (c) 2016 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package client
-
-import (
-	"crypto/tls"
-	"crypto/x509"
-	"flag"
-	"io/ioutil"
-	"os"
-	"strings"
-
-	"github.com/golang/glog"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/credentials"
-)
-
-const (
-	// HostnameArg is the value to be replaced by the actual hostname
-	HostnameArg = "HOSTNAME"
-)
-
-// ParseHostnames parses a comma-separated list of names and replaces HOSTNAME with the current
-// hostname in it
-func ParseHostnames(list string) ([]string, error) {
-	items := strings.Split(list, ",")
-	hostname, err := os.Hostname()
-	if err != nil {
-		return nil, err
-	}
-	names := make([]string, len(items))
-	for i, name := range items {
-		if name == HostnameArg {
-			name = hostname
-		}
-		names[i] = name
-	}
-	return names, nil
-}
-
-// ParseFlags registers some additional common flags,
-// parses the flags, and returns the resulting gRPC options,
-// and other settings to connect to the gRPC interface.
-func ParseFlags() (username string, password string, subscriptions, addrs []string,
-	opts []grpc.DialOption) {
-
-	var (
-		addrsFlag = flag.String("addrs", "localhost:6030",
-			"Comma-separated list of addresses of OpenConfig gRPC servers. The address 'HOSTNAME' "+
-				"is replaced by the current hostname.")
-
-		caFileFlag = flag.String("cafile", "",
-			"Path to server TLS certificate file")
-
-		certFileFlag = flag.String("certfile", "",
-			"Path to ciena TLS certificate file")
-
-		keyFileFlag = flag.String("keyfile", "",
-			"Path to ciena TLS private key file")
-
-		passwordFlag = flag.String("password", "",
-			"Password to authenticate with")
-
-		subscribeFlag = flag.String("subscribe", "",
-			"Comma-separated list of paths to subscribe to upon connecting to the server")
-
-		usernameFlag = flag.String("username", "",
-			"Username to authenticate with")
-
-		tlsFlag = flag.Bool("tls", false,
-			"Enable TLS")
-	)
-
-	flag.Parse()
-	if *tlsFlag || *caFileFlag != "" || *certFileFlag != "" {
-		config := &tls.Config{}
-		if *caFileFlag != "" {
-			b, err := ioutil.ReadFile(*caFileFlag)
-			if err != nil {
-				glog.Fatal(err)
-			}
-			cp := x509.NewCertPool()
-			if !cp.AppendCertsFromPEM(b) {
-				glog.Fatalf("credentials: failed to append certificates")
-			}
-			config.RootCAs = cp
-		} else {
-			config.InsecureSkipVerify = true
-		}
-		if *certFileFlag != "" {
-			if *keyFileFlag == "" {
-				glog.Fatalf("Please provide both -certfile and -keyfile")
-			}
-			cert, err := tls.LoadX509KeyPair(*certFileFlag, *keyFileFlag)
-			if err != nil {
-				glog.Fatal(err)
-			}
-			config.Certificates = []tls.Certificate{cert}
-		}
-		opts = append(opts, grpc.WithTransportCredentials(credentials.NewTLS(config)))
-	} else {
-		opts = append(opts, grpc.WithInsecure())
-	}
-	var err error
-	addrs, err = ParseHostnames(*addrsFlag)
-	if err != nil {
-		glog.Fatal(err)
-	}
-	subscriptions = strings.Split(*subscribeFlag, ",")
-	return *usernameFlag, *passwordFlag, subscriptions, addrs, opts
-}
diff --git a/forks/goarista/openconfig/json.go b/forks/goarista/openconfig/json.go
deleted file mode 100644
index 8eba88baded76b426451ef862d332a3c712a1db2..0000000000000000000000000000000000000000
--- a/forks/goarista/openconfig/json.go
+++ /dev/null
@@ -1,237 +0,0 @@
-// Copyright (c) 2016 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package openconfig
-
-import (
-	"bytes"
-	"encoding/json"
-	"fmt"
-	"strings"
-
-	"github.com/openconfig/reference/rpc/openconfig"
-)
-
-// joinPath builds a string out of an Element
-func joinPath(path *openconfig.Path) string {
-	if path == nil {
-		return ""
-	}
-	return strings.Join(path.Element, "/")
-}
-
-func convertUpdate(update *openconfig.Update) (interface{}, error) {
-	switch update.Value.Type {
-	case openconfig.Type_JSON:
-		var value interface{}
-		decoder := json.NewDecoder(bytes.NewReader(update.Value.Value))
-		decoder.UseNumber()
-		if err := decoder.Decode(&value); err != nil {
-			return nil, fmt.Errorf("Malformed JSON update %q in %s",
-				update.Value.Value, update)
-		}
-		return value, nil
-	case openconfig.Type_BYTES:
-		return update.Value.Value, nil
-	default:
-		return nil,
-			fmt.Errorf("Unhandled type of value %v in %s", update.Value.Type, update)
-	}
-}
-
-// NotificationToJSON converts a Notification into a JSON string
-func NotificationToJSON(notif *openconfig.Notification) (string, error) {
-	m := make(map[string]interface{}, 1)
-	m["timestamp"] = notif.Timestamp
-	m["path"] = "/" + joinPath(notif.Prefix)
-	if len(notif.Update) != 0 {
-		updates := make(map[string]interface{}, len(notif.Update))
-		var err error
-		for _, update := range notif.Update {
-			updates[joinPath(update.Path)], err = convertUpdate(update)
-			if err != nil {
-				return "", err
-			}
-		}
-		m["updates"] = updates
-	}
-	if len(notif.Delete) != 0 {
-		deletes := make([]string, len(notif.Delete))
-		for i, del := range notif.Delete {
-			deletes[i] = joinPath(del)
-		}
-		m["deletes"] = deletes
-	}
-	m = map[string]interface{}{"notification": m}
-	js, err := json.MarshalIndent(m, "", "  ")
-	if err != nil {
-		return "", err
-	}
-	return string(js), nil
-}
-
-// SubscribeResponseToJSON converts a SubscribeResponse into a JSON string
-func SubscribeResponseToJSON(resp *openconfig.SubscribeResponse) (string, error) {
-	m := make(map[string]interface{}, 1)
-	var err error
-	switch resp := resp.Response.(type) {
-	case *openconfig.SubscribeResponse_Update:
-		return NotificationToJSON(resp.Update)
-	case *openconfig.SubscribeResponse_Heartbeat:
-		m["heartbeat"] = resp.Heartbeat.Interval
-	case *openconfig.SubscribeResponse_SyncResponse:
-		m["syncResponse"] = resp.SyncResponse
-	default:
-		return "", fmt.Errorf("Unknown type of response: %T: %s", resp, resp)
-	}
-	js, err := json.MarshalIndent(m, "", "  ")
-	if err != nil {
-		return "", err
-	}
-	return string(js), nil
-}
-
-// EscapeFunc is the escaping method for attribute names
-type EscapeFunc func(k string) string
-
-// escapeValue looks for maps in an interface and escapes their keys
-func escapeValue(value interface{}, escape EscapeFunc) interface{} {
-	valueMap, ok := value.(map[string]interface{})
-	if !ok {
-		return value
-	}
-	escapedMap := make(map[string]interface{}, len(valueMap))
-	for k, v := range valueMap {
-		escapedKey := escape(k)
-		escapedMap[escapedKey] = escapeValue(v, escape)
-	}
-	return escapedMap
-}
-
-// addPathToMap creates a map[string]interface{} from a path. It returns the node in
-// the map corresponding to the last element in the path
-func addPathToMap(root map[string]interface{}, path []string, escape EscapeFunc) (
-	map[string]interface{}, error) {
-	parent := root
-	for _, element := range path {
-		k := escape(element)
-		node, found := parent[k]
-		if !found {
-			node = map[string]interface{}{}
-			parent[k] = node
-		}
-		var ok bool
-		parent, ok = node.(map[string]interface{})
-		if !ok {
-			return nil, fmt.Errorf(
-				"Node %s is of type %T (expected map[string]interface traversing %q)",
-				element, node, path)
-		}
-	}
-	return parent, nil
-}
-
-// NotificationToMap maps a Notification into a nested map of entities
-func NotificationToMap(addr string, notification *openconfig.Notification,
-	escape EscapeFunc) (map[string]interface{}, error) {
-	if escape == nil {
-		escape = func(name string) string {
-			return name
-		}
-	}
-	prefix := notification.GetPrefix()
-
-	// Convert deletes
-	var deletes map[string]interface{}
-	notificationDeletes := notification.GetDelete()
-	if notificationDeletes != nil {
-		deletes = make(map[string]interface{})
-		node := deletes
-		if prefix != nil {
-			var err error
-			node, err = addPathToMap(node, prefix.Element, escape)
-			if err != nil {
-				return nil, err
-			}
-		}
-		for _, delete := range notificationDeletes {
-			_, err := addPathToMap(node, delete.Element, escape)
-			if err != nil {
-				return nil, err
-			}
-		}
-	}
-
-	// Convert updates
-	var updates map[string]interface{}
-	notificationUpdates := notification.GetUpdate()
-	if notificationUpdates != nil {
-		updates = make(map[string]interface{})
-		node := updates
-		if prefix != nil {
-			var err error
-			node, err = addPathToMap(node, prefix.Element, escape)
-			if err != nil {
-				return nil, err
-			}
-		}
-		for _, update := range notificationUpdates {
-			updateNode := node
-			path := update.GetPath()
-			elementLen := len(path.Element)
-
-			// Convert all elements before the leaf
-			if elementLen > 1 {
-				parentElements := path.Element[:elementLen-1]
-				var err error
-				updateNode, err = addPathToMap(updateNode, parentElements, escape)
-				if err != nil {
-					return nil, err
-				}
-			}
-
-			// Convert the value in the leaf
-			value := update.GetValue()
-			var unmarshaledValue interface{}
-			switch value.Type {
-			case openconfig.Type_JSON:
-				if err := json.Unmarshal(value.Value, &unmarshaledValue); err != nil {
-					return nil, err
-				}
-			case openconfig.Type_BYTES:
-				unmarshaledValue = update.Value.Value
-			default:
-				return nil, fmt.Errorf("Unexpected value type %s for path %v",
-					value.Type, path)
-			}
-			updateNode[escape(path.Element[elementLen-1])] = escapeValue(
-				unmarshaledValue, escape)
-		}
-	}
-
-	// Build the complete map to return
-	root := map[string]interface{}{
-		"timestamp": notification.Timestamp,
-	}
-	if addr != "" {
-		root["dataset"] = addr
-	}
-	if deletes != nil {
-		root["delete"] = deletes
-	}
-	if updates != nil {
-		root["update"] = updates
-	}
-	return root, nil
-}
-
-// NotificationToJSONDocument maps a Notification into a single JSON document
-func NotificationToJSONDocument(addr string, notification *openconfig.Notification,
-	escape EscapeFunc) ([]byte, error) {
-	m, err := NotificationToMap(addr, notification, escape)
-	if err != nil {
-		return nil, err
-	}
-	return json.Marshal(m)
-}
diff --git a/forks/goarista/openconfig/json_test.go b/forks/goarista/openconfig/json_test.go
deleted file mode 100644
index 1dfc41d5789b9c8fcbb1a6a8b30918f77873a88a..0000000000000000000000000000000000000000
--- a/forks/goarista/openconfig/json_test.go
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright (c) 2016 Arista Networks, Inc.
-// Use of this source code is governed by the Apache License 2.0
-// that can be found in the COPYING file.
-
-package openconfig
-
-import (
-	"encoding/json"
-	"testing"
-
-	"github.com/aristanetworks/goarista/test"
-
-	"github.com/openconfig/reference/rpc/openconfig"
-)
-
-func TestNotificationToMap(t *testing.T) {
-	value := map[string]interface{}{
-		"239.255.255.250_0.0.0.0": map[string]interface{}{
-			"creationTime": 4.567969230573434e+06,
-		},
-	}
-	valueJSON, err := json.Marshal(value)
-	if err != nil {
-		t.Fatal(err)
-	}
-	tests := []struct {
-		notification openconfig.Notification
-		json         map[string]interface{}
-	}{{
-		notification: openconfig.Notification{
-			Prefix: &openconfig.Path{
-				Element: []string{
-					"foo",
-				},
-			},
-			Update: []*openconfig.Update{
-				{
-					Path: &openconfig.Path{
-						Element: []string{
-							"route1",
-						},
-					},
-					Value: &openconfig.Value{
-						Value: valueJSON,
-					},
-				}, {
-					Path: &openconfig.Path{
-						Element: []string{
-							"route2",
-						},
-					},
-					Value: &openconfig.Value{
-						Value: valueJSON,
-					},
-				}},
-		},
-		json: map[string]interface{}{
-			"timestamp": int64(0),
-			"dataset":   "cairo",
-			"update": map[string]interface{}{
-				"foo": map[string]interface{}{
-					"route1": map[string]interface{}{
-						"239.255.255.250_0.0.0.0": map[string]interface{}{
-							"creationTime": 4.567969230573434e+06,
-						},
-					},
-					"route2": map[string]interface{}{
-						"239.255.255.250_0.0.0.0": map[string]interface{}{
-							"creationTime": 4.567969230573434e+06,
-						},
-					},
-				},
-			},
-		},
-	}, {
-		notification: openconfig.Notification{
-			Prefix: &openconfig.Path{
-				Element: []string{
-					"foo", "bar",
-				},
-			},
-			Delete: []*openconfig.Path{
-				{
-					Element: []string{
-						"route", "237.255.255.250_0.0.0.0",
-					}},
-				{
-					Element: []string{
-						"route", "238.255.255.250_0.0.0.0",
-					},
-				},
-			},
-			Update: []*openconfig.Update{{
-				Path: &openconfig.Path{
-					Element: []string{
-						"route",
-					},
-				},
-				Value: &openconfig.Value{
-					Value: valueJSON,
-				},
-			}},
-		},
-		json: map[string]interface{}{
-			"timestamp": int64(0),
-			"dataset":   "cairo",
-			"delete": map[string]interface{}{
-				"foo": map[string]interface{}{
-					"bar": map[string]interface{}{
-						"route": map[string]interface{}{
-							"237.255.255.250_0.0.0.0": map[string]interface{}{},
-							"238.255.255.250_0.0.0.0": map[string]interface{}{},
-						},
-					},
-				},
-			},
-			"update": map[string]interface{}{
-				"foo": map[string]interface{}{
-					"bar": map[string]interface{}{
-						"route": map[string]interface{}{
-							"239.255.255.250_0.0.0.0": map[string]interface{}{
-								"creationTime": 4.567969230573434e+06,
-							},
-						},
-					},
-				},
-			},
-		},
-	}}
-	for _, tcase := range tests {
-		actual, err := NotificationToMap("cairo", &tcase.notification, nil)
-		if err != nil {
-			t.Fatal(err)
-		}
-		diff := test.Diff(tcase.json, actual)
-		if len(diff) > 0 {
-			expectedJSON, _ := json.Marshal(tcase.json)
-			actualJSON, _ := json.Marshal(actual)
-			t.Fatalf("Unexpected diff: %s\nExpected:\n%s\nGot:\n%s\n)", diff, expectedJSON,
-				actualJSON)
-		}
-	}
-}
diff --git a/go.mod b/go.mod
index 52dff3736e40065e46ff398d923299ce67d64ad3..6a938d1b029c2d5054851cf2f33fe3c59d5e2f4f 100644
--- a/go.mod
+++ b/go.mod
@@ -4,23 +4,23 @@ go 1.14
 
 require (
 	code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88
-	code.fbi.h-da.de/cocsn/yang-models v0.0.3
-	github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a
+	code.fbi.h-da.de/cocsn/yang-models v0.0.4
+	code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752
+	github.com/BurntSushi/toml v0.3.1
 	github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591
 	github.com/go-openapi/runtime v0.19.22
 	github.com/go-openapi/strfmt v0.19.5
 	github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
 	github.com/golang/protobuf v1.4.2
-	github.com/google/uuid v1.1.2
 	github.com/neo4j/neo4j-go-driver v1.8.3
 	github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802
 	github.com/openconfig/reference v0.0.0-20190727015836-8dfd928c9696
 	github.com/openconfig/ygot v0.10.0
+	github.com/openconfig/goyang v0.2.2
 	github.com/rivo/tview v0.0.0-20201018122409-d551c850a743
 	github.com/sirupsen/logrus v1.4.2
-	github.com/spf13/viper v1.7.1
 	github.com/tidwall/gjson v1.6.3
 	golang.org/x/net v0.0.0-20200904194848-62affa334b73
 	google.golang.org/grpc v1.29.1
-	google.golang.org/protobuf v1.25.0
+	google.golang.org/protobuf v1.23.0
 )
diff --git a/go.sum b/go.sum
index 38b74c2cbf1df0528fe5d520168c3857d0301cb3..c2fe06749f579f477b3461e16b0838a9fa9cdcfb 100644
--- a/go.sum
+++ b/go.sum
@@ -1,87 +1,34 @@
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
-cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
-cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
-cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
-cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
-cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
-cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
-cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
-cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
-cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88 h1:cNqY3WEh+CX8+esxIwWU/uD7hRC5mPvuJmXzB07OeuA=
 code.fbi.h-da.de/cocsn/swagger/apis v0.0.0-20200924152423-61030cab7b88/go.mod h1:3jDZAOmepPl3kiukNGvPFkJEzgGczgrC3zJ2jcqVFSs=
-code.fbi.h-da.de/cocsn/yang-models v0.0.3 h1:VTVHDTyJiC2TeTAZyxJ1ZFqRwo6H7UeY7PXfp9GXYEY=
-code.fbi.h-da.de/cocsn/yang-models v0.0.3/go.mod h1:X40pn/xQ1lTNbFFN9QFK99oSNaeN/Rg3MSpdhWc3IS8=
-dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
+code.fbi.h-da.de/cocsn/yang-models v0.0.4 h1:y/Ph5CaD2NJDPjoOuS59iKrMYf9bvpg2/hefC2RG6E4=
+code.fbi.h-da.de/cocsn/yang-models v0.0.4/go.mod h1:7MnNmAQ9o84BpUepcaV6RB1mBGCNyXVJcdbKUl6rK0g=
+code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752 h1:hCeie9cCBt0gyETD0EAINuWqpEokf0ulP1Rv9F+rXB0=
+code.fbi.h-da.de/cocsn/yang-modules/generated/tapi v0.0.0-20201116134549-765aa1790752/go.mod h1:EhCu5gVeMKHpjwoV5g5eycc7WcfU98jkPswLDRHQX5w=
 github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
 github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
-github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
 github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
 github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
 github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
-github.com/Shopify/sarama v1.26.1 h1:3jnfWKD7gVwbB1KSy/lE0szA9duPuSFLViK0o/d3DgA=
-github.com/Shopify/sarama v1.26.1/go.mod h1:NbSGBSSndYaIhRcBtY9V0U7AyH+x71bG668AuWys/yU=
-github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc=
-github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI=
 github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
-github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
-github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
-github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
 github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
-github.com/aristanetworks/fsnotify v1.4.2 h1:it2ydpY6k0aXB7qjb4vGhOYOL6YDC/sr8vhqwokFQwQ=
-github.com/aristanetworks/fsnotify v1.4.2/go.mod h1:D/rtu7LpjYM8tRJphJ0hUBYpjai8SfX+aSNsWDTq/Ks=
-github.com/aristanetworks/glog v0.0.0-20191112221043-67e8567f59f3 h1:Bmjk+DjIi3tTAU0wxGaFbfjGUqlxxSXARq9A96Kgoos=
-github.com/aristanetworks/glog v0.0.0-20191112221043-67e8567f59f3/go.mod h1:KASm+qXFKs/xjSoWn30NrWBBvdTTQq+UjkhjEJHfSFA=
-github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a h1:R7ghEBfKIqu/SDpGHS9Nj1fWPxkvxh6Lv4Wq6eS95G4=
-github.com/aristanetworks/goarista v0.0.0-20201120222254-94a892eb0c6a/go.mod h1:Q4lsGfepQE823ePrSNr2CjCz1oeeMECJ6k1yBVujrZg=
-github.com/aristanetworks/splunk-hec-go v0.3.3 h1:O7zlcm4ve7JvqTyEK3vSBh1LngLezraqcxv8Ya6tQFY=
-github.com/aristanetworks/splunk-hec-go v0.3.3/go.mod h1:1VHO9r17b0K7WmOlLb9nTk/2YanvOEnLMUgsFrxBROc=
-github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
-github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
-github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
 github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0S6Vi7/lbWECcX0j45yZReDZ56BQsrVBOEEY=
 github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
-github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
-github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
-github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
-github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
-github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
-github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
 github.com/cenkalti/backoff/v4 v4.0.0/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg=
 github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
-github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY=
-github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
 github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
 github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
-github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
-github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
-github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
 github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
 github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
-github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
 github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
-github.com/eapache/go-resiliency v1.2.0 h1:v7g92e/KSN71Rq7vSThKaWIq68fL4YHvWyiUKorFR1Q=
-github.com/eapache/go-resiliency v1.2.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 h1:YEetp8/yCZMuEPMUDHG0CW/brkkEp8mzqk2+ODEitlw=
-github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU=
-github.com/eapache/queue v1.1.0 h1:YOEu7KNc61ntiQlcEeUIoDTJ2o8mQznoNvUhiigpIqc=
-github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
 github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
 github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
@@ -95,20 +42,12 @@ github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV
 github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
 github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
 github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
-github.com/garyburd/redigo v1.6.0 h1:0VruCpn7yAIIu7pWVClQC8wxCJEcG3nyzpMSHKi1PQc=
-github.com/garyburd/redigo v1.6.0/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
 github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko=
 github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg=
 github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591 h1:0WWUDZ1oxq7NxVyGo8M3KI5jbkiwNAdZFFzAdC68up4=
 github.com/gdamore/tcell/v2 v2.0.1-0.20201017141208-acf90d56d591/go.mod h1:vSVL/GV5mCSlPC6thFP5kfOFdM9MGZcalipmpTxTgQA=
-github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
 github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
-github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
-github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
-github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
-github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
 github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
@@ -121,6 +60,7 @@ github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQH
 github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
 github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
 github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
+github.com/go-openapi/errors v0.19.6 h1:xZMThgv5SQ7SMbWtKFkCf9bBdvR2iEyw9k3zGZONuys=
 github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
 github.com/go-openapi/errors v0.19.7 h1:Lcq+o0mSwCLKACMxZhreVHigB9ebghJ/lrmeaqASbjo=
 github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M=
@@ -173,6 +113,7 @@ github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfT
 github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
 github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo=
+github.com/go-openapi/validate v0.19.10 h1:tG3SZ5DC5KF4cyt7nqLVcQXGj5A7mpaYkAcNPlDK+Yk=
 github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8=
 github.com/go-openapi/validate v0.19.11 h1:8lCr0b9lNWKjVjW/hSZZvltUy+bULl7vbnCTsOzlhPo=
 github.com/go-openapi/validate v0.19.11/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4=
@@ -202,17 +143,11 @@ github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWe
 github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ=
 github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0=
 github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw=
-github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
-github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
 github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
 github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
 github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
 github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8=
@@ -223,92 +158,30 @@ github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvq
 github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8=
 github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0=
 github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI=
-github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
 github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
-github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
-github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.4.1 h1:/exdXoGamhu5ONeUJH0deniYLWYvQwW66yvlfiiKTu0=
 github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w=
-github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
-github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
-github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
 github.com/google/protobuf v3.11.4+incompatible/go.mod h1:lUQ9D1ePzbH2PrIS7ob/bjm9HXyH5WHB0Akwh7URreM=
-github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
 github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
+github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
-github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
-github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
-github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
-github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
-github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
-github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
-github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
-github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
-github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
-github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
-github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
-github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
-github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
-github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
-github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
-github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
-github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE=
-github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
-github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
-github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
-github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
-github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
-github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
-github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
-github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
+github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI=
 github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU=
+github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
 github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d h1:/WZQPMZNsjZ7IlCpsLGdQBINg5bxKQ1K1sh6awxLtkA=
-github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo=
-github.com/jcmturner/gofork v1.0.0 h1:J7uCkflzTEhUZ64xqKnkDxq3kzc96ajM1Gli5ktUem8=
-github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o=
 github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg=
-github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
-github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
-github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4=
-github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
-github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
-github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
-github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
 github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4=
 github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA=
-github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
 github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00=
-github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
 github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
-github.com/klauspost/compress v1.9.8/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
-github.com/klauspost/compress v1.10.1 h1:a/QY0o9S6wCi0XhxaMX/QmusicNUqCqFugR6WKPOSoQ=
-github.com/klauspost/compress v1.10.1/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=
-github.com/klauspost/cpuid v1.2.3 h1:CCtW0xUnWGVINKvE/WWOYKdsPV6mawAtvQuSl8guwQs=
-github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
-github.com/klauspost/reedsolomon v1.9.3 h1:N/VzgeMfHmLc+KHMD1UL/tNkfXAt8FnUqlgXGIduwAY=
-github.com/klauspost/reedsolomon v1.9.3/go.mod h1:CwCi+NUr9pqSVktrkN+Ondf06rkhYZ/pcNv7fu+8Un4=
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
 github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
-github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
-github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
-github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
 github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
@@ -318,8 +191,6 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/lucasb-eyer/go-colorful v1.0.3 h1:QIbQXiugsb+q10B+MI+7DI1oQLdmnep86tWFlaaUAac=
 github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
-github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
-github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
 github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
@@ -328,52 +199,33 @@ github.com/mailru/easyjson v0.7.1 h1:mdxE1MF9o53iCb2Ghj1VfWvh7ZOwHpnVG/xwXrV90U8
 github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
 github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE=
 github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
 github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
 github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
 github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
-github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
-github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
-github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
-github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
-github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
-github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
-github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.3.2 h1:mRS76wmkOn3KkKAyXDu42V+6ebnXWIztFSYGN7GeoRg=
 github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
-github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
-github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
 github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
 github.com/neo4j/neo4j-go-driver v1.8.3 h1:yfuo9YBAlezdIiogu92GwEir/81RD81dNwS5mY/wAIk=
 github.com/neo4j/neo4j-go-driver v1.8.3/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
 github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
 github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78=
 github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A=
-github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
 github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
-github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
+github.com/onsi/ginkgo v1.12.0 h1:Iw5WCbBcaAAd0fpRb1c9r5YCylv4XDoCSigm1zLevwU=
 github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
 github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk=
 github.com/onsi/ginkgo v1.13.0 h1:M76yO2HkZASFjXL0HSoZJ1AYEmQxNJmY41Jx1zNUq1Y=
 github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0=
-github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
 github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
+github.com/onsi/gomega v1.9.0 h1:R1uwffexN6Pr340GtYRIdZmAiN4J+iw6WG4wog1DUXg=
 github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
 github.com/onsi/gomega v1.10.1 h1:o0+MgICZLuZ7xjH7Vx6zS/zcu93/BEp1VwkIW1mEXCE=
 github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
-github.com/openconfig/gnmi v0.0.0-20190823184014-89b2bf29312c/go.mod h1:t+O9It+LKzfOAhKTT5O0ehDix+MTqbtT0T9t+7zzOvc=
 github.com/openconfig/gnmi v0.0.0-20200414194230-1597cc0f2600/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
+github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be h1:VEK8utxoyZu/hkpjLxvuBmK5yW3NmBo/v/Wu5VQAJVs=
 github.com/openconfig/gnmi v0.0.0-20200508230933-d19cebf5e7be/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
-github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802 h1:WXFwJlWOJINlwlyAZuNo4GdYZS6qPX36+rRUncLmN8Q=
-github.com/openconfig/gnmi v0.0.0-20200617225440-d2b4e6a45802/go.mod h1:M/EcuapNQgvzxo1DDXHK4tx3QpYM/uG4l591v33jG2A=
 github.com/openconfig/goyang v0.0.0-20200115183954-d0a48929f0ea/go.mod h1:dhXaV0JgHJzdrHi2l+w0fZrwArtXL7jEFoiqLEdmkvU=
 github.com/openconfig/goyang v0.2.1/go.mod h1:vX61x01Q46AzbZUzG617vWqh/cB+aisc+RrNkXRd3W8=
 github.com/openconfig/goyang v0.2.2 h1:J8hlJk1GSHrcr9vVI7dTvsThsKihWcNXRjWOkjRK0Cw=
@@ -388,78 +240,29 @@ github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FI
 github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3 h1:YtFkrqsMEj7YqpIhRteVxJxCeC3jJBieuLr0d4C4rSA=
 github.com/pborman/getopt v0.0.0-20190409184431-ee0cd42419d3/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o=
 github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
-github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
-github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg=
 github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
-github.com/pierrec/lz4 v2.4.1+incompatible h1:mFe7ttWaflA46Mhqh+jUfjp2qTbPYxLB2/OyBppH9dg=
-github.com/pierrec/lz4 v2.4.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
 github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
-github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
 github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
-github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
-github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
-github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
-github.com/prometheus/client_golang v1.4.1 h1:FFSuS004yOQEtDdTq+TAOLP5xUq63KqAFYyOi8zA+Y8=
-github.com/prometheus/client_golang v1.4.1/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
-github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
-github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
-github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
-github.com/prometheus/common v0.9.1 h1:KOMtN28tlbam3/7ZKEYKHhKoJZYYj3gMH4uc62x7X7U=
-github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
-github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
-github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.0.10 h1:QJQN3jYQhkamO4mhfUWqdDH2asK7ONOI9MTWjyAxNKM=
-github.com/prometheus/procfs v0.0.10/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
-github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563 h1:dY6ETXrvDG7Sa4vE8ZQG4yqWg6UnOcbqTAahkV813vQ=
-github.com/rcrowley/go-metrics v0.0.0-20190826022208-cac0b30c2563/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
 github.com/rivo/tview v0.0.0-20201018122409-d551c850a743 h1:9BBjVJTRxuYBeCAv9DFH2hSzY0ujLx5sxMg5D3K/Xeg=
 github.com/rivo/tview v0.0.0-20201018122409-d551c850a743/go.mod h1:t7mcA3nlK9dxD1DMoz/DQRMWFMkGBUj6rJBM5VNfLFA=
 github.com/rivo/uniseg v0.1.0 h1:+2KBaVoUmb9XzDsrx/Ct0W/EYOSFf/nWTauy++DprtY=
 github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
-github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
 github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
-github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
-github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww=
-github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
 github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw=
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
 github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
-github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
 github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q=
 github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4=
 github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=
-github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
-github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
-github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
-github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
-github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
-github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=
-github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
-github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=
-github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
 github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
-github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=
-github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
 github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
 github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
-github.com/spf13/viper v1.7.1 h1:pM5oEahlgWv/WnHXpgbKz7iLIxRf65tye2Ci+XFK5sk=
-github.com/spf13/viper v1.7.1/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
 github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
@@ -468,213 +271,110 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
 github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
 github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=
-github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
-github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 h1:89CEmDvlq/F7SJEOqkIdNDGJXrQIhuIx9D2DBXjavSU=
-github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161/go.mod h1:wM7WEvslTq+iOEAMDLSzhVuOt5BRZ05WirO+b09GHQU=
-github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b h1:fj5tQ8acgNUr6O8LEplsxDhUIe2573iLkJc+PqnzZTI=
-github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b/go.mod h1:5XA7W9S6mni3h5uvOC75dA3m9CCCaS83lltmc0ukdi4=
 github.com/tidwall/gjson v1.6.3 h1:aHoiiem0dr7GHkW001T1SMTJ7X5PvyekH5WX0whWGnI=
 github.com/tidwall/gjson v1.6.3/go.mod h1:BaHyNc5bjzYkPqgLq7mdVzeiRtULKULXLgZFKsxEHI0=
 github.com/tidwall/match v1.0.1 h1:PnKP62LPNxHKTwvHHZZzdOAOCtsJTjo6dZLCwpKm5xc=
 github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E=
+github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 github.com/tidwall/pretty v1.0.2 h1:Z7S3cePv9Jwm1KwS0513MRaoUe3S01WPbLNV40pwWZU=
 github.com/tidwall/pretty v1.0.2/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tjfoc/gmsm v1.3.0 h1:i7c6Za/IlgBvnGxYpfD7L3TGuaS+v6oGcgq+J9/ecEA=
-github.com/tjfoc/gmsm v1.3.0/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w=
-github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
 github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
 github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I=
 github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
-github.com/xdg/stringprep v1.0.0/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y=
-github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
-github.com/xtaci/kcp-go v5.4.20+incompatible h1:TN1uey3Raw0sTz0Fg8GkfM0uH3YwzhnZWQ1bABv5xAg=
-github.com/xtaci/kcp-go v5.4.20+incompatible/go.mod h1:bN6vIwHQbfHaHtFpEssmWsN45a+AZwO7eyRCmEIbtvE=
-github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae h1:J0GxkO96kL4WF+AIT3M4mfUVinOCPgf2uUWYFUzN0sM=
-github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE=
-go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
 go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
 go.mongodb.org/mongo-driver v1.3.4 h1:zs/dKNwX0gYUtzwrN9lLiR15hCO0nDwQj5xXx+vjCdE=
 go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE=
-go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
-go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
-go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
-go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
-go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
 golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
-golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE=
-golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200204104054-c9f3fb736b72/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI=
 golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
-golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
-golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
-golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
-golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
 golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
 golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
-golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
-golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
-golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
-golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
 golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
+golang.org/x/net v0.0.0-20200602114024-627f9648deb9 h1:pNX+40auqi2JqRfOP1akLGtYcn15TUbkhwuCO3foqqM=
 golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A=
 golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA=
 golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
-golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY=
-golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200219091948-cb0a6d8edb6c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20201017003518-b09fb700fbb7 h1:XtNJkfEjb4zR3q20BBBcYUykVOEMgZeIUOpBPfNYgxg=
 golang.org/x/sys v0.0.0-20201017003518-b09fb700fbb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
 golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
 golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
 golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
 golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs=
-golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
 golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
 golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
+golang.org/x/tools v0.0.0-20190617190820-da514acc4774 h1:CQVOmarCBFzTx0kbOU0ru54Cvot8SdSrNYjZPhQl+gk=
 golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
-golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.0.0-20200221224223-e1da425f72fd h1:hHkvGJK23seRCflePJnVa9IMv8fsuavSCWKd11kDQFs=
-golang.org/x/tools v0.0.0-20200221224223-e1da425f72fd/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
-google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
-google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
-google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
 google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
 google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
 google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
-google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
 google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
-google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
+google.golang.org/genproto v0.0.0-20200519141106-08726f379972 h1:6ydLqG65DIMNJf6p97WudGsmd1w3Ickm/LiZnBrREPI=
 google.golang.org/genproto v0.0.0-20200519141106-08726f379972/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 h1:+kGHl1aib/qcwaRi1CbqBZ1rk19r85MNUf8HaBghugY=
-google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
-google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
 google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
 google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
 google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
@@ -687,42 +387,20 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ
 google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
 google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
 google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
+google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM=
 google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
-google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c=
-google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
-gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
-gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a h1:stTHdEoWg1pQ8riaP5ROrjS6zy6wewH/Q2iwnLCQUXY=
-gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a/go.mod h1:KF9sEfUPAXdG8Oev9e99iLGnl2uJMjc5B+4y3O7x610=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU=
 gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
+gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
-gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=
-gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
-gopkg.in/jcmturner/aescts.v1 v1.0.1 h1:cVVZBK2b1zY26haWB4vbBiZrfFQnfbTVrE3xZq6hrEw=
-gopkg.in/jcmturner/aescts.v1 v1.0.1/go.mod h1:nsR8qBOg+OucoIW+WMhB3GspUQXq9XorLnQb9XtvcOo=
-gopkg.in/jcmturner/dnsutils.v1 v1.0.1 h1:cIuC1OLRGZrld+16ZJvvZxVJeKPsvd5eUIvxfoN5hSM=
-gopkg.in/jcmturner/dnsutils.v1 v1.0.1/go.mod h1:m3v+5svpVOhtFAP/wSz+yzh4Mc0Fg7eRhxkJMWSIz9Q=
-gopkg.in/jcmturner/goidentity.v3 v3.0.0 h1:1duIyWiTaYvVx3YX2CYtpJbUFd7/UuPYCfgXtQ3VTbI=
-gopkg.in/jcmturner/goidentity.v3 v3.0.0/go.mod h1:oG2kH0IvSYNIu80dVAyu/yoefjq1mNfM5bm88whjWx4=
-gopkg.in/jcmturner/gokrb5.v7 v7.5.0 h1:a9tsXlIDD9SKxotJMK3niV7rPZAJeX2aD/0yg3qlIrg=
-gopkg.in/jcmturner/gokrb5.v7 v7.5.0/go.mod h1:l8VISx+WGYp+Fp7KRbsiUuXTTOnxIc3Tuvyavf11/WM=
-gopkg.in/jcmturner/rpc.v1 v1.1.0 h1:QHIUxTX1ISuAv9dD2wJ9HWQVuWDX/Zc0PfeC2tjc4rU=
-gopkg.in/jcmturner/rpc.v1 v1.1.0/go.mod h1:YIdkC4XfD6GXbzje11McwsDuOlZQSb9W4vfLvuNnlv8=
-gopkg.in/redis.v4 v4.2.4 h1:y3XbwQAiHwgNLUng56mgWYK39vsPqo8sT84XTEcxjr0=
-gopkg.in/redis.v4 v4.2.4/go.mod h1:8KREHdypkCEojGKQcjMqAODMICIVwZAONWq8RowTITA=
-gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ=
 gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw=
-gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
 gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU=
 gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
@@ -731,10 +409,6 @@ gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
 gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
 honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
 honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
-rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/gosdn.png b/gosdn.png
deleted file mode 100644
index b16c83696fe11f6b983da0bf923457ecf59add8d..0000000000000000000000000000000000000000
Binary files a/gosdn.png and /dev/null differ
diff --git a/gosdn.puml b/gosdn.puml
deleted file mode 100644
index 1dc2379006cdef8990adf2f73dc4fe5ddd414c51..0000000000000000000000000000000000000000
--- a/gosdn.puml
+++ /dev/null
@@ -1,118 +0,0 @@
-@startuml
-namespace nucleus {
-    class ClientConfig << (S,Aquamarine) >> {
-        + Identifier string
-        + Endpoint string
-        + Username string
-        + Password string
-        + GjsonDefaultPath string
-        + GjsonConnectionsPath string
-
-    }
-    class Core << (S,Aquamarine) >> {
-        - devices <font color=blue>map</font>[string]Device
-        - southboundInterfaces <font color=blue>map</font>[string]interfaces.SouthboundInterface
-        - prinipalNetworkDomains <font color=blue>map</font>[uuid.UUID]interfaces.PrincipalNetworkDomain
-        - database database.Database
-        - config controllerConfig
-
-        + IsRunning <font color=blue>chan</font> bool
-
-        - readControllerConfig(configFileController string) error
-
-        + Init(socket string, configFileController string, configFileClient string, IsRunningChannel <font color=blue>chan</font> bool) 
-        + AttachDatabase() 
-        + Shutdown() 
-
-    }
-    class Device << (S,Aquamarine) >> {
-        - device ygot.GoStruct
-
-        + SBI interfaces.SouthboundInterface
-        + Config DeviceConfig
-
-    }
-    class DeviceConfig << (S,Aquamarine) >> {
-        + Identifier uuid.UUID
-        + Endpoint string
-        + Username string
-        + Password string
-
-    }
-    interface PrincipalNetworkDomain  {
-        + Destroy() error
-        + AddSbi() error
-        + RemoveSbi() error
-        + AddDevice( interfaces.Device) error
-        + RemoveDevice(uuid uuid.UUID) error
-
-    }
-    interface SouthboundInterface  {
-    }
-    class buf << (S,Aquamarine) >> {
-        + Write(p []byte) (int, error)
-
-    }
-    class controllerConfig << (S,Aquamarine) >> {
-        + CliSocket string
-        + DatabaseSocket string
-        + DatabaseUser string
-        + DatabasePassword string
-        + DatabaseCrypto bool
-        + ConfigPath string
-
-    }
-    class logConnection << (S,Aquamarine) >> {
-        - stream proto.GrpcCli_CreateLogStreamServer
-        - id string
-        - active bool
-        - error <font color=blue>chan</font> error
-
-    }
-    class nucleus.buf << (T, #FF7700) >>  {
-    }
-    class pndImplementation << (S,Aquamarine) >> {
-        - name string
-        - sbiContainer <font color=blue>map</font>[string]*interfaces.SouthboundInterface
-        - devices <font color=blue>map</font>[uuid.UUID]Device
-
-        + Destroy() error
-        + AddSbi() error
-        + RemoveSbi() error
-        + AddDevice(device Device) error
-        + RemoveDevice(uuid uuid.UUID) error
-
-    }
-    class server << (S,Aquamarine) >> {
-        - core *Core
-        - logConnections []*logConnection
-
-        + SayHello(ctx context.Context, in *proto.HelloRequest) (*proto.HelloReply, error)
-        + CreateLogStream(req *emptypb.Empty, stream proto.GrpcCli_CreateLogStreamServer) error
-        + BroadcastLog(log *proto.LogReply) 
-        + Shutdown(ctx context.Context, in *proto.ShutdownRequest) (*proto.ShutdownReply, error)
-        + TAPIGetEdge(ctx context.Context, in *proto.TAPIRequest) (*proto.TAPIReply, error)
-        + TAPIGetEdgeNode(ctx context.Context, in *proto.TAPIRequest) (*proto.TAPIReply, error)
-        + TAPIGetLink(ctx context.Context, in *proto.TAPIRequest) (*proto.TAPIReply, error)
-
-    }
-}
-"proto.UnimplementedGrpcCliServer" *-- "nucleus.server"
-
-
-namespace sbi {
-    class OpenConfig << (S,Aquamarine) >> {
-        - name string
-        - clientContainer []Client
-
-        + AddClient() error
-        + RemoveClient() error
-        + CollectHeartbeats() error
-        + ListClients() <font color=blue>map</font>[int]interfaces.Client
-
-    }
-}
-
-
-"__builtin__.[]byte" #.. "nucleus.buf"
-@enduml
diff --git a/nucleus/cli-handling.go b/nucleus/cli-handling.go
index 6ebe88cec126b0cb6255fb00e3363f8648ae7a7a..81c11d1a8e03c68d9071f2b2df2d202397002403 100644
--- a/nucleus/cli-handling.go
+++ b/nucleus/cli-handling.go
@@ -8,14 +8,13 @@ package nucleus
 
 import (
 	"context"
-	"github.com/google/uuid"
-	"github.com/spf13/viper"
 	"io"
 	"net"
 	"os"
 	"sync"
 
 	pb "code.fbi.h-da.de/cocsn/gosdn/api/proto"
+	"code.fbi.h-da.de/cocsn/gosdn/sbi/restconf/client/ciena"
 	log "github.com/sirupsen/logrus"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/health"
@@ -35,7 +34,6 @@ type server struct {
 	pb.UnimplementedGrpcCliServer
 	core           *Core
 	logConnections []*logConnection
-	devices        map[uuid.UUID]Device
 }
 
 var srv *server
@@ -54,7 +52,7 @@ func (s *server) SayHello(ctx context.Context, in *pb.HelloRequest) (*pb.HelloRe
 	return &pb.HelloReply{Message: "Hello " + in.GetName(), GoSDNInfo: "goSDN in version: DEVELOP"}, nil
 }
 
-//GetLog creates a continuous stream between ciena and server to send goSDN logs
+//GetLog creates a continuous stream between client and server to send goSDN logs
 func (s *server) CreateLogStream(req *emptypb.Empty, stream pb.GrpcCli_CreateLogStreamServer) error {
 	conn := &logConnection{
 		stream: stream,
@@ -111,7 +109,7 @@ func getCLIGoing(core *Core) {
 
 	log.Info("Starting: GetCLIGoing")
 	// Boot-up the control interface for the cli
-	cliControlListener, err := net.Listen("tcp", viper.GetString("socket"))
+	cliControlListener, err := net.Listen("tcp", core.config.CliSocket)
 	if err != nil {
 		log.Fatal(err)
 	}
@@ -137,18 +135,27 @@ func getCLIGoing(core *Core) {
 // SBI specific calls, by now TAPI only
 func (s *server) TAPIGetEdge(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
 	log.Info("Received: ", in.GetName())
-	// TODO: Implement
+	if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetNodes(); err != nil {
+		log.Error(err)
+		return &pb.TAPIReply{Message: "TAPI error"}, nil
+	}
 	return &pb.TAPIReply{Message: "Done"}, nil
 }
 
 func (s *server) TAPIGetEdgeNode(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
 	log.Info("Received: ", in.GetName())
-	// TODO: Implement
+	if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetNodeEdgePoints(); err != nil {
+		log.Error(err)
+		return &pb.TAPIReply{Message: "TAPI error"}, nil
+	}
 	return &pb.TAPIReply{Message: "Done"}, nil
 }
 
 func (s *server) TAPIGetLink(ctx context.Context, in *pb.TAPIRequest) (*pb.TAPIReply, error) {
 	log.Info("Received: ", in.GetName())
-	// TODO: Implement
+	if err := s.core.clients["ciena-mcp"].(*ciena.MCPClient).GetLinks(); err != nil {
+		log.Error(err)
+		return &pb.TAPIReply{Message: "TAPI error"}, nil
+	}
 	return &pb.TAPIReply{Message: "Done"}, nil
 }
diff --git a/nucleus/controller.go b/nucleus/controller.go
index 9de78e91939e778db1c00f1c58b40d7d9ba9c72d..7d0541f881fb8ffd86e653c220bfcef4806eb5c6 100644
--- a/nucleus/controller.go
+++ b/nucleus/controller.go
@@ -2,43 +2,57 @@ package nucleus
 
 import (
 	"code.fbi.h-da.de/cocsn/gosdn/database"
-	"fmt"
-	"github.com/google/uuid"
+	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
+	"code.fbi.h-da.de/cocsn/gosdn/sbi/restconf/client/ciena"
+	"github.com/BurntSushi/toml"
 	log "github.com/sirupsen/logrus"
-	"github.com/spf13/viper"
 	"os"
 )
 
+type controllerConfig struct {
+	CliSocket        string
+	DatabaseSocket   string
+	DatabaseUser     string
+	DatabasePassword string
+	DatabaseCrypto   bool
+	ConfigPath       string
+}
+
+type clientConfigs struct {
+	Client []interfaces.ClientConfig `toml:"client"`
+}
+
 // Core is the representation of the controllers core
 type Core struct {
-	southboundInterfaces   map[string]SouthboundInterface
-	prinipalNetworkDomains map[uuid.UUID]PrincipalNetworkDomain
-	database               database.Database
-	IsRunning              chan bool
-}
-
-//Initialize does start-up housekeeping like reading controller config files
-func (c *Core) Initialize(IsRunningChannel chan bool) {
-	// Set config defaults
-	viper.SetDefault("socket", "localhost:55055")
-
-	// Set config path and read config
-	viper.SetConfigName("gosdn")
-	viper.SetConfigType("toml")
-	viper.AddConfigPath("/usr/local/etc/gosdn/")
-	viper.AddConfigPath("./configs/")
-	err := viper.ReadInConfig()
-	if err != nil {
-		log.Fatal(fmt.Errorf("Fatal error config file: %s \n", err))
+	//Assert type with clients[key].(*MCPClient)
+	clients   map[string]interfaces.Client
+	database  database.Database
+	config    controllerConfig
+	IsRunning chan bool
+}
+
+//Init does start-up housekeeping like reading controller and client config files
+func (c *Core) Init(socket, configFileController, configFileClient string, IsRunningChannel chan bool) {
+	if err := c.readControllerConfig(configFileController); err != nil {
+		log.Fatal(err)
 	}
+
+	if socket != "localhost:55055" {
+		c.config.CliSocket = socket
+	}
+
 	c.AttachDatabase()
 
 	c.IsRunning = IsRunningChannel
+
+	if err := c.readClientConfig(configFileClient); err != nil {
+		log.Fatal(err)
+	}
 }
 
 // AttachDatabase connects to the database and passes the connectio to the controller core
 func (c *Core) AttachDatabase() {
-	c.database = database.NewDatabaseClient()
+	c.database = database.NewDatabaseClient(c.config.DatabaseSocket, c.config.DatabaseUser, c.config.DatabasePassword, c.config.DatabaseCrypto)
 }
 
 // Shutdown waits for the shutdown signal and gracefully shuts down once it arrived
@@ -46,10 +60,50 @@ func (c *Core) Shutdown() {
 	<-c.IsRunning
 	log.Info("Received shutdown signal. Shutting down")
 
-	err := viper.WriteConfig()
+	f, err := os.Create(c.config.ConfigPath)
 	if err != nil {
 		log.Fatal(err)
 	}
+	enc := toml.NewEncoder(f)
+	if err := enc.Encode(c.config); err != nil {
+		log.Fatal(err)
+	}
 	log.Info("Shutdown complete")
 	os.Exit(0)
-}
\ No newline at end of file
+}
+
+func (c *Core) readControllerConfig(configFileController string) error {
+	if configFileController == "" {
+		configFileController = "configs/gosdn.toml"
+	}
+	if _, err := os.Stat(configFileController); err != nil {
+		return err
+	}
+
+	c.config = controllerConfig{}
+	if _, err := toml.DecodeFile(configFileController, &c.config); err != nil {
+		return err
+	}
+
+	if c.config.ConfigPath == "" {
+		c.config.ConfigPath = configFileController
+	}
+	return nil
+}
+
+func (c *Core) readClientConfig(configFileClient string) error {
+	if configFileClient == "" {
+		configFileClient = "configs/clients.toml"
+	}
+	if _, err := os.Stat(configFileClient); err != nil {
+		return err
+	}
+	clients := clientConfigs{}
+	if _, err := toml.DecodeFile(configFileClient, &clients); err != nil {
+		return err
+	}
+	for _, client := range clients.Client {
+		c.clients[client.Identifier] = ciena.NewMCPClient(client.Endpoint, client.Username, client.Password, &c.database, &client)
+	}
+	return nil
+}
diff --git a/nucleus/gnmi_transport.go b/nucleus/gnmi_transport.go
deleted file mode 100644
index 867fdea28c1f39d163cc2dfe4318fae8e3bfe32a..0000000000000000000000000000000000000000
--- a/nucleus/gnmi_transport.go
+++ /dev/null
@@ -1,81 +0,0 @@
-package nucleus
-
-import (
-	"code.fbi.h-da.de/cocsn/gosdn/forks/goarista/gnmi"
-	"context"
-	"github.com/google/uuid"
-	"github.com/openconfig/gnmi/proto/gnmi_ext"
-
-	gpb "github.com/openconfig/gnmi/proto/gnmi"
-)
-
-type Gnmi uuid.UUID
-
-func (g *Gnmi) SetConfig(interface{}) error {
-	return nil
-}
-
-func (g *Gnmi) GetConfig() interface{} {
-	return nil
-}
-
-// Capabilities calls GNMI capabilities
-func (g *Gnmi) Capabilities(ctx context.Context) (interface{}, error) {
-	client, err := gnmi.Dial(ctx.Value("config").(*gnmi.Config))
-	if err != nil {
-		return nil, err
-	}
-	resp, err := client.Capabilities(ctx, &gpb.CapabilityRequest{})
-	if err != nil {
-		return nil, err
-	}
-	return resp, nil
-}
-
-// Get calls GNMI get
-func (g *Gnmi) Get(ctx context.Context, paths [][]string, origin string) (interface{}, error) {
-	req, err := gnmi.NewGetRequest(paths, origin)
-	if err != nil {
-		return nil, err
-	}
-	return GetWithRequest(ctx, req)
-}
-
-// GetWithRequest takes a fully formed GetRequest, performs the Get,
-// and displays any response.
-func GetWithRequest(ctx context.Context, req *gpb.GetRequest) (interface{}, error) {
-	client, err := gnmi.Dial(ctx.Value("config").(*gnmi.Config))
-	if err != nil {
-		return nil, err
-	}
-	resp, err := client.Get(ctx, req)
-	if err != nil {
-		return nil, err
-	}
-	return resp, nil
-}
-
-// Set calls GNMI set
-func (g *Gnmi) Set(ctx context.Context, setOps []*gnmi.Operation,
-	exts ...*gnmi_ext.Extension) error {
-	client, err := gnmi.Dial(ctx.Value("config").(*gnmi.Config))
-	if err != nil {
-		return err
-	}
-	return gnmi.Set(ctx, client, setOps, exts...)
-}
-
-// Subscribe calls GNMI subscribe
-func (g *Gnmi) Subscribe(ctx context.Context, subscribeOptions *gnmi.SubscribeOptions,
-	respChan chan<- *gpb.SubscribeResponse) error {
-	client, err := gnmi.Dial(ctx.Value("config").(*gnmi.Config))
-	if err != nil {
-		return err
-	}
-	return gnmi.SubscribeErr(ctx, client, subscribeOptions, respChan)
-}
-
-// Close calls GNMI close
-func (g *Gnmi) Close() error {
-	return nil
-}
diff --git a/nucleus/interfaces/client.go b/nucleus/interfaces/client.go
new file mode 100644
index 0000000000000000000000000000000000000000..4d0b9e1ceaf68a23f8089fb0703efd219546a217
--- /dev/null
+++ b/nucleus/interfaces/client.go
@@ -0,0 +1,7 @@
+package interfaces
+
+// Client provides an interface for
+// SBI protocol clients
+type Client interface {
+	GetConfig() ClientConfig
+}
diff --git a/nucleus/clientConfig.go b/nucleus/interfaces/clientConfig.go
similarity index 87%
rename from nucleus/clientConfig.go
rename to nucleus/interfaces/clientConfig.go
index 297e7a7fe53d3dcc9c67dad5e09f95601141da65..ccfbcd80a8e5bdc9a9cd406b1dc12640b6c9982d 100644
--- a/nucleus/clientConfig.go
+++ b/nucleus/interfaces/clientConfig.go
@@ -1,6 +1,6 @@
-package nucleus
+package interfaces
 
-// ClientConfig contains SBI ciena
+// ClientConfig contains SBI client
 // configuration parameters
 // Deprecated in favor of spf viper
 type ClientConfig struct {
diff --git a/nucleus/nucleus-core.go b/nucleus/nucleus-core.go
index 47b265b96d5a743fbe55eb4f1d74b20ea8f7a65b..4e92cf46abe187399459dfb8aa5428ee450d0af0 100644
--- a/nucleus/nucleus-core.go
+++ b/nucleus/nucleus-core.go
@@ -2,20 +2,22 @@ package nucleus
 
 import (
 	"code.fbi.h-da.de/cocsn/gosdn/database"
+	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
 	log "github.com/sirupsen/logrus"
 	"time"
 )
 
 //StartAndRun is used to start the core of the controller and any auxiliary services.
-func StartAndRun(IsRunningChannel chan bool) {
+func StartAndRun(socket, filename string, IsRunningChannel chan bool) {
 	log.Info("This is the network superintendent...")
 	log.Info("Starting my ducks")
 
-	// Initialize the Core
+	// Init the Core
 	core := Core{
+		clients:  make(map[string]interfaces.Client),
 		database: database.Database{},
 	}
-	core.Initialize(IsRunningChannel)
+	core.Init(socket, filename, "", IsRunningChannel)
 	// Start the GRCP CLI
 	go getCLIGoing(&core)
 	go core.Shutdown()
diff --git a/nucleus/principalNetworkDomain.go b/nucleus/principalNetworkDomain.go
deleted file mode 100644
index fd54a00abdd9a60e65859978582eb502dc06854d..0000000000000000000000000000000000000000
--- a/nucleus/principalNetworkDomain.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package nucleus
-
-import (
-	"github.com/google/uuid"
-)
-
-// PrincipalNetworkDomain provides an
-// interface for PND implementations
-type PrincipalNetworkDomain interface {
-	Destroy() error
-	AddSbi() error
-	RemoveSbi() error
-	AddDevice(Device) error
-	RemoveDevice(uuid uuid.UUID) error
-}
-
-type pndImplementation struct {
-	name    string
-	sbi     map[string]SouthboundInterface
-	devices map[uuid.UUID]Device
-}
-
-//NewPND creates a Principle Network Domain
-func NewPND(name string, sbi SouthboundInterface) PrincipalNetworkDomain {
-	sbic := make(map[string]SouthboundInterface)
-	sbic["default"] = sbi
-	devices := make(map[uuid.UUID]Device)
-	return &pndImplementation{
-		name:    name,
-		sbi:     sbic,
-		devices: devices,
-	}
-}
-
-// Interface satisfaction
-func (pnd *pndImplementation) Destroy() error {
-	return destroy()
-}
-
-func (pnd *pndImplementation) AddSbi() error {
-	return addSbi()
-}
-
-func (pnd *pndImplementation) RemoveSbi() error {
-	return removeSbi()
-}
-
-func (pnd *pndImplementation) AddDevice(device Device) error {
-	return pnd.addDevice(device)
-}
-
-func (pnd *pndImplementation) RemoveDevice(uuid uuid.UUID) error {
-	return pnd.removeDevice(uuid)
-}
-
-// Actual implementation, bind to struct if
-// neccessary
-func destroy() error {
-	return nil
-}
-
-func addSbi() error {
-	return nil
-}
-
-func removeSbi() error {
-	return nil
-}
-
-func (pnd *pndImplementation) addDevice(device Device) error {
-	pnd.devices[device.Config.Uuid] = device
-	return nil
-}
-
-func (pnd *pndImplementation) removeDevice(uuid uuid.UUID) error {
-	delete(pnd.devices, uuid)
-	return nil
-}
diff --git a/nucleus/restconf_transport.go b/nucleus/restconf_transport.go
deleted file mode 100644
index 452bc6d9916e0bdb5a25e3b152c1ccc75f9d41c9..0000000000000000000000000000000000000000
--- a/nucleus/restconf_transport.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package nucleus
-
-import "context"
-
-type Restconf struct {
-}
-
-func (rc *Restconf) SetConfig(interface{}) error {
-	return nil
-}
-
-func (rc *Restconf) GetConfig() interface{} {
-	return nil
-}
-
-func (rc *Restconf) Subscribe(ctx context.Context, params ...string) error {
-	return nil
-}
diff --git a/plugins/sbi-general.go b/plugins/sbi-general.go
deleted file mode 100644
index 4a4ce3272fcbbe8ca40a0ec0b9925e9b76959b6b..0000000000000000000000000000000000000000
--- a/plugins/sbi-general.go
+++ /dev/null
@@ -1,40 +0,0 @@
-package plugins
-
-import (
-	"fmt"
-	"os"
-	"plugin"
-)
-
-type SBIGreeter interface {
-	SBIHello()
-}
-
-func SBILoader() {
-	modPath := "/Users/mls/go/src/code.fbi.h-da.de/cocsn/byowsbi/byowsbi.o"
-
-	// open the so file that contains the SBI-plugin as step before loading the symbols
-	plug, err := plugin.Open(modPath)
-	if err != nil {
-		fmt.Println(err)
-		os.Exit(1)
-	}
-
-	// loading the symbols
-	sbiModule, err := plug.Lookup("SBIGreeter")
-	if err != nil {
-		fmt.Println(err)
-		os.Exit(1)
-	}
-
-	// Assert the loaded symbol
-	var sbigreeter SBIGreeter
-	sbigreeter, ok := sbiModule.(SBIGreeter)
-	if !ok {
-		fmt.Println("unexpected type from module symbol")
-		os.Exit(1)
-	}
-
-	// use me!
-	sbigreeter.SBIHello()
-}
diff --git a/plugins/ciena/mcp.go b/sbi/restconf/client/ciena/client.go
similarity index 81%
rename from plugins/ciena/mcp.go
rename to sbi/restconf/client/ciena/client.go
index 2c51eed50c44cbe1cd8a4c7c888a22240227beaa..7b994496a17a145ce2b6ed5c207e0fb55b8b8435 100644
--- a/plugins/ciena/mcp.go
+++ b/sbi/restconf/client/ciena/client.go
@@ -3,64 +3,53 @@ package ciena
 import (
 	"bytes"
 	"code.fbi.h-da.de/cocsn/gosdn/database"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus"
+	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
+	"code.fbi.h-da.de/cocsn/gosdn/sbi/restconf/util"
 	apiclient "code.fbi.h-da.de/cocsn/swagger/apis/mcp/client"
-	"code.fbi.h-da.de/cocsn/yang-models/generated/tapi"
+	"code.fbi.h-da.de/cocsn/yang-modules/generated/tapi"
 	"crypto/tls"
 	"encoding/json"
 	"github.com/go-openapi/runtime"
 	httptransport "github.com/go-openapi/runtime/client"
 	"github.com/go-openapi/strfmt"
 	"github.com/openconfig/ygot/ygot"
-	log "github.com/sirupsen/logrus"
 	"github.com/tidwall/gjson"
+	log "github.com/sirupsen/logrus"
 	"net/http"
 	"strings"
 )
 
-//Mcp handles requests to a Ciena MCP RESTCONF endpoint
-type Mcp struct {
+//MCPClient handles requests to a Ciena MCP RESTCONF endpoint
+type MCPClient struct {
 	transport *httptransport.Runtime
 	client    *apiclient.ServiceTopologyTAPI
 	database  *database.Database
 	buffer    *bytes.Buffer
-	config    *nucleus.ClientConfig
+	config    *interfaces.ClientConfig
 	device    ygot.GoStruct
 }
 
 // GetConfig returns a ClientConfig struct containing
-// the current configuration stat of the Ciena SBI ciena
-func (c Mcp) GetConfig() nucleus.ClientConfig {
+// the current configuration stat of the Ciena SBI client
+func (c MCPClient) GetConfig() interfaces.ClientConfig {
 	return *c.config
 }
 
-// ListPorts is a stub to satisfy the interface
-// TODO: Implement
-func (c Mcp) ListPorts() interface{} {
-	return nil
-}
-
-// PushReceiver is a stub to satisfy the interface
-// TODO: Implement
-func (c Mcp) PushReceiver() error {
-	return nil
-}
-
-//NewMCPClient creates a Ciena flavores TAPI ciena
-func NewMCPClient(endpoint, username, password string, database *database.Database, config *nucleus.ClientConfig) *Mcp {
+//NewMCPClient creates a Ciena flavores TAPI client
+func NewMCPClient(endpoint, username, password string, database *database.Database, config *interfaces.ClientConfig) *MCPClient {
 	// create the transport
 	transport := httptransport.New(endpoint, "/", nil)
 	transport.Transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
-	// create the API ciena, with the transport
+	// create the API client, with the transport
 	basicAuth := httptransport.BasicAuth(username, password)
-	// authenticate ciena
+	// authenticate client
 	transport.DefaultAuthentication = basicAuth
 	client := apiclient.New(transport, strfmt.Default)
 
 	buffer := new(bytes.Buffer)
-	transport.Consumers[runtime.JSONMime] = nucleus.YANGConsumer{Data: buffer}
+	transport.Consumers[runtime.JSONMime] = util.YANGConsumer{Data: buffer}
 
-	return &Mcp{
+	return &MCPClient{
 		transport: transport,
 		client:    client,
 		database:  database,
@@ -71,8 +60,8 @@ func NewMCPClient(endpoint, username, password string, database *database.Databa
 }
 
 // GetConnections implements the TAPI Connectivity GetConnections call with a grain of
-// Ciena salt. The response is written to the ciena's buffer and passed to the database
-func (c *Mcp) GetConnections() error {
+// Ciena salt. The response is written to the client's buffer and passed to the database
+func (c *MCPClient) GetConnections() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiConnectivityCore.GetTapiCoreContextConnection(nil)
 	if err != nil {
@@ -98,8 +87,8 @@ func (c *Mcp) GetConnections() error {
 }
 
 // GetLinks implements the TAPI Topology GetLinks call with a grain of
-// Ciena salt. The response is written to the ciena's buffer and passed to the database
-func (c *Mcp) GetLinks() error {
+// Ciena salt. The response is written to the client's buffer and passed to the database
+func (c *MCPClient) GetLinks() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyLink(nil)
 	if err != nil {
@@ -125,8 +114,8 @@ func (c *Mcp) GetLinks() error {
 }
 
 // GetNodes implements the TAPI Topology GetNodes call with a grain of
-// Ciena salt. The response is written to the ciena's buffer and passed to the database
-func (c *Mcp) GetNodes() error {
+// Ciena salt. The response is written to the client's buffer and passed to the database
+func (c *MCPClient) GetNodes() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNode(nil)
 	if err != nil {
@@ -152,8 +141,8 @@ func (c *Mcp) GetNodes() error {
 }
 
 // GetNodeEdgePoints implements the TAPI Topology GetNodeEdgePoints call with a grain of
-// Ciena salt. The response is written to the ciena's buffer and passed to the database
-func (c *Mcp) GetNodeEdgePoints() error {
+// Ciena salt. The response is written to the client's buffer and passed to the database
+func (c *MCPClient) GetNodeEdgePoints() error {
 	defer c.buffer.Reset()
 	_, err := c.client.TapiTopologyCore.GetTapiCoreContextTopologyMcpBaseTopologyNodeEdgePoint(nil)
 	if err != nil {
diff --git a/nucleus/transport.go b/sbi/restconf/util/unmarshal.go
similarity index 52%
rename from nucleus/transport.go
rename to sbi/restconf/util/unmarshal.go
index 809ddd603ba4143c97e1fead882b6c620ddb8efe..9c85a8cb4d23329efe33cad50d86fa88463e4fa6 100644
--- a/nucleus/transport.go
+++ b/sbi/restconf/util/unmarshal.go
@@ -1,20 +1,10 @@
-package nucleus
+package util
 
 import (
 	"bytes"
-	"context"
 	"io"
 )
 
-// Transport provides an interface for
-// Transport implementations like RESTCONF
-// or gnmi
-type Transport interface {
-	Get(ctx context.Context, params ...string) (interface{}, error)
-	Set(ctx context.Context, params ...string) (interface{}, error)
-	Subscribe(ctx context.Context, params ...string) error
-}
-
 // YANGConsumer is a auxillary type to redirect the response
 // of an RESTCONF call to a ygot YANG unmarshaler
 type YANGConsumer struct {