From dbee28263b790fd415b72394e5651890a2c8b3d2 Mon Sep 17 00:00:00 2001 From: moloch-- <875022+moloch--@users.noreply.github.com> Date: Sat, 15 Oct 2022 13:08:16 -0700 Subject: [PATCH] Refactor to support tracking builder state --- protobuf/clientpb/client.pb.go | 321 ++++-- protobuf/clientpb/client.proto | 16 +- protobuf/rpcpb/services.pb.go | 1489 ++++++++++++++-------------- protobuf/rpcpb/services.proto | 5 + protobuf/rpcpb/services_grpc.pb.go | 105 +- server/builder/builder.go | 37 +- server/cli/builder.go | 27 +- server/core/builders.go | 55 + server/core/tunnels.go | 2 +- server/rpc/rpc-events.go | 4 +- server/rpc/rpc-generate.go | 57 ++ util/generics.go | 10 + 12 files changed, 1274 insertions(+), 854 deletions(-) create mode 100644 server/core/builders.go create mode 100644 util/generics.go diff --git a/protobuf/clientpb/client.pb.go b/protobuf/clientpb/client.pb.go index 0d704c4a06..0ed199d262 100644 --- a/protobuf/clientpb/client.pb.go +++ b/protobuf/clientpb/client.pb.go @@ -5962,6 +5962,141 @@ func (x *ShellcodeEncoderMap) GetEncoders() map[string]ShellcodeEncoder { return nil } +// [ Builder ] ---------------------------------------- +type Builders struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Builders []*Builder `protobuf:"bytes,1,rep,name=Builders,proto3" json:"Builders,omitempty"` +} + +func (x *Builders) Reset() { + *x = Builders{} + if protoimpl.UnsafeEnabled { + mi := &file_clientpb_client_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Builders) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Builders) ProtoMessage() {} + +func (x *Builders) ProtoReflect() protoreflect.Message { + mi := &file_clientpb_client_proto_msgTypes[78] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Builders.ProtoReflect.Descriptor instead. +func (*Builders) Descriptor() ([]byte, []int) { + return file_clientpb_client_proto_rawDescGZIP(), []int{78} +} + +func (x *Builders) GetBuilders() []*Builder { + if x != nil { + return x.Builders + } + return nil +} + +type Builder struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=Name,proto3" json:"Name,omitempty"` + OperatorName string `protobuf:"bytes,2,opt,name=OperatorName,proto3" json:"OperatorName,omitempty"` + GOOSs []string `protobuf:"bytes,3,rep,name=GOOSs,proto3" json:"GOOSs,omitempty"` + GOARCHs []string `protobuf:"bytes,4,rep,name=GOARCHs,proto3" json:"GOARCHs,omitempty"` + Formats []OutputFormat `protobuf:"varint,5,rep,packed,name=Formats,proto3,enum=clientpb.OutputFormat" json:"Formats,omitempty"` + Templates []string `protobuf:"bytes,6,rep,name=Templates,proto3" json:"Templates,omitempty"` +} + +func (x *Builder) Reset() { + *x = Builder{} + if protoimpl.UnsafeEnabled { + mi := &file_clientpb_client_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Builder) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Builder) ProtoMessage() {} + +func (x *Builder) ProtoReflect() protoreflect.Message { + mi := &file_clientpb_client_proto_msgTypes[79] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Builder.ProtoReflect.Descriptor instead. +func (*Builder) Descriptor() ([]byte, []int) { + return file_clientpb_client_proto_rawDescGZIP(), []int{79} +} + +func (x *Builder) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Builder) GetOperatorName() string { + if x != nil { + return x.OperatorName + } + return "" +} + +func (x *Builder) GetGOOSs() []string { + if x != nil { + return x.GOOSs + } + return nil +} + +func (x *Builder) GetGOARCHs() []string { + if x != nil { + return x.GOARCHs + } + return nil +} + +func (x *Builder) GetFormats() []OutputFormat { + if x != nil { + return x.Formats + } + return nil +} + +func (x *Builder) GetTemplates() []string { + if x != nil { + return x.Templates + } + return nil +} + var File_clientpb_client_proto protoreflect.FileDescriptor var file_clientpb_client_proto_rawDesc = []byte{ @@ -6698,34 +6833,50 @@ var file_clientpb_client_proto_rawDesc = []byte{ 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, - 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x2a, 0x5b, - 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0e, - 0x0a, 0x0a, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x42, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, - 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x48, - 0x49, 0x52, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x10, 0x04, 0x2a, 0x2d, 0x0a, 0x0d, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x07, 0x0a, 0x03, - 0x54, 0x43, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, - 0x09, 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 0x53, 0x10, 0x02, 0x2a, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, - 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4f, 0x54, 0x5f, 0x46, - 0x49, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x4f, 0x54, 0x5f, 0x43, 0x52, - 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x2a, 0x4d, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, - 0x4e, 0x4f, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x00, 0x12, - 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, - 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x02, 0x12, - 0x08, 0x0a, 0x04, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x2d, 0x0a, 0x08, 0x46, 0x69, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x45, - 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x2a, 0x30, 0x0a, 0x10, 0x53, 0x68, 0x65, 0x6c, - 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x08, 0x0a, 0x04, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x48, 0x49, 0x4b, 0x41, 0x54, - 0x41, 0x5f, 0x47, 0x41, 0x5f, 0x4e, 0x41, 0x49, 0x10, 0x01, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x69, 0x73, 0x68, 0x6f, 0x70, 0x66, - 0x6f, 0x78, 0x2f, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x64, 0x65, 0x72, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x39, + 0x0a, 0x08, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, + 0x08, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x07, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x47, 0x4f, 0x4f, 0x53, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x47, 0x4f, + 0x4f, 0x53, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x4f, 0x41, 0x52, 0x43, 0x48, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x47, 0x4f, 0x41, 0x52, 0x43, 0x48, 0x73, 0x12, 0x30, 0x0a, + 0x07, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x07, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x09, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2a, 0x5b, 0x0a, + 0x0c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0e, 0x0a, + 0x0a, 0x53, 0x48, 0x41, 0x52, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x42, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x53, 0x48, 0x45, 0x4c, 0x4c, 0x43, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, + 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x48, 0x49, + 0x52, 0x44, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x59, 0x10, 0x04, 0x2a, 0x2d, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x07, 0x0a, 0x03, 0x54, + 0x43, 0x50, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x54, 0x50, 0x10, 0x01, 0x12, 0x09, + 0x0a, 0x05, 0x48, 0x54, 0x54, 0x50, 0x53, 0x10, 0x02, 0x2a, 0x2e, 0x0a, 0x08, 0x4c, 0x6f, 0x6f, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4f, 0x54, 0x5f, 0x46, 0x49, + 0x4c, 0x45, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x4f, 0x54, 0x5f, 0x43, 0x52, 0x45, + 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x2a, 0x4d, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4e, + 0x4f, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x11, + 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x57, 0x4f, 0x52, 0x44, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x50, 0x49, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x02, 0x12, 0x08, + 0x0a, 0x04, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x03, 0x2a, 0x2d, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, + 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x54, 0x45, 0x58, 0x54, 0x10, 0x02, 0x2a, 0x30, 0x0a, 0x10, 0x53, 0x68, 0x65, 0x6c, 0x6c, + 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, + 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x48, 0x49, 0x4b, 0x41, 0x54, 0x41, + 0x5f, 0x47, 0x41, 0x5f, 0x4e, 0x41, 0x49, 0x10, 0x01, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x69, 0x73, 0x68, 0x6f, 0x70, 0x66, 0x6f, + 0x78, 0x2f, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -6741,7 +6892,7 @@ func file_clientpb_client_proto_rawDescGZIP() []byte { } var file_clientpb_client_proto_enumTypes = make([]protoimpl.EnumInfo, 6) -var file_clientpb_client_proto_msgTypes = make([]protoimpl.MessageInfo, 83) +var file_clientpb_client_proto_msgTypes = make([]protoimpl.MessageInfo, 85) var file_clientpb_client_proto_goTypes = []interface{}{ (OutputFormat)(0), // 0: clientpb.OutputFormat (StageProtocol)(0), // 1: clientpb.StageProtocol @@ -6827,14 +6978,16 @@ var file_clientpb_client_proto_goTypes = []interface{}{ (*ShellcodeEncodeReq)(nil), // 81: clientpb.ShellcodeEncodeReq (*ShellcodeEncode)(nil), // 82: clientpb.ShellcodeEncode (*ShellcodeEncoderMap)(nil), // 83: clientpb.ShellcodeEncoderMap - nil, // 84: clientpb.ImplantBuilds.ConfigsEntry - nil, // 85: clientpb.WebsiteAddContent.ContentsEntry - nil, // 86: clientpb.Website.ContentsEntry - nil, // 87: clientpb.Host.ExtensionDataEntry - nil, // 88: clientpb.ShellcodeEncoderMap.EncodersEntry - (*commonpb.File)(nil), // 89: commonpb.File - (*commonpb.Request)(nil), // 90: commonpb.Request - (*commonpb.Response)(nil), // 91: commonpb.Response + (*Builders)(nil), // 84: clientpb.Builders + (*Builder)(nil), // 85: clientpb.Builder + nil, // 86: clientpb.ImplantBuilds.ConfigsEntry + nil, // 87: clientpb.WebsiteAddContent.ContentsEntry + nil, // 88: clientpb.Website.ContentsEntry + nil, // 89: clientpb.Host.ExtensionDataEntry + nil, // 90: clientpb.ShellcodeEncoderMap.EncodersEntry + (*commonpb.File)(nil), // 91: commonpb.File + (*commonpb.Request)(nil), // 92: commonpb.Request + (*commonpb.Response)(nil), // 93: commonpb.Response } var file_clientpb_client_proto_depIdxs = []int32{ 8, // 0: clientpb.Beacons.Beacons:type_name -> clientpb.Beacon @@ -6842,8 +6995,8 @@ var file_clientpb_client_proto_depIdxs = []int32{ 12, // 2: clientpb.ImplantConfig.C2:type_name -> clientpb.ImplantC2 0, // 3: clientpb.ImplantConfig.Format:type_name -> clientpb.OutputFormat 13, // 4: clientpb.ExternalImplantConfig.Config:type_name -> clientpb.ImplantConfig - 89, // 5: clientpb.ExternalImplantBinary.File:type_name -> commonpb.File - 84, // 6: clientpb.ImplantBuilds.Configs:type_name -> clientpb.ImplantBuilds.ConfigsEntry + 91, // 5: clientpb.ExternalImplantBinary.File:type_name -> commonpb.File + 86, // 6: clientpb.ImplantBuilds.Configs:type_name -> clientpb.ImplantBuilds.ConfigsEntry 0, // 7: clientpb.CompilerTarget.Format:type_name -> clientpb.OutputFormat 17, // 8: clientpb.Compiler.Targets:type_name -> clientpb.CompilerTarget 18, // 9: clientpb.Compiler.CrossCompilers:type_name -> clientpb.CrossCompiler @@ -6852,25 +7005,25 @@ var file_clientpb_client_proto_depIdxs = []int32{ 13, // 12: clientpb.ImplantProfile.Config:type_name -> clientpb.ImplantConfig 24, // 13: clientpb.ImplantProfiles.Profiles:type_name -> clientpb.ImplantProfile 27, // 14: clientpb.Jobs.Active:type_name -> clientpb.Job - 90, // 15: clientpb.NamedPipesReq.Request:type_name -> commonpb.Request - 91, // 16: clientpb.NamedPipes.Response:type_name -> commonpb.Response - 90, // 17: clientpb.TCPPivotReq.Request:type_name -> commonpb.Request - 91, // 18: clientpb.TCPPivot.Response:type_name -> commonpb.Response + 92, // 15: clientpb.NamedPipesReq.Request:type_name -> commonpb.Request + 93, // 16: clientpb.NamedPipes.Response:type_name -> commonpb.Response + 92, // 17: clientpb.TCPPivotReq.Request:type_name -> commonpb.Request + 93, // 18: clientpb.TCPPivot.Response:type_name -> commonpb.Response 7, // 19: clientpb.Sessions.Sessions:type_name -> clientpb.Session 13, // 20: clientpb.GenerateReq.Config:type_name -> clientpb.ImplantConfig - 89, // 21: clientpb.Generate.File:type_name -> commonpb.File - 90, // 22: clientpb.MSFReq.Request:type_name -> commonpb.Request - 90, // 23: clientpb.MSFRemoteReq.Request:type_name -> commonpb.Request + 91, // 21: clientpb.Generate.File:type_name -> commonpb.File + 92, // 22: clientpb.MSFReq.Request:type_name -> commonpb.Request + 92, // 23: clientpb.MSFRemoteReq.Request:type_name -> commonpb.Request 1, // 24: clientpb.StagerListenerReq.Protocol:type_name -> clientpb.StageProtocol 1, // 25: clientpb.MsfStagerReq.Protocol:type_name -> clientpb.StageProtocol - 89, // 26: clientpb.MsfStager.File:type_name -> commonpb.File + 91, // 26: clientpb.MsfStager.File:type_name -> commonpb.File 13, // 27: clientpb.GetSystemReq.Config:type_name -> clientpb.ImplantConfig - 90, // 28: clientpb.GetSystemReq.Request:type_name -> commonpb.Request + 92, // 28: clientpb.GetSystemReq.Request:type_name -> commonpb.Request 13, // 29: clientpb.MigrateReq.Config:type_name -> clientpb.ImplantConfig 5, // 30: clientpb.MigrateReq.Encoder:type_name -> clientpb.ShellcodeEncoder - 90, // 31: clientpb.MigrateReq.Request:type_name -> commonpb.Request - 90, // 32: clientpb.CreateTunnelReq.Request:type_name -> commonpb.Request - 90, // 33: clientpb.CloseTunnelReq.Request:type_name -> commonpb.Request + 92, // 31: clientpb.MigrateReq.Request:type_name -> commonpb.Request + 92, // 32: clientpb.CreateTunnelReq.Request:type_name -> commonpb.Request + 92, // 33: clientpb.CloseTunnelReq.Request:type_name -> commonpb.Request 7, // 34: clientpb.PivotGraphEntry.Session:type_name -> clientpb.Session 60, // 35: clientpb.PivotGraphEntry.Children:type_name -> clientpb.PivotGraphEntry 60, // 36: clientpb.PivotGraph.Children:type_name -> clientpb.PivotGraphEntry @@ -6879,34 +7032,36 @@ var file_clientpb_client_proto_depIdxs = []int32{ 27, // 39: clientpb.Event.Job:type_name -> clientpb.Job 62, // 40: clientpb.Event.Client:type_name -> clientpb.Client 65, // 41: clientpb.Operators.Operators:type_name -> clientpb.Operator - 85, // 42: clientpb.WebsiteAddContent.Contents:type_name -> clientpb.WebsiteAddContent.ContentsEntry - 86, // 43: clientpb.Website.Contents:type_name -> clientpb.Website.ContentsEntry + 87, // 42: clientpb.WebsiteAddContent.Contents:type_name -> clientpb.WebsiteAddContent.ContentsEntry + 88, // 43: clientpb.Website.Contents:type_name -> clientpb.Website.ContentsEntry 69, // 44: clientpb.Websites.Websites:type_name -> clientpb.Website 2, // 45: clientpb.Loot.Type:type_name -> clientpb.LootType 3, // 46: clientpb.Loot.CredentialType:type_name -> clientpb.CredentialType 72, // 47: clientpb.Loot.Credential:type_name -> clientpb.Credential 4, // 48: clientpb.Loot.FileType:type_name -> clientpb.FileType - 89, // 49: clientpb.Loot.File:type_name -> commonpb.File + 91, // 49: clientpb.Loot.File:type_name -> commonpb.File 73, // 50: clientpb.AllLoot.Loot:type_name -> clientpb.Loot 75, // 51: clientpb.Host.IOCs:type_name -> clientpb.IOC - 87, // 52: clientpb.Host.ExtensionData:type_name -> clientpb.Host.ExtensionDataEntry + 89, // 52: clientpb.Host.ExtensionData:type_name -> clientpb.Host.ExtensionDataEntry 77, // 53: clientpb.AllHosts.Hosts:type_name -> clientpb.Host - 90, // 54: clientpb.DllHijackReq.Request:type_name -> commonpb.Request - 91, // 55: clientpb.DllHijack.Response:type_name -> commonpb.Response + 92, // 54: clientpb.DllHijackReq.Request:type_name -> commonpb.Request + 93, // 55: clientpb.DllHijack.Response:type_name -> commonpb.Response 5, // 56: clientpb.ShellcodeEncodeReq.Encoder:type_name -> clientpb.ShellcodeEncoder - 90, // 57: clientpb.ShellcodeEncodeReq.Request:type_name -> commonpb.Request - 91, // 58: clientpb.ShellcodeEncode.Response:type_name -> commonpb.Response - 88, // 59: clientpb.ShellcodeEncoderMap.Encoders:type_name -> clientpb.ShellcodeEncoderMap.EncodersEntry - 13, // 60: clientpb.ImplantBuilds.ConfigsEntry.value:type_name -> clientpb.ImplantConfig - 66, // 61: clientpb.WebsiteAddContent.ContentsEntry.value:type_name -> clientpb.WebContent - 66, // 62: clientpb.Website.ContentsEntry.value:type_name -> clientpb.WebContent - 76, // 63: clientpb.Host.ExtensionDataEntry.value:type_name -> clientpb.ExtensionData - 5, // 64: clientpb.ShellcodeEncoderMap.EncodersEntry.value:type_name -> clientpb.ShellcodeEncoder - 65, // [65:65] is the sub-list for method output_type - 65, // [65:65] is the sub-list for method input_type - 65, // [65:65] is the sub-list for extension type_name - 65, // [65:65] is the sub-list for extension extendee - 0, // [0:65] is the sub-list for field type_name + 92, // 57: clientpb.ShellcodeEncodeReq.Request:type_name -> commonpb.Request + 93, // 58: clientpb.ShellcodeEncode.Response:type_name -> commonpb.Response + 90, // 59: clientpb.ShellcodeEncoderMap.Encoders:type_name -> clientpb.ShellcodeEncoderMap.EncodersEntry + 85, // 60: clientpb.Builders.Builders:type_name -> clientpb.Builder + 0, // 61: clientpb.Builder.Formats:type_name -> clientpb.OutputFormat + 13, // 62: clientpb.ImplantBuilds.ConfigsEntry.value:type_name -> clientpb.ImplantConfig + 66, // 63: clientpb.WebsiteAddContent.ContentsEntry.value:type_name -> clientpb.WebContent + 66, // 64: clientpb.Website.ContentsEntry.value:type_name -> clientpb.WebContent + 76, // 65: clientpb.Host.ExtensionDataEntry.value:type_name -> clientpb.ExtensionData + 5, // 66: clientpb.ShellcodeEncoderMap.EncodersEntry.value:type_name -> clientpb.ShellcodeEncoder + 67, // [67:67] is the sub-list for method output_type + 67, // [67:67] is the sub-list for method input_type + 67, // [67:67] is the sub-list for extension type_name + 67, // [67:67] is the sub-list for extension extendee + 0, // [0:67] is the sub-list for field type_name } func init() { file_clientpb_client_proto_init() } @@ -7851,6 +8006,30 @@ func file_clientpb_client_proto_init() { return nil } } + file_clientpb_client_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Builders); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_clientpb_client_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Builder); 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{ @@ -7858,7 +8037,7 @@ func file_clientpb_client_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_clientpb_client_proto_rawDesc, NumEnums: 6, - NumMessages: 83, + NumMessages: 85, NumExtensions: 0, NumServices: 0, }, diff --git a/protobuf/clientpb/client.proto b/protobuf/clientpb/client.proto index 4ab4e8e9da..199b4b4e82 100644 --- a/protobuf/clientpb/client.proto +++ b/protobuf/clientpb/client.proto @@ -668,4 +668,18 @@ message ShellcodeEncode { message ShellcodeEncoderMap { map Encoders = 1; -} \ No newline at end of file +} + +// [ Builder ] ---------------------------------------- +message Builders { + repeated Builder Builders = 1; +} + +message Builder { + string Name = 1; + string OperatorName = 2; + repeated string GOOSs = 3; + repeated string GOARCHs = 4; + repeated OutputFormat Formats = 5; + repeated string Templates = 6; +} diff --git a/protobuf/rpcpb/services.pb.go b/protobuf/rpcpb/services.pb.go index ea31b046e1..e6f39e1c5b 100644 --- a/protobuf/rpcpb/services.pb.go +++ b/protobuf/rpcpb/services.pb.go @@ -31,7 +31,7 @@ var file_rpcpb_services_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2f, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x32, 0xe4, 0x3c, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43, + 0x74, 0x6f, 0x32, 0xce, 0x3d, 0x0a, 0x09, 0x53, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x52, 0x50, 0x43, 0x12, 0x30, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, @@ -164,363 +164,370 @@ var file_rpcpb_services_proto_rawDesc = []byte{ 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x1f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x39, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x12, 0x17, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, - 0x0d, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x0f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x17, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, - 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x13, - 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x69, 0x65, 0x73, - 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, - 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x57, 0x47, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x10, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x50, 0x12, 0x0f, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, - 0x65, 0x57, 0x47, 0x49, 0x50, 0x12, 0x3d, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, - 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x13, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x48, 0x0a, 0x12, 0x53, 0x61, 0x76, 0x65, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, - 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x08, - 0x4d, 0x73, 0x66, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x73, 0x66, 0x53, 0x74, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x73, 0x66, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x0c, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, - 0x64, 0x65, 0x52, 0x44, 0x49, 0x12, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x44, 0x49, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, - 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x44, 0x49, 0x12, 0x32, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x69, 0x67, 0x12, 0x37, 0x0a, 0x0f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x52, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x2f, 0x0a, 0x08, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x10, - 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, - 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, - 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, - 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, - 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x13, 0x53, 0x68, 0x65, - 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x70, - 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, - 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x70, - 0x12, 0x2f, 0x0a, 0x08, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, + 0x74, 0x70, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x0a, + 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x49, 0x6d, 0x70, 0x6c, 0x61, + 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x73, 0x12, 0x3a, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x70, 0x6c, + 0x61, 0x6e, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, + 0x0a, 0x08, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x43, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x57, 0x47, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x18, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x50, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x57, 0x47, 0x49, 0x50, 0x12, + 0x3d, 0x0a, 0x0f, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, + 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x3c, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x48, 0x0a, 0x12, + 0x53, 0x61, 0x76, 0x65, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, + 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x18, 0x2e, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x4d, 0x73, 0x66, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x73, + 0x66, 0x53, 0x74, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x73, 0x66, 0x53, 0x74, 0x61, 0x67, 0x65, 0x72, 0x12, + 0x41, 0x0a, 0x0c, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x44, 0x49, 0x12, + 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, + 0x63, 0x6f, 0x64, 0x65, 0x52, 0x44, 0x49, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x52, + 0x44, 0x49, 0x12, 0x32, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, + 0x72, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x43, 0x6f, + 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x10, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, + 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x13, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1d, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x63, 0x6f, 0x64, 0x65, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x2f, 0x0a, 0x08, 0x57, 0x65, + 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, + 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x12, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x57, + 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x0d, + 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, - 0x73, 0x12, 0x2f, 0x0a, 0x07, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x1a, - 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, - 0x74, 0x65, 0x12, 0x33, 0x0a, 0x0d, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x12, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, - 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, - 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x73, 0x69, - 0x74, 0x65, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x41, - 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x14, - 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, - 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, - 0x73, 0x69, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, - 0x26, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x02, 0x50, 0x73, 0x12, 0x0f, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0c, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x73, 0x12, 0x38, 0x0a, 0x09, - 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x72, - 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x49, 0x66, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x66, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x66, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, - 0x07, 0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x11, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, - 0x74, 0x12, 0x23, 0x0a, 0x02, 0x4c, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x12, 0x24, 0x0a, 0x02, 0x43, 0x64, 0x12, 0x0f, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x77, 0x64, 0x12, 0x26, 0x0a, 0x03, - 0x50, 0x77, 0x64, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, - 0x77, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x50, 0x77, 0x64, 0x12, 0x23, 0x0a, 0x02, 0x4d, 0x76, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x76, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x76, 0x12, 0x23, 0x0a, 0x02, 0x52, 0x6d, 0x12, - 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x6d, 0x52, 0x65, 0x71, - 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x6d, 0x12, 0x2c, - 0x0a, 0x05, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x35, 0x0a, 0x08, - 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, - 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x0a, 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, - 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, - 0x75, 0x6d, 0x70, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, - 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x43, 0x0a, 0x11, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x41, 0x64, 0x64, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, + 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1b, + 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, + 0x65, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x49, + 0x0a, 0x14, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x1a, 0x11, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x2e, 0x57, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x04, 0x50, 0x69, 0x6e, + 0x67, 0x12, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x6e, + 0x67, 0x12, 0x23, 0x0a, 0x02, 0x50, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x50, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x50, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, + 0x12, 0x35, 0x0a, 0x08, 0x49, 0x66, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x66, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, + 0x66, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x73, 0x74, + 0x61, 0x74, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4e, 0x65, + 0x74, 0x73, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x74, 0x73, 0x74, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x02, 0x4c, + 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x73, + 0x12, 0x24, 0x0a, 0x02, 0x43, 0x64, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x43, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x0d, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x50, 0x77, 0x64, 0x12, 0x26, 0x0a, 0x03, 0x50, 0x77, 0x64, 0x12, 0x10, 0x2e, + 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x77, 0x64, 0x52, 0x65, 0x71, 0x1a, + 0x0d, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x77, 0x64, 0x12, 0x23, + 0x0a, 0x02, 0x4d, 0x76, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x4d, 0x76, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x4d, 0x76, 0x12, 0x23, 0x0a, 0x02, 0x52, 0x6d, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x0c, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x6d, 0x12, 0x2c, 0x0a, 0x05, 0x4d, 0x6b, 0x64, 0x69, + 0x72, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x6b, 0x64, + 0x69, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x35, 0x0a, 0x08, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x2f, 0x0a, + 0x06, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3e, + 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, - 0x44, 0x75, 0x6d, 0x70, 0x12, 0x2c, 0x0a, 0x05, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x12, 0x12, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x75, 0x6e, - 0x41, 0x73, 0x12, 0x3e, 0x0a, 0x0b, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, - 0x65, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, + 0x44, 0x75, 0x6d, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x44, 0x75, 0x6d, 0x70, 0x12, 0x2c, + 0x0a, 0x05, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x75, 0x6e, 0x41, 0x73, 0x12, 0x3e, 0x0a, 0x0b, + 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, - 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x52, 0x65, 0x76, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, - 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, 0x54, 0x6f, - 0x53, 0x65, 0x6c, 0x66, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x38, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, - 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x29, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, - 0x71, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, - 0x6b, 0x12, 0x27, 0x0a, 0x03, 0x4d, 0x73, 0x66, 0x12, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x53, 0x46, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x0a, 0x09, 0x4d, 0x73, - 0x66, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x70, 0x62, 0x2e, 0x4d, 0x53, 0x46, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, - 0x4a, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, - 0x6c, 0x79, 0x12, 0x1c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x12, 0x32, 0x0a, 0x07, 0x4d, - 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, - 0x32, 0x0a, 0x07, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x57, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x53, 0x69, 0x64, 0x65, 0x6c, 0x6f, 0x61, - 0x64, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x64, - 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3b, 0x0a, 0x08, - 0x53, 0x70, 0x61, 0x77, 0x6e, 0x44, 0x6c, 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x44, - 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x44, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x63, 0x72, - 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x65, - 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x50, 0x0a, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x12, 0x50, 0x69, 0x76, 0x6f, - 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1f, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, - 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x50, 0x69, 0x76, 0x6f, - 0x74, 0x53, 0x74, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, - 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4e, - 0x0a, 0x15, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, - 0x50, 0x69, 0x76, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x33, - 0x0a, 0x0a, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x0f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x47, 0x72, - 0x61, 0x70, 0x68, 0x12, 0x40, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3e, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, - 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x09, 0x4d, 0x61, 0x6b, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x10, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x76, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x76, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x06, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x13, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x52, 0x65, - 0x71, 0x1a, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x12, 0x35, 0x0a, 0x08, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, - 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, - 0x45, 0x6e, 0x76, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x35, 0x0a, 0x08, 0x42, 0x61, - 0x63, 0x6b, 0x64, 0x6f, 0x6f, 0x72, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x64, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x64, 0x6f, 0x6f, - 0x72, 0x12, 0x41, 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x61, - 0x64, 0x12, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x52, 0x65, 0x61, 0x64, 0x12, 0x44, 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, - 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, - 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x11, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, - 0x79, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, - 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x54, - 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, - 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, - 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x52, 0x75, 0x6e, - 0x53, 0x53, 0x48, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x53, 0x48, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, - 0x53, 0x48, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x48, 0x69, 0x6a, - 0x61, 0x63, 0x6b, 0x44, 0x4c, 0x4c, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x44, 0x6c, 0x6c, 0x48, 0x69, 0x6a, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x13, - 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x44, 0x6c, 0x6c, 0x48, 0x69, 0x6a, - 0x61, 0x63, 0x6b, 0x12, 0x35, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x73, 0x12, - 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x69, 0x76, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, - 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, - 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, - 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, - 0x12, 0x21, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, - 0x74, 0x46, 0x77, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, - 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, - 0x3b, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x15, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0c, - 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, - 0x72, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, - 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, - 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x12, 0x57, 0x47, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x73, - 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x4c, 0x0a, 0x11, 0x57, 0x47, 0x53, 0x74, 0x6f, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x3c, 0x0a, 0x0c, 0x57, 0x47, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, - 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, - 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, - 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x0b, 0x57, 0x47, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x63, 0x6b, - 0x73, 0x12, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, - 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x4b, - 0x0a, 0x10, 0x57, 0x47, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, - 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, - 0x54, 0x43, 0x50, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x54, 0x43, - 0x50, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x57, - 0x47, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, - 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x09, + 0x52, 0x65, 0x76, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x52, 0x65, + 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x76, + 0x54, 0x6f, 0x53, 0x65, 0x6c, 0x66, 0x12, 0x38, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x12, 0x29, 0x0a, 0x04, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x03, 0x4d, + 0x73, 0x66, 0x12, 0x10, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x53, + 0x46, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x54, 0x61, 0x73, 0x6b, 0x12, 0x33, 0x0a, 0x09, 0x4d, 0x73, 0x66, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x53, 0x46, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0e, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x4a, 0x0a, 0x0f, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x12, 0x1c, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x12, 0x32, 0x0a, 0x07, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4d, 0x69, 0x67, 0x72, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x4d, 0x69, 0x67, 0x72, 0x61, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, 0x40, 0x0a, + 0x0e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x12, + 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x65, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x12, + 0x35, 0x0a, 0x08, 0x53, 0x69, 0x64, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x15, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x69, 0x64, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x52, + 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x69, + 0x64, 0x65, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x44, + 0x6c, 0x6c, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x49, 0x6e, + 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x70, 0x61, 0x77, 0x6e, 0x44, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, + 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x70, 0x61, 0x77, 0x6e, + 0x44, 0x6c, 0x6c, 0x12, 0x3b, 0x0a, 0x0a, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, + 0x74, 0x12, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x50, 0x0a, 0x11, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x12, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, + 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x65, 0x72, 0x12, 0x44, 0x0a, 0x11, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4e, 0x0a, 0x15, 0x50, 0x69, 0x76, 0x6f, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, + 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, + 0x6f, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x33, 0x0a, 0x0a, 0x50, 0x69, 0x76, 0x6f, + 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, + 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x14, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x70, 0x62, 0x2e, 0x50, 0x69, 0x76, 0x6f, 0x74, 0x47, 0x72, 0x61, 0x70, 0x68, 0x12, 0x40, 0x0a, + 0x0c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x19, 0x2e, + 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x3e, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x18, + 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x42, 0x0a, 0x0d, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x09, 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6b, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x4d, 0x61, 0x6b, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2d, 0x0a, + 0x06, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x76, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x45, 0x6e, 0x76, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x06, + 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x35, 0x0a, + 0x08, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x73, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x55, 0x6e, 0x73, 0x65, + 0x74, 0x45, 0x6e, 0x76, 0x12, 0x35, 0x0a, 0x08, 0x42, 0x61, 0x63, 0x6b, 0x64, 0x6f, 0x6f, 0x72, + 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x42, 0x61, 0x63, 0x6b, + 0x64, 0x6f, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x64, 0x6f, 0x6f, 0x72, 0x12, 0x41, 0x0a, 0x0c, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x61, 0x64, 0x12, 0x19, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, + 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x61, 0x64, 0x12, 0x44, + 0x0a, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x12, + 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x57, + 0x72, 0x69, 0x74, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x54, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x1f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x53, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x79, 0x53, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x53, + 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x53, 0x53, 0x48, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x53, 0x53, 0x48, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, + 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x53, 0x48, 0x43, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x48, 0x69, 0x6a, 0x61, 0x63, 0x6b, 0x44, 0x4c, 0x4c, + 0x12, 0x16, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x44, 0x6c, 0x6c, 0x48, + 0x69, 0x6a, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x70, 0x62, 0x2e, 0x44, 0x6c, 0x6c, 0x48, 0x69, 0x6a, 0x61, 0x63, 0x6b, 0x12, 0x35, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x73, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x69, 0x76, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x69, 0x76, 0x73, 0x12, 0x57, 0x0a, 0x15, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x22, 0x2e, + 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, + 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x53, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, + 0x72, 0x73, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, + 0x77, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, 0x64, 0x53, 0x74, + 0x6f, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, + 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x52, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x77, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, + 0x15, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x0f, + 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x50, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x44, 0x0a, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x1a, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x61, + 0x6c, 0x6c, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x4e, 0x0a, 0x12, 0x57, 0x47, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, + 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x70, 0x62, 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x4c, 0x0a, 0x11, 0x57, 0x47, 0x53, 0x74, 0x6f, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1e, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, + 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x57, 0x47, 0x50, 0x6f, 0x72, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x3c, + 0x0a, 0x0c, 0x57, 0x47, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x19, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, - 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, - 0x6c, 0x12, 0x12, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, - 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, - 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x32, 0x0a, 0x07, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x77, - 0x64, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x72, - 0x74, 0x66, 0x77, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x77, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2e, 0x0a, 0x0a, 0x43, - 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x53, - 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x13, - 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x44, - 0x61, 0x74, 0x61, 0x28, 0x01, 0x30, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, - 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, - 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x0b, 0x43, - 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, - 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x0f, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, - 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x73, 0x6c, + 0x73, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x3a, 0x0a, 0x0b, + 0x57, 0x47, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x18, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x74, + 0x6f, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x4b, 0x0a, 0x10, 0x57, 0x47, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x73, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x54, 0x43, 0x50, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x73, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x54, 0x43, 0x50, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x12, 0x57, 0x47, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1b, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x57, 0x47, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x05, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x12, 0x12, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x1a, + 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, + 0x12, 0x32, 0x0a, 0x07, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x77, 0x64, 0x12, 0x14, 0x2e, 0x73, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x66, 0x77, 0x64, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x50, 0x6f, 0x72, + 0x74, 0x66, 0x77, 0x64, 0x12, 0x2f, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6f, + 0x63, 0x6b, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, + 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x2e, 0x0a, 0x0a, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x53, 0x6f, + 0x63, 0x6b, 0x73, 0x12, 0x0f, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, + 0x6f, 0x63, 0x6b, 0x73, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x0a, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x72, + 0x6f, 0x78, 0x79, 0x12, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x53, + 0x6f, 0x63, 0x6b, 0x73, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x13, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x70, 0x62, 0x2e, 0x53, 0x6f, 0x63, 0x6b, 0x73, 0x44, 0x61, 0x74, 0x61, 0x28, 0x01, 0x30, + 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x1a, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, + 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x30, 0x0a, 0x0b, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x10, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x1a, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, + 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3c, 0x0a, 0x0a, 0x54, 0x75, 0x6e, 0x6e, 0x65, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, + 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, - 0x61, 0x1a, 0x14, 0x2e, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x70, 0x62, 0x2e, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x28, 0x01, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x69, 0x73, 0x68, 0x6f, 0x70, 0x66, 0x6f, - 0x78, 0x2f, 0x73, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x72, 0x70, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x28, 0x01, 0x30, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x70, 0x62, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x0f, 0x2e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x30, 0x01, 0x42, 0x2c, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x62, 0x69, 0x73, 0x68, 0x6f, 0x70, 0x66, 0x6f, 0x78, 0x2f, 0x73, 0x6c, 0x69, 0x76, + 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x72, 0x70, 0x63, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_rpcpb_services_proto_goTypes = []interface{}{ @@ -542,167 +549,169 @@ var file_rpcpb_services_proto_goTypes = []interface{}{ (*clientpb.GenerateReq)(nil), // 15: clientpb.GenerateReq (*clientpb.ExternalImplantBinary)(nil), // 16: clientpb.ExternalImplantBinary (*clientpb.ImplantConfig)(nil), // 17: clientpb.ImplantConfig - (*clientpb.RegenerateReq)(nil), // 18: clientpb.RegenerateReq - (*clientpb.DeleteReq)(nil), // 19: clientpb.DeleteReq - (*clientpb.ImplantProfile)(nil), // 20: clientpb.ImplantProfile - (*clientpb.MsfStagerReq)(nil), // 21: clientpb.MsfStagerReq - (*clientpb.ShellcodeRDIReq)(nil), // 22: clientpb.ShellcodeRDIReq - (*clientpb.ShellcodeEncodeReq)(nil), // 23: clientpb.ShellcodeEncodeReq - (*clientpb.Website)(nil), // 24: clientpb.Website - (*clientpb.WebsiteAddContent)(nil), // 25: clientpb.WebsiteAddContent - (*clientpb.WebsiteRemoveContent)(nil), // 26: clientpb.WebsiteRemoveContent - (*sliverpb.Ping)(nil), // 27: sliverpb.Ping - (*sliverpb.PsReq)(nil), // 28: sliverpb.PsReq - (*sliverpb.TerminateReq)(nil), // 29: sliverpb.TerminateReq - (*sliverpb.IfconfigReq)(nil), // 30: sliverpb.IfconfigReq - (*sliverpb.NetstatReq)(nil), // 31: sliverpb.NetstatReq - (*sliverpb.LsReq)(nil), // 32: sliverpb.LsReq - (*sliverpb.CdReq)(nil), // 33: sliverpb.CdReq - (*sliverpb.PwdReq)(nil), // 34: sliverpb.PwdReq - (*sliverpb.MvReq)(nil), // 35: sliverpb.MvReq - (*sliverpb.RmReq)(nil), // 36: sliverpb.RmReq - (*sliverpb.MkdirReq)(nil), // 37: sliverpb.MkdirReq - (*sliverpb.DownloadReq)(nil), // 38: sliverpb.DownloadReq - (*sliverpb.UploadReq)(nil), // 39: sliverpb.UploadReq - (*sliverpb.ProcessDumpReq)(nil), // 40: sliverpb.ProcessDumpReq - (*sliverpb.RunAsReq)(nil), // 41: sliverpb.RunAsReq - (*sliverpb.ImpersonateReq)(nil), // 42: sliverpb.ImpersonateReq - (*sliverpb.RevToSelfReq)(nil), // 43: sliverpb.RevToSelfReq - (*clientpb.GetSystemReq)(nil), // 44: clientpb.GetSystemReq - (*sliverpb.TaskReq)(nil), // 45: sliverpb.TaskReq - (*clientpb.MSFReq)(nil), // 46: clientpb.MSFReq - (*clientpb.MSFRemoteReq)(nil), // 47: clientpb.MSFRemoteReq - (*sliverpb.ExecuteAssemblyReq)(nil), // 48: sliverpb.ExecuteAssemblyReq - (*clientpb.MigrateReq)(nil), // 49: clientpb.MigrateReq - (*sliverpb.ExecuteReq)(nil), // 50: sliverpb.ExecuteReq - (*sliverpb.ExecuteWindowsReq)(nil), // 51: sliverpb.ExecuteWindowsReq - (*sliverpb.SideloadReq)(nil), // 52: sliverpb.SideloadReq - (*sliverpb.InvokeSpawnDllReq)(nil), // 53: sliverpb.InvokeSpawnDllReq - (*sliverpb.ScreenshotReq)(nil), // 54: sliverpb.ScreenshotReq - (*sliverpb.CurrentTokenOwnerReq)(nil), // 55: sliverpb.CurrentTokenOwnerReq - (*sliverpb.PivotStartListenerReq)(nil), // 56: sliverpb.PivotStartListenerReq - (*sliverpb.PivotStopListenerReq)(nil), // 57: sliverpb.PivotStopListenerReq - (*sliverpb.PivotListenersReq)(nil), // 58: sliverpb.PivotListenersReq - (*sliverpb.StartServiceReq)(nil), // 59: sliverpb.StartServiceReq - (*sliverpb.StopServiceReq)(nil), // 60: sliverpb.StopServiceReq - (*sliverpb.RemoveServiceReq)(nil), // 61: sliverpb.RemoveServiceReq - (*sliverpb.MakeTokenReq)(nil), // 62: sliverpb.MakeTokenReq - (*sliverpb.EnvReq)(nil), // 63: sliverpb.EnvReq - (*sliverpb.SetEnvReq)(nil), // 64: sliverpb.SetEnvReq - (*sliverpb.UnsetEnvReq)(nil), // 65: sliverpb.UnsetEnvReq - (*sliverpb.BackdoorReq)(nil), // 66: sliverpb.BackdoorReq - (*sliverpb.RegistryReadReq)(nil), // 67: sliverpb.RegistryReadReq - (*sliverpb.RegistryWriteReq)(nil), // 68: sliverpb.RegistryWriteReq - (*sliverpb.RegistryCreateKeyReq)(nil), // 69: sliverpb.RegistryCreateKeyReq - (*sliverpb.RegistryDeleteKeyReq)(nil), // 70: sliverpb.RegistryDeleteKeyReq - (*sliverpb.RegistrySubKeyListReq)(nil), // 71: sliverpb.RegistrySubKeyListReq - (*sliverpb.RegistryListValuesReq)(nil), // 72: sliverpb.RegistryListValuesReq - (*sliverpb.SSHCommandReq)(nil), // 73: sliverpb.SSHCommandReq - (*clientpb.DllHijackReq)(nil), // 74: clientpb.DllHijackReq - (*sliverpb.GetPrivsReq)(nil), // 75: sliverpb.GetPrivsReq - (*sliverpb.RportFwdStartListenerReq)(nil), // 76: sliverpb.RportFwdStartListenerReq - (*sliverpb.RportFwdListenersReq)(nil), // 77: sliverpb.RportFwdListenersReq - (*sliverpb.RportFwdStopListenerReq)(nil), // 78: sliverpb.RportFwdStopListenerReq - (*sliverpb.OpenSession)(nil), // 79: sliverpb.OpenSession - (*sliverpb.CloseSession)(nil), // 80: sliverpb.CloseSession - (*sliverpb.RegisterExtensionReq)(nil), // 81: sliverpb.RegisterExtensionReq - (*sliverpb.CallExtensionReq)(nil), // 82: sliverpb.CallExtensionReq - (*sliverpb.ListExtensionsReq)(nil), // 83: sliverpb.ListExtensionsReq - (*sliverpb.WGPortForwardStartReq)(nil), // 84: sliverpb.WGPortForwardStartReq - (*sliverpb.WGPortForwardStopReq)(nil), // 85: sliverpb.WGPortForwardStopReq - (*sliverpb.WGSocksStartReq)(nil), // 86: sliverpb.WGSocksStartReq - (*sliverpb.WGSocksStopReq)(nil), // 87: sliverpb.WGSocksStopReq - (*sliverpb.WGTCPForwardersReq)(nil), // 88: sliverpb.WGTCPForwardersReq - (*sliverpb.WGSocksServersReq)(nil), // 89: sliverpb.WGSocksServersReq - (*sliverpb.ShellReq)(nil), // 90: sliverpb.ShellReq - (*sliverpb.PortfwdReq)(nil), // 91: sliverpb.PortfwdReq - (*sliverpb.Socks)(nil), // 92: sliverpb.Socks - (*sliverpb.SocksData)(nil), // 93: sliverpb.SocksData - (*sliverpb.Tunnel)(nil), // 94: sliverpb.Tunnel - (*sliverpb.TunnelData)(nil), // 95: sliverpb.TunnelData - (*clientpb.Version)(nil), // 96: clientpb.Version - (*clientpb.Operators)(nil), // 97: clientpb.Operators - (*sliverpb.Reconfigure)(nil), // 98: sliverpb.Reconfigure - (*clientpb.Sessions)(nil), // 99: clientpb.Sessions - (*clientpb.Beacons)(nil), // 100: clientpb.Beacons - (*clientpb.BeaconTasks)(nil), // 101: clientpb.BeaconTasks - (*commonpb.Response)(nil), // 102: commonpb.Response - (*clientpb.Jobs)(nil), // 103: clientpb.Jobs - (*clientpb.KillJob)(nil), // 104: clientpb.KillJob - (*clientpb.MTLSListener)(nil), // 105: clientpb.MTLSListener - (*clientpb.WGListener)(nil), // 106: clientpb.WGListener - (*clientpb.DNSListener)(nil), // 107: clientpb.DNSListener - (*clientpb.HTTPListener)(nil), // 108: clientpb.HTTPListener - (*clientpb.StagerListener)(nil), // 109: clientpb.StagerListener - (*clientpb.AllLoot)(nil), // 110: clientpb.AllLoot - (*clientpb.AllHosts)(nil), // 111: clientpb.AllHosts - (*clientpb.Generate)(nil), // 112: clientpb.Generate - (*clientpb.ExternalImplantConfig)(nil), // 113: clientpb.ExternalImplantConfig - (*clientpb.ImplantBuilds)(nil), // 114: clientpb.ImplantBuilds - (*clientpb.Canaries)(nil), // 115: clientpb.Canaries - (*clientpb.WGClientConfig)(nil), // 116: clientpb.WGClientConfig - (*clientpb.UniqueWGIP)(nil), // 117: clientpb.UniqueWGIP - (*clientpb.ImplantProfiles)(nil), // 118: clientpb.ImplantProfiles - (*clientpb.MsfStager)(nil), // 119: clientpb.MsfStager - (*clientpb.ShellcodeRDI)(nil), // 120: clientpb.ShellcodeRDI - (*clientpb.Compiler)(nil), // 121: clientpb.Compiler - (*clientpb.ShellcodeEncode)(nil), // 122: clientpb.ShellcodeEncode - (*clientpb.ShellcodeEncoderMap)(nil), // 123: clientpb.ShellcodeEncoderMap - (*clientpb.Websites)(nil), // 124: clientpb.Websites - (*sliverpb.Ps)(nil), // 125: sliverpb.Ps - (*sliverpb.Terminate)(nil), // 126: sliverpb.Terminate - (*sliverpb.Ifconfig)(nil), // 127: sliverpb.Ifconfig - (*sliverpb.Netstat)(nil), // 128: sliverpb.Netstat - (*sliverpb.Ls)(nil), // 129: sliverpb.Ls - (*sliverpb.Pwd)(nil), // 130: sliverpb.Pwd - (*sliverpb.Mv)(nil), // 131: sliverpb.Mv - (*sliverpb.Rm)(nil), // 132: sliverpb.Rm - (*sliverpb.Mkdir)(nil), // 133: sliverpb.Mkdir - (*sliverpb.Download)(nil), // 134: sliverpb.Download - (*sliverpb.Upload)(nil), // 135: sliverpb.Upload - (*sliverpb.ProcessDump)(nil), // 136: sliverpb.ProcessDump - (*sliverpb.RunAs)(nil), // 137: sliverpb.RunAs - (*sliverpb.Impersonate)(nil), // 138: sliverpb.Impersonate - (*sliverpb.RevToSelf)(nil), // 139: sliverpb.RevToSelf - (*sliverpb.GetSystem)(nil), // 140: sliverpb.GetSystem - (*sliverpb.Task)(nil), // 141: sliverpb.Task - (*sliverpb.ExecuteAssembly)(nil), // 142: sliverpb.ExecuteAssembly - (*sliverpb.Migrate)(nil), // 143: sliverpb.Migrate - (*sliverpb.Execute)(nil), // 144: sliverpb.Execute - (*sliverpb.Sideload)(nil), // 145: sliverpb.Sideload - (*sliverpb.SpawnDll)(nil), // 146: sliverpb.SpawnDll - (*sliverpb.Screenshot)(nil), // 147: sliverpb.Screenshot - (*sliverpb.CurrentTokenOwner)(nil), // 148: sliverpb.CurrentTokenOwner - (*sliverpb.PivotListener)(nil), // 149: sliverpb.PivotListener - (*sliverpb.PivotListeners)(nil), // 150: sliverpb.PivotListeners - (*clientpb.PivotGraph)(nil), // 151: clientpb.PivotGraph - (*sliverpb.ServiceInfo)(nil), // 152: sliverpb.ServiceInfo - (*sliverpb.MakeToken)(nil), // 153: sliverpb.MakeToken - (*sliverpb.EnvInfo)(nil), // 154: sliverpb.EnvInfo - (*sliverpb.SetEnv)(nil), // 155: sliverpb.SetEnv - (*sliverpb.UnsetEnv)(nil), // 156: sliverpb.UnsetEnv - (*sliverpb.Backdoor)(nil), // 157: sliverpb.Backdoor - (*sliverpb.RegistryRead)(nil), // 158: sliverpb.RegistryRead - (*sliverpb.RegistryWrite)(nil), // 159: sliverpb.RegistryWrite - (*sliverpb.RegistryCreateKey)(nil), // 160: sliverpb.RegistryCreateKey - (*sliverpb.RegistryDeleteKey)(nil), // 161: sliverpb.RegistryDeleteKey - (*sliverpb.RegistrySubKeyList)(nil), // 162: sliverpb.RegistrySubKeyList - (*sliverpb.RegistryValuesList)(nil), // 163: sliverpb.RegistryValuesList - (*sliverpb.SSHCommand)(nil), // 164: sliverpb.SSHCommand - (*clientpb.DllHijack)(nil), // 165: clientpb.DllHijack - (*sliverpb.GetPrivs)(nil), // 166: sliverpb.GetPrivs - (*sliverpb.RportFwdListener)(nil), // 167: sliverpb.RportFwdListener - (*sliverpb.RportFwdListeners)(nil), // 168: sliverpb.RportFwdListeners - (*sliverpb.RegisterExtension)(nil), // 169: sliverpb.RegisterExtension - (*sliverpb.CallExtension)(nil), // 170: sliverpb.CallExtension - (*sliverpb.ListExtensions)(nil), // 171: sliverpb.ListExtensions - (*sliverpb.WGPortForward)(nil), // 172: sliverpb.WGPortForward - (*sliverpb.WGSocks)(nil), // 173: sliverpb.WGSocks - (*sliverpb.WGTCPForwarders)(nil), // 174: sliverpb.WGTCPForwarders - (*sliverpb.WGSocksServers)(nil), // 175: sliverpb.WGSocksServers - (*sliverpb.Shell)(nil), // 176: sliverpb.Shell - (*sliverpb.Portfwd)(nil), // 177: sliverpb.Portfwd - (*clientpb.Event)(nil), // 178: clientpb.Event + (*clientpb.Builder)(nil), // 18: clientpb.Builder + (*clientpb.RegenerateReq)(nil), // 19: clientpb.RegenerateReq + (*clientpb.DeleteReq)(nil), // 20: clientpb.DeleteReq + (*clientpb.ImplantProfile)(nil), // 21: clientpb.ImplantProfile + (*clientpb.MsfStagerReq)(nil), // 22: clientpb.MsfStagerReq + (*clientpb.ShellcodeRDIReq)(nil), // 23: clientpb.ShellcodeRDIReq + (*clientpb.ShellcodeEncodeReq)(nil), // 24: clientpb.ShellcodeEncodeReq + (*clientpb.Website)(nil), // 25: clientpb.Website + (*clientpb.WebsiteAddContent)(nil), // 26: clientpb.WebsiteAddContent + (*clientpb.WebsiteRemoveContent)(nil), // 27: clientpb.WebsiteRemoveContent + (*sliverpb.Ping)(nil), // 28: sliverpb.Ping + (*sliverpb.PsReq)(nil), // 29: sliverpb.PsReq + (*sliverpb.TerminateReq)(nil), // 30: sliverpb.TerminateReq + (*sliverpb.IfconfigReq)(nil), // 31: sliverpb.IfconfigReq + (*sliverpb.NetstatReq)(nil), // 32: sliverpb.NetstatReq + (*sliverpb.LsReq)(nil), // 33: sliverpb.LsReq + (*sliverpb.CdReq)(nil), // 34: sliverpb.CdReq + (*sliverpb.PwdReq)(nil), // 35: sliverpb.PwdReq + (*sliverpb.MvReq)(nil), // 36: sliverpb.MvReq + (*sliverpb.RmReq)(nil), // 37: sliverpb.RmReq + (*sliverpb.MkdirReq)(nil), // 38: sliverpb.MkdirReq + (*sliverpb.DownloadReq)(nil), // 39: sliverpb.DownloadReq + (*sliverpb.UploadReq)(nil), // 40: sliverpb.UploadReq + (*sliverpb.ProcessDumpReq)(nil), // 41: sliverpb.ProcessDumpReq + (*sliverpb.RunAsReq)(nil), // 42: sliverpb.RunAsReq + (*sliverpb.ImpersonateReq)(nil), // 43: sliverpb.ImpersonateReq + (*sliverpb.RevToSelfReq)(nil), // 44: sliverpb.RevToSelfReq + (*clientpb.GetSystemReq)(nil), // 45: clientpb.GetSystemReq + (*sliverpb.TaskReq)(nil), // 46: sliverpb.TaskReq + (*clientpb.MSFReq)(nil), // 47: clientpb.MSFReq + (*clientpb.MSFRemoteReq)(nil), // 48: clientpb.MSFRemoteReq + (*sliverpb.ExecuteAssemblyReq)(nil), // 49: sliverpb.ExecuteAssemblyReq + (*clientpb.MigrateReq)(nil), // 50: clientpb.MigrateReq + (*sliverpb.ExecuteReq)(nil), // 51: sliverpb.ExecuteReq + (*sliverpb.ExecuteWindowsReq)(nil), // 52: sliverpb.ExecuteWindowsReq + (*sliverpb.SideloadReq)(nil), // 53: sliverpb.SideloadReq + (*sliverpb.InvokeSpawnDllReq)(nil), // 54: sliverpb.InvokeSpawnDllReq + (*sliverpb.ScreenshotReq)(nil), // 55: sliverpb.ScreenshotReq + (*sliverpb.CurrentTokenOwnerReq)(nil), // 56: sliverpb.CurrentTokenOwnerReq + (*sliverpb.PivotStartListenerReq)(nil), // 57: sliverpb.PivotStartListenerReq + (*sliverpb.PivotStopListenerReq)(nil), // 58: sliverpb.PivotStopListenerReq + (*sliverpb.PivotListenersReq)(nil), // 59: sliverpb.PivotListenersReq + (*sliverpb.StartServiceReq)(nil), // 60: sliverpb.StartServiceReq + (*sliverpb.StopServiceReq)(nil), // 61: sliverpb.StopServiceReq + (*sliverpb.RemoveServiceReq)(nil), // 62: sliverpb.RemoveServiceReq + (*sliverpb.MakeTokenReq)(nil), // 63: sliverpb.MakeTokenReq + (*sliverpb.EnvReq)(nil), // 64: sliverpb.EnvReq + (*sliverpb.SetEnvReq)(nil), // 65: sliverpb.SetEnvReq + (*sliverpb.UnsetEnvReq)(nil), // 66: sliverpb.UnsetEnvReq + (*sliverpb.BackdoorReq)(nil), // 67: sliverpb.BackdoorReq + (*sliverpb.RegistryReadReq)(nil), // 68: sliverpb.RegistryReadReq + (*sliverpb.RegistryWriteReq)(nil), // 69: sliverpb.RegistryWriteReq + (*sliverpb.RegistryCreateKeyReq)(nil), // 70: sliverpb.RegistryCreateKeyReq + (*sliverpb.RegistryDeleteKeyReq)(nil), // 71: sliverpb.RegistryDeleteKeyReq + (*sliverpb.RegistrySubKeyListReq)(nil), // 72: sliverpb.RegistrySubKeyListReq + (*sliverpb.RegistryListValuesReq)(nil), // 73: sliverpb.RegistryListValuesReq + (*sliverpb.SSHCommandReq)(nil), // 74: sliverpb.SSHCommandReq + (*clientpb.DllHijackReq)(nil), // 75: clientpb.DllHijackReq + (*sliverpb.GetPrivsReq)(nil), // 76: sliverpb.GetPrivsReq + (*sliverpb.RportFwdStartListenerReq)(nil), // 77: sliverpb.RportFwdStartListenerReq + (*sliverpb.RportFwdListenersReq)(nil), // 78: sliverpb.RportFwdListenersReq + (*sliverpb.RportFwdStopListenerReq)(nil), // 79: sliverpb.RportFwdStopListenerReq + (*sliverpb.OpenSession)(nil), // 80: sliverpb.OpenSession + (*sliverpb.CloseSession)(nil), // 81: sliverpb.CloseSession + (*sliverpb.RegisterExtensionReq)(nil), // 82: sliverpb.RegisterExtensionReq + (*sliverpb.CallExtensionReq)(nil), // 83: sliverpb.CallExtensionReq + (*sliverpb.ListExtensionsReq)(nil), // 84: sliverpb.ListExtensionsReq + (*sliverpb.WGPortForwardStartReq)(nil), // 85: sliverpb.WGPortForwardStartReq + (*sliverpb.WGPortForwardStopReq)(nil), // 86: sliverpb.WGPortForwardStopReq + (*sliverpb.WGSocksStartReq)(nil), // 87: sliverpb.WGSocksStartReq + (*sliverpb.WGSocksStopReq)(nil), // 88: sliverpb.WGSocksStopReq + (*sliverpb.WGTCPForwardersReq)(nil), // 89: sliverpb.WGTCPForwardersReq + (*sliverpb.WGSocksServersReq)(nil), // 90: sliverpb.WGSocksServersReq + (*sliverpb.ShellReq)(nil), // 91: sliverpb.ShellReq + (*sliverpb.PortfwdReq)(nil), // 92: sliverpb.PortfwdReq + (*sliverpb.Socks)(nil), // 93: sliverpb.Socks + (*sliverpb.SocksData)(nil), // 94: sliverpb.SocksData + (*sliverpb.Tunnel)(nil), // 95: sliverpb.Tunnel + (*sliverpb.TunnelData)(nil), // 96: sliverpb.TunnelData + (*clientpb.Version)(nil), // 97: clientpb.Version + (*clientpb.Operators)(nil), // 98: clientpb.Operators + (*sliverpb.Reconfigure)(nil), // 99: sliverpb.Reconfigure + (*clientpb.Sessions)(nil), // 100: clientpb.Sessions + (*clientpb.Beacons)(nil), // 101: clientpb.Beacons + (*clientpb.BeaconTasks)(nil), // 102: clientpb.BeaconTasks + (*commonpb.Response)(nil), // 103: commonpb.Response + (*clientpb.Jobs)(nil), // 104: clientpb.Jobs + (*clientpb.KillJob)(nil), // 105: clientpb.KillJob + (*clientpb.MTLSListener)(nil), // 106: clientpb.MTLSListener + (*clientpb.WGListener)(nil), // 107: clientpb.WGListener + (*clientpb.DNSListener)(nil), // 108: clientpb.DNSListener + (*clientpb.HTTPListener)(nil), // 109: clientpb.HTTPListener + (*clientpb.StagerListener)(nil), // 110: clientpb.StagerListener + (*clientpb.AllLoot)(nil), // 111: clientpb.AllLoot + (*clientpb.AllHosts)(nil), // 112: clientpb.AllHosts + (*clientpb.Generate)(nil), // 113: clientpb.Generate + (*clientpb.ExternalImplantConfig)(nil), // 114: clientpb.ExternalImplantConfig + (*clientpb.Event)(nil), // 115: clientpb.Event + (*clientpb.Builders)(nil), // 116: clientpb.Builders + (*clientpb.ImplantBuilds)(nil), // 117: clientpb.ImplantBuilds + (*clientpb.Canaries)(nil), // 118: clientpb.Canaries + (*clientpb.WGClientConfig)(nil), // 119: clientpb.WGClientConfig + (*clientpb.UniqueWGIP)(nil), // 120: clientpb.UniqueWGIP + (*clientpb.ImplantProfiles)(nil), // 121: clientpb.ImplantProfiles + (*clientpb.MsfStager)(nil), // 122: clientpb.MsfStager + (*clientpb.ShellcodeRDI)(nil), // 123: clientpb.ShellcodeRDI + (*clientpb.Compiler)(nil), // 124: clientpb.Compiler + (*clientpb.ShellcodeEncode)(nil), // 125: clientpb.ShellcodeEncode + (*clientpb.ShellcodeEncoderMap)(nil), // 126: clientpb.ShellcodeEncoderMap + (*clientpb.Websites)(nil), // 127: clientpb.Websites + (*sliverpb.Ps)(nil), // 128: sliverpb.Ps + (*sliverpb.Terminate)(nil), // 129: sliverpb.Terminate + (*sliverpb.Ifconfig)(nil), // 130: sliverpb.Ifconfig + (*sliverpb.Netstat)(nil), // 131: sliverpb.Netstat + (*sliverpb.Ls)(nil), // 132: sliverpb.Ls + (*sliverpb.Pwd)(nil), // 133: sliverpb.Pwd + (*sliverpb.Mv)(nil), // 134: sliverpb.Mv + (*sliverpb.Rm)(nil), // 135: sliverpb.Rm + (*sliverpb.Mkdir)(nil), // 136: sliverpb.Mkdir + (*sliverpb.Download)(nil), // 137: sliverpb.Download + (*sliverpb.Upload)(nil), // 138: sliverpb.Upload + (*sliverpb.ProcessDump)(nil), // 139: sliverpb.ProcessDump + (*sliverpb.RunAs)(nil), // 140: sliverpb.RunAs + (*sliverpb.Impersonate)(nil), // 141: sliverpb.Impersonate + (*sliverpb.RevToSelf)(nil), // 142: sliverpb.RevToSelf + (*sliverpb.GetSystem)(nil), // 143: sliverpb.GetSystem + (*sliverpb.Task)(nil), // 144: sliverpb.Task + (*sliverpb.ExecuteAssembly)(nil), // 145: sliverpb.ExecuteAssembly + (*sliverpb.Migrate)(nil), // 146: sliverpb.Migrate + (*sliverpb.Execute)(nil), // 147: sliverpb.Execute + (*sliverpb.Sideload)(nil), // 148: sliverpb.Sideload + (*sliverpb.SpawnDll)(nil), // 149: sliverpb.SpawnDll + (*sliverpb.Screenshot)(nil), // 150: sliverpb.Screenshot + (*sliverpb.CurrentTokenOwner)(nil), // 151: sliverpb.CurrentTokenOwner + (*sliverpb.PivotListener)(nil), // 152: sliverpb.PivotListener + (*sliverpb.PivotListeners)(nil), // 153: sliverpb.PivotListeners + (*clientpb.PivotGraph)(nil), // 154: clientpb.PivotGraph + (*sliverpb.ServiceInfo)(nil), // 155: sliverpb.ServiceInfo + (*sliverpb.MakeToken)(nil), // 156: sliverpb.MakeToken + (*sliverpb.EnvInfo)(nil), // 157: sliverpb.EnvInfo + (*sliverpb.SetEnv)(nil), // 158: sliverpb.SetEnv + (*sliverpb.UnsetEnv)(nil), // 159: sliverpb.UnsetEnv + (*sliverpb.Backdoor)(nil), // 160: sliverpb.Backdoor + (*sliverpb.RegistryRead)(nil), // 161: sliverpb.RegistryRead + (*sliverpb.RegistryWrite)(nil), // 162: sliverpb.RegistryWrite + (*sliverpb.RegistryCreateKey)(nil), // 163: sliverpb.RegistryCreateKey + (*sliverpb.RegistryDeleteKey)(nil), // 164: sliverpb.RegistryDeleteKey + (*sliverpb.RegistrySubKeyList)(nil), // 165: sliverpb.RegistrySubKeyList + (*sliverpb.RegistryValuesList)(nil), // 166: sliverpb.RegistryValuesList + (*sliverpb.SSHCommand)(nil), // 167: sliverpb.SSHCommand + (*clientpb.DllHijack)(nil), // 168: clientpb.DllHijack + (*sliverpb.GetPrivs)(nil), // 169: sliverpb.GetPrivs + (*sliverpb.RportFwdListener)(nil), // 170: sliverpb.RportFwdListener + (*sliverpb.RportFwdListeners)(nil), // 171: sliverpb.RportFwdListeners + (*sliverpb.RegisterExtension)(nil), // 172: sliverpb.RegisterExtension + (*sliverpb.CallExtension)(nil), // 173: sliverpb.CallExtension + (*sliverpb.ListExtensions)(nil), // 174: sliverpb.ListExtensions + (*sliverpb.WGPortForward)(nil), // 175: sliverpb.WGPortForward + (*sliverpb.WGSocks)(nil), // 176: sliverpb.WGSocks + (*sliverpb.WGTCPForwarders)(nil), // 177: sliverpb.WGTCPForwarders + (*sliverpb.WGSocksServers)(nil), // 178: sliverpb.WGSocksServers + (*sliverpb.Shell)(nil), // 179: sliverpb.Shell + (*sliverpb.Portfwd)(nil), // 180: sliverpb.Portfwd } var file_rpcpb_services_proto_depIdxs = []int32{ 0, // 0: rpcpb.SliverRPC.GetVersion:input_type -> commonpb.Empty @@ -742,231 +751,235 @@ var file_rpcpb_services_proto_depIdxs = []int32{ 15, // 34: rpcpb.SliverRPC.GenerateExternal:input_type -> clientpb.GenerateReq 16, // 35: rpcpb.SliverRPC.GenerateExternalSaveBuild:input_type -> clientpb.ExternalImplantBinary 17, // 36: rpcpb.SliverRPC.GenerateExternalGetImplantConfig:input_type -> clientpb.ImplantConfig - 18, // 37: rpcpb.SliverRPC.Regenerate:input_type -> clientpb.RegenerateReq - 0, // 38: rpcpb.SliverRPC.ImplantBuilds:input_type -> commonpb.Empty - 19, // 39: rpcpb.SliverRPC.DeleteImplantBuild:input_type -> clientpb.DeleteReq - 0, // 40: rpcpb.SliverRPC.Canaries:input_type -> commonpb.Empty - 0, // 41: rpcpb.SliverRPC.GenerateWGClientConfig:input_type -> commonpb.Empty - 0, // 42: rpcpb.SliverRPC.GenerateUniqueIP:input_type -> commonpb.Empty - 0, // 43: rpcpb.SliverRPC.ImplantProfiles:input_type -> commonpb.Empty - 19, // 44: rpcpb.SliverRPC.DeleteImplantProfile:input_type -> clientpb.DeleteReq - 20, // 45: rpcpb.SliverRPC.SaveImplantProfile:input_type -> clientpb.ImplantProfile - 21, // 46: rpcpb.SliverRPC.MsfStage:input_type -> clientpb.MsfStagerReq - 22, // 47: rpcpb.SliverRPC.ShellcodeRDI:input_type -> clientpb.ShellcodeRDIReq - 0, // 48: rpcpb.SliverRPC.GetCompiler:input_type -> commonpb.Empty - 23, // 49: rpcpb.SliverRPC.ShellcodeEncoder:input_type -> clientpb.ShellcodeEncodeReq - 0, // 50: rpcpb.SliverRPC.ShellcodeEncoderMap:input_type -> commonpb.Empty - 0, // 51: rpcpb.SliverRPC.Websites:input_type -> commonpb.Empty - 24, // 52: rpcpb.SliverRPC.Website:input_type -> clientpb.Website - 24, // 53: rpcpb.SliverRPC.WebsiteRemove:input_type -> clientpb.Website - 25, // 54: rpcpb.SliverRPC.WebsiteAddContent:input_type -> clientpb.WebsiteAddContent - 25, // 55: rpcpb.SliverRPC.WebsiteUpdateContent:input_type -> clientpb.WebsiteAddContent - 26, // 56: rpcpb.SliverRPC.WebsiteRemoveContent:input_type -> clientpb.WebsiteRemoveContent - 27, // 57: rpcpb.SliverRPC.Ping:input_type -> sliverpb.Ping - 28, // 58: rpcpb.SliverRPC.Ps:input_type -> sliverpb.PsReq - 29, // 59: rpcpb.SliverRPC.Terminate:input_type -> sliverpb.TerminateReq - 30, // 60: rpcpb.SliverRPC.Ifconfig:input_type -> sliverpb.IfconfigReq - 31, // 61: rpcpb.SliverRPC.Netstat:input_type -> sliverpb.NetstatReq - 32, // 62: rpcpb.SliverRPC.Ls:input_type -> sliverpb.LsReq - 33, // 63: rpcpb.SliverRPC.Cd:input_type -> sliverpb.CdReq - 34, // 64: rpcpb.SliverRPC.Pwd:input_type -> sliverpb.PwdReq - 35, // 65: rpcpb.SliverRPC.Mv:input_type -> sliverpb.MvReq - 36, // 66: rpcpb.SliverRPC.Rm:input_type -> sliverpb.RmReq - 37, // 67: rpcpb.SliverRPC.Mkdir:input_type -> sliverpb.MkdirReq - 38, // 68: rpcpb.SliverRPC.Download:input_type -> sliverpb.DownloadReq - 39, // 69: rpcpb.SliverRPC.Upload:input_type -> sliverpb.UploadReq - 40, // 70: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq - 41, // 71: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq - 42, // 72: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq - 43, // 73: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq - 44, // 74: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq - 45, // 75: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq - 46, // 76: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq - 47, // 77: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq - 48, // 78: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq - 49, // 79: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq - 50, // 80: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq - 51, // 81: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq - 52, // 82: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq - 53, // 83: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq - 54, // 84: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq - 55, // 85: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq - 56, // 86: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq - 57, // 87: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq - 58, // 88: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq - 0, // 89: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty - 59, // 90: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq - 60, // 91: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq - 61, // 92: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq - 62, // 93: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq - 63, // 94: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq - 64, // 95: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq - 65, // 96: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq - 66, // 97: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq - 67, // 98: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq - 68, // 99: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq - 69, // 100: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq - 70, // 101: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq - 71, // 102: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq - 72, // 103: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq - 73, // 104: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq - 74, // 105: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq - 75, // 106: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq - 76, // 107: rpcpb.SliverRPC.StartRportFwdListener:input_type -> sliverpb.RportFwdStartListenerReq - 77, // 108: rpcpb.SliverRPC.GetRportFwdListeners:input_type -> sliverpb.RportFwdListenersReq - 78, // 109: rpcpb.SliverRPC.StopRportFwdListener:input_type -> sliverpb.RportFwdStopListenerReq - 79, // 110: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession - 80, // 111: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession - 81, // 112: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq - 82, // 113: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq - 83, // 114: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq - 84, // 115: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq - 85, // 116: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq - 86, // 117: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq - 87, // 118: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq - 88, // 119: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq - 89, // 120: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq - 90, // 121: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq - 91, // 122: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq - 92, // 123: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks - 92, // 124: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks - 93, // 125: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData - 94, // 126: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel - 94, // 127: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel - 95, // 128: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData - 0, // 129: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty - 96, // 130: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version - 97, // 131: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators - 0, // 132: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty - 98, // 133: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure - 0, // 134: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty - 99, // 135: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions - 100, // 136: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons - 4, // 137: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon - 0, // 138: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty - 101, // 139: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks - 5, // 140: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask - 5, // 141: rpcpb.SliverRPC.CancelBeaconTask:output_type -> clientpb.BeaconTask - 102, // 142: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response - 0, // 143: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty - 103, // 144: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs - 104, // 145: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob - 105, // 146: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener - 106, // 147: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener - 107, // 148: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener - 108, // 149: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener - 108, // 150: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener - 109, // 151: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener - 109, // 152: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener - 12, // 153: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot - 0, // 154: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty - 12, // 155: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot - 12, // 156: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot - 110, // 157: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot - 110, // 158: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot - 111, // 159: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts - 13, // 160: rpcpb.SliverRPC.Host:output_type -> clientpb.Host - 0, // 161: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty - 0, // 162: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty - 112, // 163: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate - 113, // 164: rpcpb.SliverRPC.GenerateExternal:output_type -> clientpb.ExternalImplantConfig - 0, // 165: rpcpb.SliverRPC.GenerateExternalSaveBuild:output_type -> commonpb.Empty - 113, // 166: rpcpb.SliverRPC.GenerateExternalGetImplantConfig:output_type -> clientpb.ExternalImplantConfig - 112, // 167: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate - 114, // 168: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds - 0, // 169: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty - 115, // 170: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries - 116, // 171: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig - 117, // 172: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP - 118, // 173: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles - 0, // 174: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty - 20, // 175: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile - 119, // 176: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager - 120, // 177: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI - 121, // 178: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler - 122, // 179: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode - 123, // 180: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap - 124, // 181: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites - 24, // 182: rpcpb.SliverRPC.Website:output_type -> clientpb.Website - 0, // 183: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty - 24, // 184: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website - 24, // 185: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website - 24, // 186: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website - 27, // 187: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping - 125, // 188: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps - 126, // 189: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate - 127, // 190: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig - 128, // 191: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat - 129, // 192: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls - 130, // 193: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd - 130, // 194: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd - 131, // 195: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv - 132, // 196: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm - 133, // 197: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir - 134, // 198: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download - 135, // 199: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload - 136, // 200: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump - 137, // 201: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs - 138, // 202: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate - 139, // 203: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf - 140, // 204: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem - 141, // 205: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task - 141, // 206: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task - 141, // 207: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task - 142, // 208: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly - 143, // 209: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate - 144, // 210: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute - 144, // 211: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute - 145, // 212: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload - 146, // 213: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll - 147, // 214: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot - 148, // 215: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner - 149, // 216: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener - 0, // 217: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty - 150, // 218: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners - 151, // 219: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph - 152, // 220: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo - 152, // 221: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo - 152, // 222: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo - 153, // 223: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken - 154, // 224: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo - 155, // 225: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv - 156, // 226: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv - 157, // 227: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor - 158, // 228: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead - 159, // 229: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite - 160, // 230: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey - 161, // 231: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey - 162, // 232: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList - 163, // 233: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList - 164, // 234: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand - 165, // 235: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack - 166, // 236: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs - 167, // 237: rpcpb.SliverRPC.StartRportFwdListener:output_type -> sliverpb.RportFwdListener - 168, // 238: rpcpb.SliverRPC.GetRportFwdListeners:output_type -> sliverpb.RportFwdListeners - 167, // 239: rpcpb.SliverRPC.StopRportFwdListener:output_type -> sliverpb.RportFwdListener - 79, // 240: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession - 0, // 241: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty - 169, // 242: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension - 170, // 243: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension - 171, // 244: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions - 172, // 245: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward - 172, // 246: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward - 173, // 247: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks - 173, // 248: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks - 174, // 249: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders - 175, // 250: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers - 176, // 251: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell - 177, // 252: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd - 92, // 253: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks - 0, // 254: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty - 93, // 255: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData - 94, // 256: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel - 0, // 257: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty - 95, // 258: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData - 178, // 259: rpcpb.SliverRPC.Events:output_type -> clientpb.Event - 130, // [130:260] is the sub-list for method output_type - 0, // [0:130] is the sub-list for method input_type + 18, // 37: rpcpb.SliverRPC.BuilderRegister:input_type -> clientpb.Builder + 0, // 38: rpcpb.SliverRPC.Builders:input_type -> commonpb.Empty + 19, // 39: rpcpb.SliverRPC.Regenerate:input_type -> clientpb.RegenerateReq + 0, // 40: rpcpb.SliverRPC.ImplantBuilds:input_type -> commonpb.Empty + 20, // 41: rpcpb.SliverRPC.DeleteImplantBuild:input_type -> clientpb.DeleteReq + 0, // 42: rpcpb.SliverRPC.Canaries:input_type -> commonpb.Empty + 0, // 43: rpcpb.SliverRPC.GenerateWGClientConfig:input_type -> commonpb.Empty + 0, // 44: rpcpb.SliverRPC.GenerateUniqueIP:input_type -> commonpb.Empty + 0, // 45: rpcpb.SliverRPC.ImplantProfiles:input_type -> commonpb.Empty + 20, // 46: rpcpb.SliverRPC.DeleteImplantProfile:input_type -> clientpb.DeleteReq + 21, // 47: rpcpb.SliverRPC.SaveImplantProfile:input_type -> clientpb.ImplantProfile + 22, // 48: rpcpb.SliverRPC.MsfStage:input_type -> clientpb.MsfStagerReq + 23, // 49: rpcpb.SliverRPC.ShellcodeRDI:input_type -> clientpb.ShellcodeRDIReq + 0, // 50: rpcpb.SliverRPC.GetCompiler:input_type -> commonpb.Empty + 24, // 51: rpcpb.SliverRPC.ShellcodeEncoder:input_type -> clientpb.ShellcodeEncodeReq + 0, // 52: rpcpb.SliverRPC.ShellcodeEncoderMap:input_type -> commonpb.Empty + 0, // 53: rpcpb.SliverRPC.Websites:input_type -> commonpb.Empty + 25, // 54: rpcpb.SliverRPC.Website:input_type -> clientpb.Website + 25, // 55: rpcpb.SliverRPC.WebsiteRemove:input_type -> clientpb.Website + 26, // 56: rpcpb.SliverRPC.WebsiteAddContent:input_type -> clientpb.WebsiteAddContent + 26, // 57: rpcpb.SliverRPC.WebsiteUpdateContent:input_type -> clientpb.WebsiteAddContent + 27, // 58: rpcpb.SliverRPC.WebsiteRemoveContent:input_type -> clientpb.WebsiteRemoveContent + 28, // 59: rpcpb.SliverRPC.Ping:input_type -> sliverpb.Ping + 29, // 60: rpcpb.SliverRPC.Ps:input_type -> sliverpb.PsReq + 30, // 61: rpcpb.SliverRPC.Terminate:input_type -> sliverpb.TerminateReq + 31, // 62: rpcpb.SliverRPC.Ifconfig:input_type -> sliverpb.IfconfigReq + 32, // 63: rpcpb.SliverRPC.Netstat:input_type -> sliverpb.NetstatReq + 33, // 64: rpcpb.SliverRPC.Ls:input_type -> sliverpb.LsReq + 34, // 65: rpcpb.SliverRPC.Cd:input_type -> sliverpb.CdReq + 35, // 66: rpcpb.SliverRPC.Pwd:input_type -> sliverpb.PwdReq + 36, // 67: rpcpb.SliverRPC.Mv:input_type -> sliverpb.MvReq + 37, // 68: rpcpb.SliverRPC.Rm:input_type -> sliverpb.RmReq + 38, // 69: rpcpb.SliverRPC.Mkdir:input_type -> sliverpb.MkdirReq + 39, // 70: rpcpb.SliverRPC.Download:input_type -> sliverpb.DownloadReq + 40, // 71: rpcpb.SliverRPC.Upload:input_type -> sliverpb.UploadReq + 41, // 72: rpcpb.SliverRPC.ProcessDump:input_type -> sliverpb.ProcessDumpReq + 42, // 73: rpcpb.SliverRPC.RunAs:input_type -> sliverpb.RunAsReq + 43, // 74: rpcpb.SliverRPC.Impersonate:input_type -> sliverpb.ImpersonateReq + 44, // 75: rpcpb.SliverRPC.RevToSelf:input_type -> sliverpb.RevToSelfReq + 45, // 76: rpcpb.SliverRPC.GetSystem:input_type -> clientpb.GetSystemReq + 46, // 77: rpcpb.SliverRPC.Task:input_type -> sliverpb.TaskReq + 47, // 78: rpcpb.SliverRPC.Msf:input_type -> clientpb.MSFReq + 48, // 79: rpcpb.SliverRPC.MsfRemote:input_type -> clientpb.MSFRemoteReq + 49, // 80: rpcpb.SliverRPC.ExecuteAssembly:input_type -> sliverpb.ExecuteAssemblyReq + 50, // 81: rpcpb.SliverRPC.Migrate:input_type -> clientpb.MigrateReq + 51, // 82: rpcpb.SliverRPC.Execute:input_type -> sliverpb.ExecuteReq + 52, // 83: rpcpb.SliverRPC.ExecuteWindows:input_type -> sliverpb.ExecuteWindowsReq + 53, // 84: rpcpb.SliverRPC.Sideload:input_type -> sliverpb.SideloadReq + 54, // 85: rpcpb.SliverRPC.SpawnDll:input_type -> sliverpb.InvokeSpawnDllReq + 55, // 86: rpcpb.SliverRPC.Screenshot:input_type -> sliverpb.ScreenshotReq + 56, // 87: rpcpb.SliverRPC.CurrentTokenOwner:input_type -> sliverpb.CurrentTokenOwnerReq + 57, // 88: rpcpb.SliverRPC.PivotStartListener:input_type -> sliverpb.PivotStartListenerReq + 58, // 89: rpcpb.SliverRPC.PivotStopListener:input_type -> sliverpb.PivotStopListenerReq + 59, // 90: rpcpb.SliverRPC.PivotSessionListeners:input_type -> sliverpb.PivotListenersReq + 0, // 91: rpcpb.SliverRPC.PivotGraph:input_type -> commonpb.Empty + 60, // 92: rpcpb.SliverRPC.StartService:input_type -> sliverpb.StartServiceReq + 61, // 93: rpcpb.SliverRPC.StopService:input_type -> sliverpb.StopServiceReq + 62, // 94: rpcpb.SliverRPC.RemoveService:input_type -> sliverpb.RemoveServiceReq + 63, // 95: rpcpb.SliverRPC.MakeToken:input_type -> sliverpb.MakeTokenReq + 64, // 96: rpcpb.SliverRPC.GetEnv:input_type -> sliverpb.EnvReq + 65, // 97: rpcpb.SliverRPC.SetEnv:input_type -> sliverpb.SetEnvReq + 66, // 98: rpcpb.SliverRPC.UnsetEnv:input_type -> sliverpb.UnsetEnvReq + 67, // 99: rpcpb.SliverRPC.Backdoor:input_type -> sliverpb.BackdoorReq + 68, // 100: rpcpb.SliverRPC.RegistryRead:input_type -> sliverpb.RegistryReadReq + 69, // 101: rpcpb.SliverRPC.RegistryWrite:input_type -> sliverpb.RegistryWriteReq + 70, // 102: rpcpb.SliverRPC.RegistryCreateKey:input_type -> sliverpb.RegistryCreateKeyReq + 71, // 103: rpcpb.SliverRPC.RegistryDeleteKey:input_type -> sliverpb.RegistryDeleteKeyReq + 72, // 104: rpcpb.SliverRPC.RegistryListSubKeys:input_type -> sliverpb.RegistrySubKeyListReq + 73, // 105: rpcpb.SliverRPC.RegistryListValues:input_type -> sliverpb.RegistryListValuesReq + 74, // 106: rpcpb.SliverRPC.RunSSHCommand:input_type -> sliverpb.SSHCommandReq + 75, // 107: rpcpb.SliverRPC.HijackDLL:input_type -> clientpb.DllHijackReq + 76, // 108: rpcpb.SliverRPC.GetPrivs:input_type -> sliverpb.GetPrivsReq + 77, // 109: rpcpb.SliverRPC.StartRportFwdListener:input_type -> sliverpb.RportFwdStartListenerReq + 78, // 110: rpcpb.SliverRPC.GetRportFwdListeners:input_type -> sliverpb.RportFwdListenersReq + 79, // 111: rpcpb.SliverRPC.StopRportFwdListener:input_type -> sliverpb.RportFwdStopListenerReq + 80, // 112: rpcpb.SliverRPC.OpenSession:input_type -> sliverpb.OpenSession + 81, // 113: rpcpb.SliverRPC.CloseSession:input_type -> sliverpb.CloseSession + 82, // 114: rpcpb.SliverRPC.RegisterExtension:input_type -> sliverpb.RegisterExtensionReq + 83, // 115: rpcpb.SliverRPC.CallExtension:input_type -> sliverpb.CallExtensionReq + 84, // 116: rpcpb.SliverRPC.ListExtensions:input_type -> sliverpb.ListExtensionsReq + 85, // 117: rpcpb.SliverRPC.WGStartPortForward:input_type -> sliverpb.WGPortForwardStartReq + 86, // 118: rpcpb.SliverRPC.WGStopPortForward:input_type -> sliverpb.WGPortForwardStopReq + 87, // 119: rpcpb.SliverRPC.WGStartSocks:input_type -> sliverpb.WGSocksStartReq + 88, // 120: rpcpb.SliverRPC.WGStopSocks:input_type -> sliverpb.WGSocksStopReq + 89, // 121: rpcpb.SliverRPC.WGListForwarders:input_type -> sliverpb.WGTCPForwardersReq + 90, // 122: rpcpb.SliverRPC.WGListSocksServers:input_type -> sliverpb.WGSocksServersReq + 91, // 123: rpcpb.SliverRPC.Shell:input_type -> sliverpb.ShellReq + 92, // 124: rpcpb.SliverRPC.Portfwd:input_type -> sliverpb.PortfwdReq + 93, // 125: rpcpb.SliverRPC.CreateSocks:input_type -> sliverpb.Socks + 93, // 126: rpcpb.SliverRPC.CloseSocks:input_type -> sliverpb.Socks + 94, // 127: rpcpb.SliverRPC.SocksProxy:input_type -> sliverpb.SocksData + 95, // 128: rpcpb.SliverRPC.CreateTunnel:input_type -> sliverpb.Tunnel + 95, // 129: rpcpb.SliverRPC.CloseTunnel:input_type -> sliverpb.Tunnel + 96, // 130: rpcpb.SliverRPC.TunnelData:input_type -> sliverpb.TunnelData + 0, // 131: rpcpb.SliverRPC.Events:input_type -> commonpb.Empty + 97, // 132: rpcpb.SliverRPC.GetVersion:output_type -> clientpb.Version + 98, // 133: rpcpb.SliverRPC.GetOperators:output_type -> clientpb.Operators + 0, // 134: rpcpb.SliverRPC.Kill:output_type -> commonpb.Empty + 99, // 135: rpcpb.SliverRPC.Reconfigure:output_type -> sliverpb.Reconfigure + 0, // 136: rpcpb.SliverRPC.Rename:output_type -> commonpb.Empty + 100, // 137: rpcpb.SliverRPC.GetSessions:output_type -> clientpb.Sessions + 101, // 138: rpcpb.SliverRPC.GetBeacons:output_type -> clientpb.Beacons + 4, // 139: rpcpb.SliverRPC.GetBeacon:output_type -> clientpb.Beacon + 0, // 140: rpcpb.SliverRPC.RmBeacon:output_type -> commonpb.Empty + 102, // 141: rpcpb.SliverRPC.GetBeaconTasks:output_type -> clientpb.BeaconTasks + 5, // 142: rpcpb.SliverRPC.GetBeaconTaskContent:output_type -> clientpb.BeaconTask + 5, // 143: rpcpb.SliverRPC.CancelBeaconTask:output_type -> clientpb.BeaconTask + 103, // 144: rpcpb.SliverRPC.MonitorStart:output_type -> commonpb.Response + 0, // 145: rpcpb.SliverRPC.MonitorStop:output_type -> commonpb.Empty + 104, // 146: rpcpb.SliverRPC.GetJobs:output_type -> clientpb.Jobs + 105, // 147: rpcpb.SliverRPC.KillJob:output_type -> clientpb.KillJob + 106, // 148: rpcpb.SliverRPC.StartMTLSListener:output_type -> clientpb.MTLSListener + 107, // 149: rpcpb.SliverRPC.StartWGListener:output_type -> clientpb.WGListener + 108, // 150: rpcpb.SliverRPC.StartDNSListener:output_type -> clientpb.DNSListener + 109, // 151: rpcpb.SliverRPC.StartHTTPSListener:output_type -> clientpb.HTTPListener + 109, // 152: rpcpb.SliverRPC.StartHTTPListener:output_type -> clientpb.HTTPListener + 110, // 153: rpcpb.SliverRPC.StartTCPStagerListener:output_type -> clientpb.StagerListener + 110, // 154: rpcpb.SliverRPC.StartHTTPStagerListener:output_type -> clientpb.StagerListener + 12, // 155: rpcpb.SliverRPC.LootAdd:output_type -> clientpb.Loot + 0, // 156: rpcpb.SliverRPC.LootRm:output_type -> commonpb.Empty + 12, // 157: rpcpb.SliverRPC.LootUpdate:output_type -> clientpb.Loot + 12, // 158: rpcpb.SliverRPC.LootContent:output_type -> clientpb.Loot + 111, // 159: rpcpb.SliverRPC.LootAll:output_type -> clientpb.AllLoot + 111, // 160: rpcpb.SliverRPC.LootAllOf:output_type -> clientpb.AllLoot + 112, // 161: rpcpb.SliverRPC.Hosts:output_type -> clientpb.AllHosts + 13, // 162: rpcpb.SliverRPC.Host:output_type -> clientpb.Host + 0, // 163: rpcpb.SliverRPC.HostRm:output_type -> commonpb.Empty + 0, // 164: rpcpb.SliverRPC.HostIOCRm:output_type -> commonpb.Empty + 113, // 165: rpcpb.SliverRPC.Generate:output_type -> clientpb.Generate + 114, // 166: rpcpb.SliverRPC.GenerateExternal:output_type -> clientpb.ExternalImplantConfig + 0, // 167: rpcpb.SliverRPC.GenerateExternalSaveBuild:output_type -> commonpb.Empty + 114, // 168: rpcpb.SliverRPC.GenerateExternalGetImplantConfig:output_type -> clientpb.ExternalImplantConfig + 115, // 169: rpcpb.SliverRPC.BuilderRegister:output_type -> clientpb.Event + 116, // 170: rpcpb.SliverRPC.Builders:output_type -> clientpb.Builders + 113, // 171: rpcpb.SliverRPC.Regenerate:output_type -> clientpb.Generate + 117, // 172: rpcpb.SliverRPC.ImplantBuilds:output_type -> clientpb.ImplantBuilds + 0, // 173: rpcpb.SliverRPC.DeleteImplantBuild:output_type -> commonpb.Empty + 118, // 174: rpcpb.SliverRPC.Canaries:output_type -> clientpb.Canaries + 119, // 175: rpcpb.SliverRPC.GenerateWGClientConfig:output_type -> clientpb.WGClientConfig + 120, // 176: rpcpb.SliverRPC.GenerateUniqueIP:output_type -> clientpb.UniqueWGIP + 121, // 177: rpcpb.SliverRPC.ImplantProfiles:output_type -> clientpb.ImplantProfiles + 0, // 178: rpcpb.SliverRPC.DeleteImplantProfile:output_type -> commonpb.Empty + 21, // 179: rpcpb.SliverRPC.SaveImplantProfile:output_type -> clientpb.ImplantProfile + 122, // 180: rpcpb.SliverRPC.MsfStage:output_type -> clientpb.MsfStager + 123, // 181: rpcpb.SliverRPC.ShellcodeRDI:output_type -> clientpb.ShellcodeRDI + 124, // 182: rpcpb.SliverRPC.GetCompiler:output_type -> clientpb.Compiler + 125, // 183: rpcpb.SliverRPC.ShellcodeEncoder:output_type -> clientpb.ShellcodeEncode + 126, // 184: rpcpb.SliverRPC.ShellcodeEncoderMap:output_type -> clientpb.ShellcodeEncoderMap + 127, // 185: rpcpb.SliverRPC.Websites:output_type -> clientpb.Websites + 25, // 186: rpcpb.SliverRPC.Website:output_type -> clientpb.Website + 0, // 187: rpcpb.SliverRPC.WebsiteRemove:output_type -> commonpb.Empty + 25, // 188: rpcpb.SliverRPC.WebsiteAddContent:output_type -> clientpb.Website + 25, // 189: rpcpb.SliverRPC.WebsiteUpdateContent:output_type -> clientpb.Website + 25, // 190: rpcpb.SliverRPC.WebsiteRemoveContent:output_type -> clientpb.Website + 28, // 191: rpcpb.SliverRPC.Ping:output_type -> sliverpb.Ping + 128, // 192: rpcpb.SliverRPC.Ps:output_type -> sliverpb.Ps + 129, // 193: rpcpb.SliverRPC.Terminate:output_type -> sliverpb.Terminate + 130, // 194: rpcpb.SliverRPC.Ifconfig:output_type -> sliverpb.Ifconfig + 131, // 195: rpcpb.SliverRPC.Netstat:output_type -> sliverpb.Netstat + 132, // 196: rpcpb.SliverRPC.Ls:output_type -> sliverpb.Ls + 133, // 197: rpcpb.SliverRPC.Cd:output_type -> sliverpb.Pwd + 133, // 198: rpcpb.SliverRPC.Pwd:output_type -> sliverpb.Pwd + 134, // 199: rpcpb.SliverRPC.Mv:output_type -> sliverpb.Mv + 135, // 200: rpcpb.SliverRPC.Rm:output_type -> sliverpb.Rm + 136, // 201: rpcpb.SliverRPC.Mkdir:output_type -> sliverpb.Mkdir + 137, // 202: rpcpb.SliverRPC.Download:output_type -> sliverpb.Download + 138, // 203: rpcpb.SliverRPC.Upload:output_type -> sliverpb.Upload + 139, // 204: rpcpb.SliverRPC.ProcessDump:output_type -> sliverpb.ProcessDump + 140, // 205: rpcpb.SliverRPC.RunAs:output_type -> sliverpb.RunAs + 141, // 206: rpcpb.SliverRPC.Impersonate:output_type -> sliverpb.Impersonate + 142, // 207: rpcpb.SliverRPC.RevToSelf:output_type -> sliverpb.RevToSelf + 143, // 208: rpcpb.SliverRPC.GetSystem:output_type -> sliverpb.GetSystem + 144, // 209: rpcpb.SliverRPC.Task:output_type -> sliverpb.Task + 144, // 210: rpcpb.SliverRPC.Msf:output_type -> sliverpb.Task + 144, // 211: rpcpb.SliverRPC.MsfRemote:output_type -> sliverpb.Task + 145, // 212: rpcpb.SliverRPC.ExecuteAssembly:output_type -> sliverpb.ExecuteAssembly + 146, // 213: rpcpb.SliverRPC.Migrate:output_type -> sliverpb.Migrate + 147, // 214: rpcpb.SliverRPC.Execute:output_type -> sliverpb.Execute + 147, // 215: rpcpb.SliverRPC.ExecuteWindows:output_type -> sliverpb.Execute + 148, // 216: rpcpb.SliverRPC.Sideload:output_type -> sliverpb.Sideload + 149, // 217: rpcpb.SliverRPC.SpawnDll:output_type -> sliverpb.SpawnDll + 150, // 218: rpcpb.SliverRPC.Screenshot:output_type -> sliverpb.Screenshot + 151, // 219: rpcpb.SliverRPC.CurrentTokenOwner:output_type -> sliverpb.CurrentTokenOwner + 152, // 220: rpcpb.SliverRPC.PivotStartListener:output_type -> sliverpb.PivotListener + 0, // 221: rpcpb.SliverRPC.PivotStopListener:output_type -> commonpb.Empty + 153, // 222: rpcpb.SliverRPC.PivotSessionListeners:output_type -> sliverpb.PivotListeners + 154, // 223: rpcpb.SliverRPC.PivotGraph:output_type -> clientpb.PivotGraph + 155, // 224: rpcpb.SliverRPC.StartService:output_type -> sliverpb.ServiceInfo + 155, // 225: rpcpb.SliverRPC.StopService:output_type -> sliverpb.ServiceInfo + 155, // 226: rpcpb.SliverRPC.RemoveService:output_type -> sliverpb.ServiceInfo + 156, // 227: rpcpb.SliverRPC.MakeToken:output_type -> sliverpb.MakeToken + 157, // 228: rpcpb.SliverRPC.GetEnv:output_type -> sliverpb.EnvInfo + 158, // 229: rpcpb.SliverRPC.SetEnv:output_type -> sliverpb.SetEnv + 159, // 230: rpcpb.SliverRPC.UnsetEnv:output_type -> sliverpb.UnsetEnv + 160, // 231: rpcpb.SliverRPC.Backdoor:output_type -> sliverpb.Backdoor + 161, // 232: rpcpb.SliverRPC.RegistryRead:output_type -> sliverpb.RegistryRead + 162, // 233: rpcpb.SliverRPC.RegistryWrite:output_type -> sliverpb.RegistryWrite + 163, // 234: rpcpb.SliverRPC.RegistryCreateKey:output_type -> sliverpb.RegistryCreateKey + 164, // 235: rpcpb.SliverRPC.RegistryDeleteKey:output_type -> sliverpb.RegistryDeleteKey + 165, // 236: rpcpb.SliverRPC.RegistryListSubKeys:output_type -> sliverpb.RegistrySubKeyList + 166, // 237: rpcpb.SliverRPC.RegistryListValues:output_type -> sliverpb.RegistryValuesList + 167, // 238: rpcpb.SliverRPC.RunSSHCommand:output_type -> sliverpb.SSHCommand + 168, // 239: rpcpb.SliverRPC.HijackDLL:output_type -> clientpb.DllHijack + 169, // 240: rpcpb.SliverRPC.GetPrivs:output_type -> sliverpb.GetPrivs + 170, // 241: rpcpb.SliverRPC.StartRportFwdListener:output_type -> sliverpb.RportFwdListener + 171, // 242: rpcpb.SliverRPC.GetRportFwdListeners:output_type -> sliverpb.RportFwdListeners + 170, // 243: rpcpb.SliverRPC.StopRportFwdListener:output_type -> sliverpb.RportFwdListener + 80, // 244: rpcpb.SliverRPC.OpenSession:output_type -> sliverpb.OpenSession + 0, // 245: rpcpb.SliverRPC.CloseSession:output_type -> commonpb.Empty + 172, // 246: rpcpb.SliverRPC.RegisterExtension:output_type -> sliverpb.RegisterExtension + 173, // 247: rpcpb.SliverRPC.CallExtension:output_type -> sliverpb.CallExtension + 174, // 248: rpcpb.SliverRPC.ListExtensions:output_type -> sliverpb.ListExtensions + 175, // 249: rpcpb.SliverRPC.WGStartPortForward:output_type -> sliverpb.WGPortForward + 175, // 250: rpcpb.SliverRPC.WGStopPortForward:output_type -> sliverpb.WGPortForward + 176, // 251: rpcpb.SliverRPC.WGStartSocks:output_type -> sliverpb.WGSocks + 176, // 252: rpcpb.SliverRPC.WGStopSocks:output_type -> sliverpb.WGSocks + 177, // 253: rpcpb.SliverRPC.WGListForwarders:output_type -> sliverpb.WGTCPForwarders + 178, // 254: rpcpb.SliverRPC.WGListSocksServers:output_type -> sliverpb.WGSocksServers + 179, // 255: rpcpb.SliverRPC.Shell:output_type -> sliverpb.Shell + 180, // 256: rpcpb.SliverRPC.Portfwd:output_type -> sliverpb.Portfwd + 93, // 257: rpcpb.SliverRPC.CreateSocks:output_type -> sliverpb.Socks + 0, // 258: rpcpb.SliverRPC.CloseSocks:output_type -> commonpb.Empty + 94, // 259: rpcpb.SliverRPC.SocksProxy:output_type -> sliverpb.SocksData + 95, // 260: rpcpb.SliverRPC.CreateTunnel:output_type -> sliverpb.Tunnel + 0, // 261: rpcpb.SliverRPC.CloseTunnel:output_type -> commonpb.Empty + 96, // 262: rpcpb.SliverRPC.TunnelData:output_type -> sliverpb.TunnelData + 115, // 263: rpcpb.SliverRPC.Events:output_type -> clientpb.Event + 132, // [132:264] is the sub-list for method output_type + 0, // [0:132] 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 diff --git a/protobuf/rpcpb/services.proto b/protobuf/rpcpb/services.proto index 77f9646bf2..7775ef3450 100644 --- a/protobuf/rpcpb/services.proto +++ b/protobuf/rpcpb/services.proto @@ -69,6 +69,11 @@ service SliverRPC { rpc GenerateExternal(clientpb.GenerateReq) returns (clientpb.ExternalImplantConfig); rpc GenerateExternalSaveBuild(clientpb.ExternalImplantBinary) returns (commonpb.Empty); rpc GenerateExternalGetImplantConfig(clientpb.ImplantConfig) returns (clientpb.ExternalImplantConfig); + // rpc BuilderRegister(clientpb.Builder) returns (commonpb.Empty); + + rpc BuilderRegister(clientpb.Builder) returns (stream clientpb.Event); + rpc Builders(commonpb.Empty) returns (clientpb.Builders); + rpc Regenerate(clientpb.RegenerateReq) returns (clientpb.Generate); rpc ImplantBuilds(commonpb.Empty) returns (clientpb.ImplantBuilds); rpc DeleteImplantBuild(clientpb.DeleteReq) returns (commonpb.Empty); diff --git a/protobuf/rpcpb/services_grpc.pb.go b/protobuf/rpcpb/services_grpc.pb.go index 420bb47ba9..e235a30d11 100644 --- a/protobuf/rpcpb/services_grpc.pb.go +++ b/protobuf/rpcpb/services_grpc.pb.go @@ -70,6 +70,8 @@ type SliverRPCClient interface { GenerateExternal(ctx context.Context, in *clientpb.GenerateReq, opts ...grpc.CallOption) (*clientpb.ExternalImplantConfig, error) GenerateExternalSaveBuild(ctx context.Context, in *clientpb.ExternalImplantBinary, opts ...grpc.CallOption) (*commonpb.Empty, error) GenerateExternalGetImplantConfig(ctx context.Context, in *clientpb.ImplantConfig, opts ...grpc.CallOption) (*clientpb.ExternalImplantConfig, error) + BuilderRegister(ctx context.Context, in *clientpb.Builder, opts ...grpc.CallOption) (SliverRPC_BuilderRegisterClient, error) + Builders(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*clientpb.Builders, error) Regenerate(ctx context.Context, in *clientpb.RegenerateReq, opts ...grpc.CallOption) (*clientpb.Generate, error) ImplantBuilds(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*clientpb.ImplantBuilds, error) DeleteImplantBuild(ctx context.Context, in *clientpb.DeleteReq, opts ...grpc.CallOption) (*commonpb.Empty, error) @@ -516,6 +518,47 @@ func (c *sliverRPCClient) GenerateExternalGetImplantConfig(ctx context.Context, return out, nil } +func (c *sliverRPCClient) BuilderRegister(ctx context.Context, in *clientpb.Builder, opts ...grpc.CallOption) (SliverRPC_BuilderRegisterClient, error) { + stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[0], "/rpcpb.SliverRPC/BuilderRegister", opts...) + if err != nil { + return nil, err + } + x := &sliverRPCBuilderRegisterClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type SliverRPC_BuilderRegisterClient interface { + Recv() (*clientpb.Event, error) + grpc.ClientStream +} + +type sliverRPCBuilderRegisterClient struct { + grpc.ClientStream +} + +func (x *sliverRPCBuilderRegisterClient) Recv() (*clientpb.Event, error) { + m := new(clientpb.Event) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *sliverRPCClient) Builders(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (*clientpb.Builders, error) { + out := new(clientpb.Builders) + err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/Builders", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *sliverRPCClient) Regenerate(ctx context.Context, in *clientpb.RegenerateReq, opts ...grpc.CallOption) (*clientpb.Generate, error) { out := new(clientpb.Generate) err := c.cc.Invoke(ctx, "/rpcpb.SliverRPC/Regenerate", in, out, opts...) @@ -1309,7 +1352,7 @@ func (c *sliverRPCClient) CloseSocks(ctx context.Context, in *sliverpb.Socks, op } func (c *sliverRPCClient) SocksProxy(ctx context.Context, opts ...grpc.CallOption) (SliverRPC_SocksProxyClient, error) { - stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[0], "/rpcpb.SliverRPC/SocksProxy", opts...) + stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[1], "/rpcpb.SliverRPC/SocksProxy", opts...) if err != nil { return nil, err } @@ -1358,7 +1401,7 @@ func (c *sliverRPCClient) CloseTunnel(ctx context.Context, in *sliverpb.Tunnel, } func (c *sliverRPCClient) TunnelData(ctx context.Context, opts ...grpc.CallOption) (SliverRPC_TunnelDataClient, error) { - stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[1], "/rpcpb.SliverRPC/TunnelData", opts...) + stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[2], "/rpcpb.SliverRPC/TunnelData", opts...) if err != nil { return nil, err } @@ -1389,7 +1432,7 @@ func (x *sliverRPCTunnelDataClient) Recv() (*sliverpb.TunnelData, error) { } func (c *sliverRPCClient) Events(ctx context.Context, in *commonpb.Empty, opts ...grpc.CallOption) (SliverRPC_EventsClient, error) { - stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[2], "/rpcpb.SliverRPC/Events", opts...) + stream, err := c.cc.NewStream(ctx, &SliverRPC_ServiceDesc.Streams[3], "/rpcpb.SliverRPC/Events", opts...) if err != nil { return nil, err } @@ -1473,6 +1516,8 @@ type SliverRPCServer interface { GenerateExternal(context.Context, *clientpb.GenerateReq) (*clientpb.ExternalImplantConfig, error) GenerateExternalSaveBuild(context.Context, *clientpb.ExternalImplantBinary) (*commonpb.Empty, error) GenerateExternalGetImplantConfig(context.Context, *clientpb.ImplantConfig) (*clientpb.ExternalImplantConfig, error) + BuilderRegister(*clientpb.Builder, SliverRPC_BuilderRegisterServer) error + Builders(context.Context, *commonpb.Empty) (*clientpb.Builders, error) Regenerate(context.Context, *clientpb.RegenerateReq) (*clientpb.Generate, error) ImplantBuilds(context.Context, *commonpb.Empty) (*clientpb.ImplantBuilds, error) DeleteImplantBuild(context.Context, *clientpb.DeleteReq) (*commonpb.Empty, error) @@ -1694,6 +1739,12 @@ func (UnimplementedSliverRPCServer) GenerateExternalSaveBuild(context.Context, * func (UnimplementedSliverRPCServer) GenerateExternalGetImplantConfig(context.Context, *clientpb.ImplantConfig) (*clientpb.ExternalImplantConfig, error) { return nil, status.Errorf(codes.Unimplemented, "method GenerateExternalGetImplantConfig not implemented") } +func (UnimplementedSliverRPCServer) BuilderRegister(*clientpb.Builder, SliverRPC_BuilderRegisterServer) error { + return status.Errorf(codes.Unimplemented, "method BuilderRegister not implemented") +} +func (UnimplementedSliverRPCServer) Builders(context.Context, *commonpb.Empty) (*clientpb.Builders, error) { + return nil, status.Errorf(codes.Unimplemented, "method Builders not implemented") +} func (UnimplementedSliverRPCServer) Regenerate(context.Context, *clientpb.RegenerateReq) (*clientpb.Generate, error) { return nil, status.Errorf(codes.Unimplemented, "method Regenerate not implemented") } @@ -2652,6 +2703,45 @@ func _SliverRPC_GenerateExternalGetImplantConfig_Handler(srv interface{}, ctx co return interceptor(ctx, in, info, handler) } +func _SliverRPC_BuilderRegister_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(clientpb.Builder) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(SliverRPCServer).BuilderRegister(m, &sliverRPCBuilderRegisterServer{stream}) +} + +type SliverRPC_BuilderRegisterServer interface { + Send(*clientpb.Event) error + grpc.ServerStream +} + +type sliverRPCBuilderRegisterServer struct { + grpc.ServerStream +} + +func (x *sliverRPCBuilderRegisterServer) Send(m *clientpb.Event) error { + return x.ServerStream.SendMsg(m) +} + +func _SliverRPC_Builders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(commonpb.Empty) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SliverRPCServer).Builders(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/rpcpb.SliverRPC/Builders", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SliverRPCServer).Builders(ctx, req.(*commonpb.Empty)) + } + return interceptor(ctx, in, info, handler) +} + func _SliverRPC_Regenerate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(clientpb.RegenerateReq) if err := dec(in); err != nil { @@ -4500,6 +4590,10 @@ var SliverRPC_ServiceDesc = grpc.ServiceDesc{ MethodName: "GenerateExternalGetImplantConfig", Handler: _SliverRPC_GenerateExternalGetImplantConfig_Handler, }, + { + MethodName: "Builders", + Handler: _SliverRPC_Builders_Handler, + }, { MethodName: "Regenerate", Handler: _SliverRPC_Regenerate_Handler, @@ -4862,6 +4956,11 @@ var SliverRPC_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{ + { + StreamName: "BuilderRegister", + Handler: _SliverRPC_BuilderRegister_Handler, + ServerStreams: true, + }, { StreamName: "SocksProxy", Handler: _SliverRPC_SocksProxy_Handler, diff --git a/server/builder/builder.go b/server/builder/builder.go index a4b176c0af..d4c38a9ceb 100644 --- a/server/builder/builder.go +++ b/server/builder/builder.go @@ -46,25 +46,21 @@ type Config struct { } // StartBuilder - main entry point for the builder -func StartBuilder(rpc rpcpb.SliverRPCClient, conf Config) { +func StartBuilder(externalBuilder *clientpb.Builder, rpc rpcpb.SliverRPCClient) { sigint := make(chan os.Signal, 1) signal.Notify(sigint, os.Interrupt) - events := buildEvents(rpc) + events := buildEvents(externalBuilder, rpc) builderLog.Infof("Successfully started process as external builder") - builder := sliverBuilder{ - rpc: rpc, - config: conf, - } // Wait for signal or builds for { select { case <-sigint: return case event := <-events: - go builder.HandleBuildEvent(event) + go handleBuildEvent(externalBuilder, event, rpc) } } } @@ -74,8 +70,8 @@ type sliverBuilder struct { config Config } -func buildEvents(rpc rpcpb.SliverRPCClient) <-chan *clientpb.Event { - eventStream, err := rpc.Events(context.Background(), &commonpb.Empty{}) +func buildEvents(externalBuilder *clientpb.Builder, rpc rpcpb.SliverRPCClient) <-chan *clientpb.Event { + eventStream, err := rpc.BuilderRegister(context.Background(), externalBuilder) if err != nil { builderLog.Fatal(err) } @@ -99,11 +95,11 @@ func buildEvents(rpc rpcpb.SliverRPCClient) <-chan *clientpb.Event { return events } -// HandleBuildEvent - Handle an individual build event -func (b *sliverBuilder) HandleBuildEvent(event *clientpb.Event) { +// handleBuildEvent - Handle an individual build event +func handleBuildEvent(externalBuilder *clientpb.Builder, event *clientpb.Event, rpc rpcpb.SliverRPCClient) { implantConfigID := string(event.Data) builderLog.Infof("Build event for implant config id: %s", implantConfigID) - extConfig, err := b.rpc.GenerateExternalGetImplantConfig(context.Background(), &clientpb.ImplantConfig{ + extConfig, err := rpc.GenerateExternalGetImplantConfig(context.Background(), &clientpb.ImplantConfig{ ID: implantConfigID, }) if err != nil { @@ -116,15 +112,15 @@ func (b *sliverBuilder) HandleBuildEvent(event *clientpb.Event) { } // check to see if the event matches a target we're configured to build for - if !contains(b.config.GOOSs, extConfig.Config.GOOS) { + if !util.Contains(externalBuilder.GOOSs, extConfig.Config.GOOS) { builderLog.Warnf("This builder is not configured to build for goos %s, ignore event", extConfig.Config.GOOS) return } - if !contains(b.config.GOARCHs, extConfig.Config.GOARCH) { + if !util.Contains(externalBuilder.GOARCHs, extConfig.Config.GOARCH) { builderLog.Warnf("This builder is not configured to build for goarch %s, ignore event", extConfig.Config.GOARCH) return } - if !contains(b.config.Formats, extConfig.Config.Format) { + if !util.Contains(externalBuilder.Formats, extConfig.Config.Format) { builderLog.Warnf("This builder is not configured to build for format %s, ignore event", extConfig.Config.Format) return } @@ -174,7 +170,7 @@ func (b *sliverBuilder) HandleBuildEvent(event *clientpb.Event) { } builderLog.Infof("Uploading '%s' to server ...", extConfig.Config.Name) - _, err = b.rpc.GenerateExternalSaveBuild(context.Background(), &clientpb.ExternalImplantBinary{ + _, err = rpc.GenerateExternalSaveBuild(context.Background(), &clientpb.ExternalImplantBinary{ Name: extConfig.Config.Name, ImplantConfigID: extConfig.Config.ID, File: &commonpb.File{ @@ -188,12 +184,3 @@ func (b *sliverBuilder) HandleBuildEvent(event *clientpb.Event) { } builderLog.Infof("All done, built and saved %s", fileName) } - -func contains[T comparable](elems []T, v T) bool { - for _, s := range elems { - if v == s { - return true - } - } - return false -} diff --git a/server/cli/builder.go b/server/cli/builder.go index 8af889ce3d..0dad5e9e9e 100644 --- a/server/cli/builder.go +++ b/server/cli/builder.go @@ -65,7 +65,7 @@ var builderCmd = &cobra.Command{ return } - builderConfig := parseBuilderConfigFlags(cmd) + externalBuilder := parseBuilderConfigFlags(cmd) // load the client configuration from the filesystem config, err := clientAssets.ReadConfig(configPath) @@ -73,6 +73,7 @@ var builderCmd = &cobra.Command{ builderLog.Fatalf("Invalid config file: %s", err) os.Exit(-1) } + // connect to the server builderLog.Infof("Connecting to %s@%s:%d ...", config.Operator, config.LHost, config.LPort) rpc, ln, err := transport.MTLSConnect(config) @@ -81,24 +82,24 @@ var builderCmd = &cobra.Command{ os.Exit(-2) } defer ln.Close() - builder.StartBuilder(rpc, builderConfig) + builder.StartBuilder(externalBuilder, rpc) }, } -func parseBuilderConfigFlags(cmd *cobra.Command) builder.Config { - conf := builder.Config{} +func parseBuilderConfigFlags(cmd *cobra.Command) *clientpb.Builder { + externalBuilder := &clientpb.Builder{} var err error - conf.GOOSs, err = cmd.Flags().GetStringSlice(goosFlagStr) + externalBuilder.GOOSs, err = cmd.Flags().GetStringSlice(goosFlagStr) if err != nil { builderLog.Fatalf("Failed to parse --%s flag %s\n", goosFlagStr, err) } - builderLog.Debugf("GOOS enabled: %v", conf.GOOSs) - conf.GOARCHs, err = cmd.Flags().GetStringSlice(goarchFlagStr) + builderLog.Debugf("GOOS enabled: %v", externalBuilder.GOOSs) + externalBuilder.GOARCHs, err = cmd.Flags().GetStringSlice(goarchFlagStr) if err != nil { builderLog.Fatalf("Failed to parse --%s flag %s\n", goarchFlagStr, err) } - builderLog.Debugf("GOARCH enabled: %v", conf.GOARCHs) + builderLog.Debugf("GOARCH enabled: %v", externalBuilder.GOARCHs) rawFormats, err := cmd.Flags().GetStringSlice(formatFlagStr) if err != nil { builderLog.Fatalf("Failed to parse --%s flag %s\n", formatFlagStr, err) @@ -108,18 +109,18 @@ func parseBuilderConfigFlags(cmd *cobra.Command) builder.Config { switch strings.ToLower(rawFormat) { case "exe", "executable", "pe": builderLog.Debugf("Executable format enabled (%d)", clientpb.OutputFormat_EXECUTABLE) - conf.Formats = append(conf.Formats, clientpb.OutputFormat_EXECUTABLE) + externalBuilder.Formats = append(externalBuilder.Formats, clientpb.OutputFormat_EXECUTABLE) case "dll", "so", "shared", "dylib", "lib", "library": builderLog.Debugf("Library format enabled (%d)", clientpb.OutputFormat_SHARED_LIB) - conf.Formats = append(conf.Formats, clientpb.OutputFormat_SHARED_LIB) + externalBuilder.Formats = append(externalBuilder.Formats, clientpb.OutputFormat_SHARED_LIB) case "service": builderLog.Debugf("Service format enabled (%d)", clientpb.OutputFormat_SERVICE) - conf.Formats = append(conf.Formats, clientpb.OutputFormat_SERVICE) + externalBuilder.Formats = append(externalBuilder.Formats, clientpb.OutputFormat_SERVICE) case "bin", "shellcode": builderLog.Debugf("Shellcode format enabled (%d)", clientpb.OutputFormat_SHELLCODE) - conf.Formats = append(conf.Formats, clientpb.OutputFormat_SHELLCODE) + externalBuilder.Formats = append(externalBuilder.Formats, clientpb.OutputFormat_SHELLCODE) } } - return conf + return externalBuilder } diff --git a/server/core/builders.go b/server/core/builders.go new file mode 100644 index 0000000000..7596f14706 --- /dev/null +++ b/server/core/builders.go @@ -0,0 +1,55 @@ +package core + +/* + Sliver Implant Framework + Copyright (C) 2022 Bishop Fox + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +import ( + "sync" + + "github.com/bishopfox/sliver/protobuf/clientpb" + "github.com/gofrs/uuid" +) + +var ( + // ClientID -> *clientpb.Builder + builders = &sync.Map{} +) + +func AddBuilder(builder *clientpb.Builder) string { + builderID, _ := uuid.NewV4() + builders.Store(builderID.String(), builder) + return builderID.String() +} + +func GetBuilder(builderID string) *clientpb.Builder { + builder, _ := builders.Load(builderID) + return builder.(*clientpb.Builder) +} + +func AllBuilders() []*clientpb.Builder { + externalBuilders := []*clientpb.Builder{} + builders.Range(func(key, value interface{}) bool { + externalBuilders = append(externalBuilders, value.(*clientpb.Builder)) + return true + }) + return externalBuilders +} + +func RemoveBuilder(builderID string) { + builders.Delete(builderID) +} diff --git a/server/core/tunnels.go b/server/core/tunnels.go index b1f8a1174c..885fd0aa9c 100644 --- a/server/core/tunnels.go +++ b/server/core/tunnels.go @@ -137,7 +137,7 @@ func (t *tunnels) ScheduleClose(tunnelID uint64) { return } - timeDelta := time.Now().Sub(tunnel.GetLastMessageTime()) + timeDelta := time.Since(tunnel.GetLastMessageTime()) coreLog.Printf("Scheduled close for channel %d (delta: %v)", tunnelID, timeDelta) diff --git a/server/rpc/rpc-events.go b/server/rpc/rpc-events.go index 00023013af..e45f235d9d 100644 --- a/server/rpc/rpc-events.go +++ b/server/rpc/rpc-events.go @@ -13,8 +13,8 @@ var ( ) // Events - Stream events to client -func (s *Server) Events(_ *commonpb.Empty, stream rpcpb.SliverRPC_EventsServer) error { - commonName := s.getClientCommonName(stream.Context()) +func (rpc *Server) Events(_ *commonpb.Empty, stream rpcpb.SliverRPC_EventsServer) error { + commonName := rpc.getClientCommonName(stream.Context()) client := core.NewClient(commonName) core.Clients.Add(client) events := core.EventBroker.Subscribe() diff --git a/server/rpc/rpc-generate.go b/server/rpc/rpc-generate.go index b6b6dc93d8..fc0a538dcb 100644 --- a/server/rpc/rpc-generate.go +++ b/server/rpc/rpc-generate.go @@ -29,6 +29,7 @@ import ( consts "github.com/bishopfox/sliver/client/constants" "github.com/bishopfox/sliver/protobuf/clientpb" "github.com/bishopfox/sliver/protobuf/commonpb" + "github.com/bishopfox/sliver/protobuf/rpcpb" "github.com/bishopfox/sliver/server/assets" "github.com/bishopfox/sliver/server/codenames" "github.com/bishopfox/sliver/server/core" @@ -361,3 +362,59 @@ func (rpc *Server) GenerateExternalGetImplantConfig(ctx context.Context, req *cl OTPSecret: otpSecret, }, nil } + +// External Builders - +func (rpc *Server) BuilderRegister(req *clientpb.Builder, stream rpcpb.SliverRPC_BuilderRegisterServer) error { + req.OperatorName = rpc.getClientCommonName(stream.Context()) + builderID := core.AddBuilder(req) + events := core.EventBroker.Subscribe() + + defer func() { + rpcEventsLog.Infof("Builder %s disconnected", builderID) + core.EventBroker.Unsubscribe(events) + core.RemoveBuilder(builderID) + }() + + // Only forward these event types to the builder + buildEvents := []string{ + consts.ExternalBuildEvent, + } + + for { + select { + case <-stream.Context().Done(): + return nil + case event := <-events: + if !util.Contains(buildEvents, event.EventType) { + continue // Skip events not relevant to the builder + } + + pbEvent := &clientpb.Event{ + EventType: event.EventType, + Data: event.Data, + } + if event.Job != nil { + pbEvent.Job = event.Job.ToProtobuf() + } + if event.Client != nil { + pbEvent.Client = event.Client.ToProtobuf() + } + if event.Session != nil { + pbEvent.Session = event.Session.ToProtobuf() + } + if event.Err != nil { + pbEvent.Err = event.Err.Error() + } + + err := stream.Send(pbEvent) + if err != nil { + rpcEventsLog.Warnf(err.Error()) + return err + } + } + } +} + +func (rpc *Server) Builders(ctx context.Context, _ *commonpb.Empty) (*clientpb.Builders, error) { + return &clientpb.Builders{Builders: core.AllBuilders()}, nil +} diff --git a/util/generics.go b/util/generics.go new file mode 100644 index 0000000000..73d728d7b4 --- /dev/null +++ b/util/generics.go @@ -0,0 +1,10 @@ +package util + +func Contains[T comparable](elements []T, v T) bool { + for _, s := range elements { + if v == s { + return true + } + } + return false +}