Change ListProcesses to ListPids

These rpcs only return pids []uint32 so should be named that way in
order to have other rpcs that list Processes such as Exec'd processes.

Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
Michael Crosby 2017-06-28 16:09:29 -07:00
parent 55861c1a00
commit e2d5522435
11 changed files with 415 additions and 369 deletions

View File

@ -26,8 +26,8 @@
CloseIORequest
PauseTaskRequest
ResumeTaskRequest
ListProcessesRequest
ListProcessesResponse
ListPidsRequest
ListPidsResponse
CheckpointTaskRequest
CheckpointTaskResponse
UpdateTaskRequest
@ -355,21 +355,21 @@ func (m *ResumeTaskRequest) Reset() { *m = ResumeTaskRequest{
func (*ResumeTaskRequest) ProtoMessage() {}
func (*ResumeTaskRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{16} }
type ListProcessesRequest struct {
type ListPidsRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
}
func (m *ListProcessesRequest) Reset() { *m = ListProcessesRequest{} }
func (*ListProcessesRequest) ProtoMessage() {}
func (*ListProcessesRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{17} }
func (m *ListPidsRequest) Reset() { *m = ListPidsRequest{} }
func (*ListPidsRequest) ProtoMessage() {}
func (*ListPidsRequest) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{17} }
type ListProcessesResponse struct {
Processes []*containerd_v1_types.Process `protobuf:"bytes,1,rep,name=processes" json:"processes,omitempty"`
type ListPidsResponse struct {
Pids []uint32 `protobuf:"varint,1,rep,packed,name=pids" json:"pids,omitempty"`
}
func (m *ListProcessesResponse) Reset() { *m = ListProcessesResponse{} }
func (*ListProcessesResponse) ProtoMessage() {}
func (*ListProcessesResponse) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{18} }
func (m *ListPidsResponse) Reset() { *m = ListPidsResponse{} }
func (*ListPidsResponse) ProtoMessage() {}
func (*ListPidsResponse) Descriptor() ([]byte, []int) { return fileDescriptorTasks, []int{18} }
type CheckpointTaskRequest struct {
ContainerID string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
@ -416,8 +416,8 @@ func init() {
proto.RegisterType((*CloseIORequest)(nil), "containerd.services.tasks.v1.CloseIORequest")
proto.RegisterType((*PauseTaskRequest)(nil), "containerd.services.tasks.v1.PauseTaskRequest")
proto.RegisterType((*ResumeTaskRequest)(nil), "containerd.services.tasks.v1.ResumeTaskRequest")
proto.RegisterType((*ListProcessesRequest)(nil), "containerd.services.tasks.v1.ListProcessesRequest")
proto.RegisterType((*ListProcessesResponse)(nil), "containerd.services.tasks.v1.ListProcessesResponse")
proto.RegisterType((*ListPidsRequest)(nil), "containerd.services.tasks.v1.ListPidsRequest")
proto.RegisterType((*ListPidsResponse)(nil), "containerd.services.tasks.v1.ListPidsResponse")
proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.services.tasks.v1.CheckpointTaskRequest")
proto.RegisterType((*CheckpointTaskResponse)(nil), "containerd.services.tasks.v1.CheckpointTaskResponse")
proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.services.tasks.v1.UpdateTaskRequest")
@ -450,7 +450,7 @@ type TasksClient interface {
CloseIO(ctx context.Context, in *CloseIORequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
Pause(ctx context.Context, in *PauseTaskRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
Resume(ctx context.Context, in *ResumeTaskRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error)
ListPids(ctx context.Context, in *ListPidsRequest, opts ...grpc.CallOption) (*ListPidsResponse, error)
Checkpoint(ctx context.Context, in *CheckpointTaskRequest, opts ...grpc.CallOption) (*CheckpointTaskResponse, error)
Update(ctx context.Context, in *UpdateTaskRequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error)
}
@ -571,9 +571,9 @@ func (c *tasksClient) Resume(ctx context.Context, in *ResumeTaskRequest, opts ..
return out, nil
}
func (c *tasksClient) ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error) {
out := new(ListProcessesResponse)
err := grpc.Invoke(ctx, "/containerd.services.tasks.v1.Tasks/ListProcesses", in, out, c.cc, opts...)
func (c *tasksClient) ListPids(ctx context.Context, in *ListPidsRequest, opts ...grpc.CallOption) (*ListPidsResponse, error) {
out := new(ListPidsResponse)
err := grpc.Invoke(ctx, "/containerd.services.tasks.v1.Tasks/ListPids", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
@ -617,7 +617,7 @@ type TasksServer interface {
CloseIO(context.Context, *CloseIORequest) (*google_protobuf.Empty, error)
Pause(context.Context, *PauseTaskRequest) (*google_protobuf.Empty, error)
Resume(context.Context, *ResumeTaskRequest) (*google_protobuf.Empty, error)
ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error)
ListPids(context.Context, *ListPidsRequest) (*ListPidsResponse, error)
Checkpoint(context.Context, *CheckpointTaskRequest) (*CheckpointTaskResponse, error)
Update(context.Context, *UpdateTaskRequest) (*google_protobuf.Empty, error)
}
@ -842,20 +842,20 @@ func _Tasks_Resume_Handler(srv interface{}, ctx context.Context, dec func(interf
return interceptor(ctx, in, info, handler)
}
func _Tasks_ListProcesses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListProcessesRequest)
func _Tasks_ListPids_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListPidsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TasksServer).ListProcesses(ctx, in)
return srv.(TasksServer).ListPids(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/containerd.services.tasks.v1.Tasks/ListProcesses",
FullMethod: "/containerd.services.tasks.v1.Tasks/ListPids",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TasksServer).ListProcesses(ctx, req.(*ListProcessesRequest))
return srv.(TasksServer).ListPids(ctx, req.(*ListPidsRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -949,8 +949,8 @@ var _Tasks_serviceDesc = grpc.ServiceDesc{
Handler: _Tasks_Resume_Handler,
},
{
MethodName: "ListProcesses",
Handler: _Tasks_ListProcesses_Handler,
MethodName: "ListPids",
Handler: _Tasks_ListPids_Handler,
},
{
MethodName: "Checkpoint",
@ -1559,7 +1559,7 @@ func (m *ResumeTaskRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *ListProcessesRequest) Marshal() (dAtA []byte, err error) {
func (m *ListPidsRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1569,7 +1569,7 @@ func (m *ListProcessesRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *ListProcessesRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *ListPidsRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
@ -1583,7 +1583,7 @@ func (m *ListProcessesRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *ListProcessesResponse) Marshal() (dAtA []byte, err error) {
func (m *ListPidsResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1593,22 +1593,27 @@ func (m *ListProcessesResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *ListProcessesResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *ListPidsResponse) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Processes) > 0 {
for _, msg := range m.Processes {
dAtA[i] = 0xa
i++
i = encodeVarintTasks(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
if len(m.Pids) > 0 {
dAtA7 := make([]byte, len(m.Pids)*10)
var j6 int
for _, num := range m.Pids {
for num >= 1<<7 {
dAtA7[j6] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j6++
}
i += n
dAtA7[j6] = uint8(num)
j6++
}
dAtA[i] = 0xa
i++
i = encodeVarintTasks(dAtA, i, uint64(j6))
i += copy(dAtA[i:], dAtA7[:j6])
}
return i, nil
}
@ -1715,11 +1720,11 @@ func (m *UpdateTaskRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0x12
i++
i = encodeVarintTasks(dAtA, i, uint64(m.Resources.Size()))
n6, err := m.Resources.MarshalTo(dAtA[i:])
n8, err := m.Resources.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n6
i += n8
}
return i, nil
}
@ -2013,7 +2018,7 @@ func (m *ResumeTaskRequest) Size() (n int) {
return n
}
func (m *ListProcessesRequest) Size() (n int) {
func (m *ListPidsRequest) Size() (n int) {
var l int
_ = l
l = len(m.ContainerID)
@ -2023,14 +2028,15 @@ func (m *ListProcessesRequest) Size() (n int) {
return n
}
func (m *ListProcessesResponse) Size() (n int) {
func (m *ListPidsResponse) Size() (n int) {
var l int
_ = l
if len(m.Processes) > 0 {
for _, e := range m.Processes {
l = e.Size()
n += 1 + l + sovTasks(uint64(l))
if len(m.Pids) > 0 {
l = 0
for _, e := range m.Pids {
l += sovTasks(uint64(e))
}
n += 1 + sovTasks(uint64(l)) + l
}
return n
}
@ -2309,22 +2315,22 @@ func (this *ResumeTaskRequest) String() string {
}, "")
return s
}
func (this *ListProcessesRequest) String() string {
func (this *ListPidsRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ListProcessesRequest{`,
s := strings.Join([]string{`&ListPidsRequest{`,
`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
`}`,
}, "")
return s
}
func (this *ListProcessesResponse) String() string {
func (this *ListPidsResponse) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ListProcessesResponse{`,
`Processes:` + strings.Replace(fmt.Sprintf("%v", this.Processes), "Process", "containerd_v1_types.Process", 1) + `,`,
s := strings.Join([]string{`&ListPidsResponse{`,
`Pids:` + fmt.Sprintf("%v", this.Pids) + `,`,
`}`,
}, "")
return s
@ -4292,7 +4298,7 @@ func (m *ResumeTaskRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -4315,10 +4321,10 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListProcessesRequest: wiretype end group for non-group")
return fmt.Errorf("proto: ListPidsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListProcessesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: ListPidsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -4371,7 +4377,7 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ListProcessesResponse) Unmarshal(dAtA []byte) error {
func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -4394,43 +4400,74 @@ func (m *ListProcessesResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListProcessesResponse: wiretype end group for non-group")
return fmt.Errorf("proto: ListPidsResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListProcessesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: ListPidsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Processes", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTasks
if wireType == 0 {
var v uint32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTasks
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if iNdEx >= l {
m.Pids = append(m.Pids, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTasks
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthTasks
}
postIndex := iNdEx + packedLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
for iNdEx < postIndex {
var v uint32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTasks
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.Pids = append(m.Pids, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field Pids", wireType)
}
if msglen < 0 {
return ErrInvalidLengthTasks
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Processes = append(m.Processes, &containerd_v1_types.Process{})
if err := m.Processes[len(m.Processes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipTasks(dAtA[iNdEx:])
@ -4979,82 +5016,82 @@ func init() {
}
var fileDescriptorTasks = []byte{
// 1231 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x4f, 0xe3, 0x46,
0x14, 0xc7, 0xf9, 0xda, 0xf0, 0x02, 0x2c, 0x4c, 0x59, 0x9a, 0x75, 0x51, 0x82, 0x7c, 0x69, 0xba,
0x2a, 0x76, 0x09, 0x55, 0x55, 0xb1, 0xab, 0x6a, 0x81, 0x50, 0x4a, 0x3f, 0x04, 0x6b, 0xb6, 0x55,
0x85, 0x2a, 0x45, 0x26, 0x1e, 0x82, 0x15, 0xc7, 0xf6, 0x7a, 0x26, 0x2c, 0x69, 0x2f, 0x3d, 0xf5,
0xda, 0x1e, 0xfb, 0x97, 0xf4, 0xd0, 0x73, 0x0f, 0x1c, 0x7b, 0xe8, 0xa1, 0xea, 0x81, 0x76, 0xf9,
0x4b, 0xaa, 0x19, 0x4f, 0x1c, 0x27, 0x21, 0x71, 0x42, 0xb8, 0xc0, 0xcc, 0xf3, 0x7b, 0x6f, 0xde,
0xf7, 0xef, 0x29, 0xb0, 0x53, 0xb7, 0xe8, 0x79, 0xeb, 0x54, 0xad, 0xb9, 0x4d, 0xad, 0xe6, 0x3a,
0xd4, 0xb0, 0x1c, 0xec, 0x9b, 0xd1, 0xa3, 0xe1, 0x59, 0x1a, 0xc1, 0xfe, 0x85, 0x55, 0xc3, 0x44,
0xa3, 0x06, 0x69, 0x10, 0xed, 0x62, 0x23, 0x38, 0xa8, 0x9e, 0xef, 0x52, 0x17, 0xad, 0x76, 0xb9,
0xd5, 0x0e, 0xa7, 0x1a, 0x30, 0x5c, 0x6c, 0xc8, 0xef, 0xd4, 0x5d, 0xb7, 0x6e, 0x63, 0x8d, 0xf3,
0x9e, 0xb6, 0xce, 0x34, 0xdc, 0xf4, 0x68, 0x3b, 0x10, 0x95, 0x1f, 0xf7, 0x7f, 0x34, 0x9c, 0xce,
0xa7, 0xe5, 0xba, 0x5b, 0x77, 0xf9, 0x51, 0x63, 0x27, 0x41, 0xfd, 0x68, 0x2c, 0x7b, 0x69, 0xdb,
0xc3, 0x44, 0x6b, 0xba, 0x2d, 0x87, 0x0a, 0xb9, 0xa7, 0x13, 0xc8, 0x99, 0x98, 0xd4, 0x7c, 0xcb,
0xa3, 0xae, 0x2f, 0x84, 0xb7, 0x26, 0x10, 0x66, 0x7e, 0xf3, 0x3f, 0x42, 0xb6, 0xd8, 0xef, 0x21,
0xb5, 0x9a, 0x98, 0x50, 0xa3, 0xe9, 0x05, 0x0c, 0xca, 0xaf, 0x09, 0x58, 0xda, 0xf5, 0xb1, 0x41,
0xf1, 0x4b, 0x83, 0x34, 0x74, 0xfc, 0xaa, 0x85, 0x09, 0x45, 0x65, 0x98, 0x0b, 0xd5, 0x57, 0x2d,
0x33, 0x9f, 0x58, 0x93, 0x4a, 0xb3, 0x3b, 0x0f, 0x6f, 0xae, 0x8b, 0xb9, 0xdd, 0x0e, 0xfd, 0xa0,
0xa2, 0xe7, 0x42, 0xa6, 0x03, 0x13, 0x69, 0x90, 0xf1, 0x5d, 0x97, 0x9e, 0x91, 0x7c, 0x72, 0x2d,
0x59, 0xca, 0x95, 0xdf, 0x56, 0x23, 0x89, 0xe1, 0xd6, 0xa9, 0x5f, 0xb1, 0x90, 0xe8, 0x82, 0x0d,
0x2d, 0x43, 0x9a, 0x50, 0xd3, 0x72, 0xf2, 0x29, 0xa6, 0x5d, 0x0f, 0x2e, 0x68, 0x05, 0x32, 0x84,
0x9a, 0x6e, 0x8b, 0xe6, 0xd3, 0x9c, 0x2c, 0x6e, 0x82, 0x8e, 0x7d, 0x3f, 0x9f, 0x09, 0xe9, 0xd8,
0xf7, 0x91, 0x0c, 0x59, 0x8a, 0xfd, 0xa6, 0xe5, 0x18, 0x76, 0xfe, 0xc1, 0x9a, 0x54, 0xca, 0xea,
0xe1, 0x1d, 0x3d, 0x03, 0xa8, 0x9d, 0xe3, 0x5a, 0xc3, 0x73, 0x2d, 0x87, 0xe6, 0xb3, 0x6b, 0x52,
0x29, 0x57, 0x5e, 0x1d, 0x34, 0xab, 0x12, 0x46, 0x5c, 0x8f, 0xf0, 0x2b, 0x27, 0x80, 0xa2, 0x91,
0x21, 0x9e, 0xeb, 0x10, 0x7c, 0xa7, 0xd0, 0x2c, 0x42, 0xd2, 0xb3, 0xcc, 0x7c, 0x72, 0x4d, 0x2a,
0xcd, 0xeb, 0xec, 0xa8, 0x7c, 0x0a, 0x8b, 0xc7, 0xd4, 0xf0, 0xe9, 0xa8, 0xa0, 0x4b, 0xf1, 0x9a,
0x95, 0x7d, 0x58, 0xaa, 0x60, 0x1b, 0x8f, 0xce, 0xde, 0x38, 0x8a, 0x7e, 0x97, 0x60, 0x21, 0xd0,
0x34, 0xd4, 0x53, 0x69, 0x7c, 0x4f, 0x13, 0xa1, 0xa7, 0xa8, 0x08, 0x39, 0x7c, 0x69, 0xd1, 0x2a,
0xa1, 0x06, 0x6d, 0x11, 0x11, 0x03, 0x60, 0xa4, 0x63, 0x4e, 0x41, 0xdb, 0x30, 0xcb, 0x6e, 0xd8,
0xac, 0x1a, 0x94, 0x97, 0x42, 0xae, 0x2c, 0xab, 0x41, 0xd9, 0xaa, 0x9d, 0xb2, 0x55, 0x5f, 0x76,
0xca, 0x76, 0x27, 0x7b, 0x75, 0x5d, 0x9c, 0xf9, 0xe5, 0xdf, 0xa2, 0xa4, 0x67, 0x03, 0xb1, 0x6d,
0xaa, 0x7c, 0x07, 0xcb, 0x81, 0xed, 0x47, 0xbe, 0x5b, 0xc3, 0x84, 0x4c, 0x11, 0x88, 0x41, 0x0f,
0x94, 0x0a, 0x2c, 0xec, 0xe3, 0xa9, 0x33, 0xf5, 0x1c, 0x1e, 0x86, 0x5a, 0x44, 0x80, 0xd7, 0x21,
0xc5, 0x5a, 0x95, 0x8b, 0xe7, 0xca, 0x8f, 0xa3, 0x85, 0x79, 0xb1, 0x21, 0x6a, 0x93, 0x0b, 0x70,
0x36, 0xe5, 0x09, 0x2c, 0x7e, 0x69, 0x11, 0xae, 0x22, 0xf4, 0x70, 0x05, 0x32, 0x67, 0x96, 0x4d,
0xb1, 0x1f, 0xd8, 0xa0, 0x8b, 0x9b, 0x52, 0x81, 0xa5, 0x08, 0xaf, 0x78, 0x4f, 0x83, 0x34, 0x9f,
0x8b, 0x79, 0x89, 0x37, 0xe8, 0x88, 0x07, 0x03, 0x3e, 0xe5, 0x67, 0x09, 0x72, 0x5f, 0x58, 0xb6,
0x3d, 0x4d, 0x3c, 0x59, 0xdf, 0x5a, 0x75, 0xd6, 0x9d, 0x41, 0x48, 0xc5, 0x0d, 0x21, 0x48, 0x1a,
0xb6, 0xcd, 0xeb, 0x21, 0xfb, 0xd9, 0x8c, 0xce, 0x2e, 0x8c, 0xc6, 0x62, 0xcf, 0x8a, 0x60, 0x9e,
0xd1, 0x3c, 0xcb, 0xdc, 0x99, 0x03, 0xf0, 0x2c, 0xb3, 0xea, 0xfa, 0x55, 0xc3, 0xb6, 0x95, 0xbf,
0x24, 0x40, 0x7b, 0x97, 0xb8, 0x76, 0x0f, 0x89, 0x0e, 0xc7, 0x4f, 0xe2, 0xf6, 0xf1, 0x93, 0x1c,
0x32, 0x7e, 0x52, 0x43, 0xc7, 0x4f, 0xba, 0x6f, 0xfc, 0x94, 0x20, 0x45, 0x3c, 0x5c, 0xe3, 0x03,
0x2b, 0x57, 0x5e, 0x1e, 0x28, 0xea, 0x6d, 0xa7, 0xad, 0x73, 0x0e, 0xe5, 0x5d, 0x78, 0xab, 0xc7,
0x2b, 0x91, 0x30, 0x51, 0x8b, 0x52, 0xb7, 0x16, 0x7f, 0x92, 0x60, 0x51, 0xc7, 0xc4, 0xfa, 0x1e,
0x1f, 0xd1, 0xf6, 0xbd, 0x96, 0x39, 0x8b, 0xc7, 0x6b, 0xcb, 0xa4, 0xe7, 0xa2, 0x45, 0x83, 0x0b,
0xf3, 0xfb, 0x1c, 0x5b, 0xf5, 0xf3, 0xa0, 0x35, 0xe7, 0x75, 0x71, 0x53, 0x6c, 0x58, 0xd8, 0xb5,
0x5d, 0x82, 0x0f, 0x0e, 0xef, 0xdd, 0x8a, 0x20, 0x2b, 0xbc, 0x30, 0x44, 0x56, 0xd8, 0xb8, 0x3c,
0x32, 0x5a, 0x04, 0xdf, 0xc3, 0xb8, 0xd4, 0x31, 0x69, 0x35, 0xa7, 0x56, 0xf4, 0x39, 0x2c, 0xb3,
0xfe, 0x12, 0x09, 0xc3, 0xd3, 0x14, 0xa2, 0x72, 0x0c, 0x8f, 0xfa, 0x74, 0x89, 0xf4, 0x6f, 0xc1,
0xac, 0xd7, 0x21, 0x8a, 0x9e, 0x5d, 0xbd, 0xb5, 0x67, 0x3b, 0x75, 0xd3, 0x65, 0x57, 0xfe, 0x48,
0xc0, 0xa3, 0xdd, 0x10, 0xcb, 0xa6, 0x74, 0x17, 0x55, 0x61, 0xc9, 0x33, 0x7c, 0xec, 0xd0, 0x6a,
0x04, 0x4f, 0x03, 0xe4, 0x2b, 0xb3, 0x79, 0xfc, 0xcf, 0x75, 0xf1, 0x49, 0x64, 0x4b, 0x71, 0x3d,
0xec, 0x84, 0xe2, 0x44, 0xab, 0xbb, 0xeb, 0xa6, 0x55, 0xc7, 0x84, 0xaa, 0x15, 0xfe, 0x4f, 0x5f,
0x0c, 0x94, 0x75, 0xed, 0x43, 0x27, 0xf0, 0xc0, 0xf5, 0xa8, 0xe5, 0x3a, 0x9d, 0xed, 0xe1, 0xb9,
0x3a, 0x6a, 0xad, 0x53, 0x6f, 0x75, 0x4d, 0x3d, 0x0c, 0x54, 0xec, 0x39, 0xd4, 0x6f, 0xeb, 0x1d,
0x85, 0xf2, 0x16, 0xcc, 0x45, 0x3f, 0xb0, 0xa2, 0x6b, 0xe0, 0xb6, 0x18, 0x98, 0xec, 0xc8, 0x8a,
0xee, 0xc2, 0xb0, 0x5b, 0xb8, 0x33, 0x0a, 0xf8, 0x65, 0x2b, 0xf1, 0xb1, 0xa4, 0x7c, 0x0b, 0x2b,
0xfd, 0x4f, 0x89, 0xe4, 0x7c, 0x02, 0xb9, 0xee, 0xa6, 0x76, 0x6b, 0x7a, 0x06, 0x96, 0x8b, 0xa8,
0x80, 0xf2, 0x03, 0x2c, 0x7d, 0xed, 0x99, 0xc6, 0xd4, 0xc8, 0x8d, 0xca, 0x30, 0xeb, 0x63, 0xe2,
0xb6, 0xfc, 0x1a, 0x26, 0xdc, 0x81, 0x61, 0xa3, 0xa6, 0xcb, 0x56, 0xfe, 0x2d, 0x07, 0x69, 0x8e,
0x0d, 0xa8, 0x01, 0x99, 0x60, 0xc9, 0x41, 0x5a, 0x4c, 0xc4, 0xfb, 0x97, 0x44, 0xf9, 0x83, 0xf1,
0x05, 0x44, 0xcc, 0x0e, 0x21, 0xcd, 0xb7, 0x1e, 0xa4, 0x8e, 0x16, 0xed, 0x5f, 0x8d, 0xe4, 0x95,
0x01, 0x87, 0xf6, 0xd8, 0x1a, 0x8f, 0xea, 0x90, 0x09, 0x80, 0x3f, 0xce, 0xfa, 0x81, 0x25, 0x49,
0x7e, 0x7f, 0x1c, 0x81, 0xd0, 0xf2, 0x57, 0x30, 0xdf, 0xb3, 0x61, 0xa0, 0xf2, 0x38, 0xe2, 0xbd,
0x28, 0x35, 0xe1, 0x93, 0xa7, 0x90, 0xdc, 0xc7, 0x14, 0xc5, 0x08, 0xf5, 0x6e, 0x26, 0xf2, 0xfa,
0x98, 0xdc, 0xe2, 0x8d, 0x3a, 0xa4, 0xd8, 0xe8, 0x89, 0xcb, 0x47, 0xff, 0xda, 0x21, 0x6b, 0x63,
0xf3, 0x8b, 0x87, 0x0e, 0x20, 0xc5, 0x16, 0x09, 0xf4, 0xde, 0x68, 0xc1, 0xc8, 0xb2, 0x31, 0x34,
0xe7, 0x0d, 0x48, 0x31, 0xac, 0x44, 0x31, 0xe5, 0x37, 0xb8, 0x25, 0xc8, 0x1b, 0x13, 0x48, 0x08,
0xbb, 0x8f, 0x61, 0x36, 0x84, 0xdb, 0xb8, 0x28, 0xf5, 0xe3, 0xf2, 0x50, 0x0f, 0x0e, 0xe1, 0x81,
0xc0, 0xce, 0xb8, 0xec, 0xf6, 0x42, 0xec, 0x08, 0x85, 0x69, 0x0e, 0x8f, 0x71, 0x16, 0xf6, 0x63,
0xe8, 0x50, 0x85, 0x2f, 0x20, 0x13, 0xe0, 0x64, 0x5c, 0x5f, 0x0d, 0xa0, 0xe9, 0x50, 0x95, 0x97,
0x30, 0xdf, 0x83, 0x72, 0x71, 0x1d, 0x74, 0x1b, 0xbc, 0xca, 0x9b, 0x13, 0xc9, 0x88, 0x1c, 0xbe,
0x06, 0x88, 0x20, 0xcd, 0xe6, 0x1d, 0x80, 0x45, 0xfe, 0x70, 0x32, 0x21, 0xf1, 0xf0, 0x0b, 0xc8,
0x04, 0x23, 0x3e, 0x2e, 0x8a, 0x03, 0x40, 0x30, 0x2c, 0x8a, 0x3b, 0xdf, 0x5c, 0xbd, 0x29, 0xcc,
0xfc, 0xfd, 0xa6, 0x30, 0xf3, 0xe3, 0x4d, 0x41, 0xba, 0xba, 0x29, 0x48, 0x7f, 0xde, 0x14, 0xa4,
0xff, 0x6e, 0x0a, 0xd2, 0xc9, 0xb3, 0xbb, 0xfd, 0x94, 0xf2, 0x94, 0x1f, 0x4e, 0x33, 0xfc, 0x9d,
0xcd, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x1a, 0x9f, 0x9a, 0x26, 0x91, 0x11, 0x00, 0x00,
// 1228 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcf, 0x6f, 0x1b, 0xc5,
0x17, 0xcf, 0xfa, 0x57, 0x9d, 0xe7, 0xa6, 0x4d, 0xe6, 0x9b, 0x6f, 0x70, 0x97, 0xca, 0x8e, 0xf6,
0x00, 0xa6, 0x22, 0xbb, 0xc4, 0x45, 0x08, 0xb5, 0x15, 0x6a, 0x13, 0x87, 0x12, 0x01, 0x4a, 0xba,
0x29, 0x08, 0x45, 0x48, 0xd6, 0xc6, 0x3b, 0x71, 0x46, 0x5e, 0xef, 0x6e, 0x77, 0xc6, 0x69, 0x0d,
0x17, 0x4e, 0x5c, 0xe1, 0xc8, 0x7f, 0xc0, 0xff, 0xc0, 0x99, 0x43, 0x8e, 0x1c, 0x38, 0x20, 0x0e,
0x81, 0xe6, 0x2f, 0x41, 0xf3, 0xc3, 0x9b, 0x8d, 0x5d, 0x7b, 0x9d, 0x38, 0x97, 0x64, 0xde, 0xec,
0x7b, 0x6f, 0xde, 0xef, 0xcf, 0x93, 0x61, 0xa3, 0x4d, 0xd8, 0x51, 0xef, 0xc0, 0x6c, 0x05, 0x5d,
0xab, 0x15, 0xf8, 0xcc, 0x21, 0x3e, 0x8e, 0xdc, 0xe4, 0xd1, 0x09, 0x89, 0x45, 0x71, 0x74, 0x4c,
0x5a, 0x98, 0x5a, 0xcc, 0xa1, 0x1d, 0x6a, 0x1d, 0xaf, 0xcb, 0x83, 0x19, 0x46, 0x01, 0x0b, 0xd0,
0xdd, 0x73, 0x6e, 0x73, 0xc0, 0x69, 0x4a, 0x86, 0xe3, 0x75, 0xfd, 0xed, 0x76, 0x10, 0xb4, 0x3d,
0x6c, 0x09, 0xde, 0x83, 0xde, 0xa1, 0x85, 0xbb, 0x21, 0xeb, 0x4b, 0x51, 0xfd, 0xce, 0xf0, 0x47,
0xc7, 0x1f, 0x7c, 0x5a, 0x6e, 0x07, 0xed, 0x40, 0x1c, 0x2d, 0x7e, 0x52, 0xb7, 0x1f, 0x4d, 0x65,
0x2f, 0xeb, 0x87, 0x98, 0x5a, 0xdd, 0xa0, 0xe7, 0x33, 0x25, 0xf7, 0xf0, 0x12, 0x72, 0x2e, 0xa6,
0xad, 0x88, 0x84, 0x2c, 0x88, 0x94, 0xf0, 0x83, 0x4b, 0x08, 0x73, 0xbf, 0xc5, 0x1f, 0x25, 0x5b,
0x1d, 0xf6, 0x90, 0x91, 0x2e, 0xa6, 0xcc, 0xe9, 0x86, 0x92, 0xc1, 0xf8, 0x25, 0x03, 0x4b, 0x9b,
0x11, 0x76, 0x18, 0x7e, 0xee, 0xd0, 0x8e, 0x8d, 0x5f, 0xf4, 0x30, 0x65, 0xa8, 0x0e, 0x37, 0x63,
0xf5, 0x4d, 0xe2, 0x96, 0x33, 0xab, 0x5a, 0x6d, 0x7e, 0xe3, 0xf6, 0xd9, 0x69, 0xb5, 0xb4, 0x39,
0xb8, 0xdf, 0x6e, 0xd8, 0xa5, 0x98, 0x69, 0xdb, 0x45, 0x16, 0x14, 0xa2, 0x20, 0x60, 0x87, 0xb4,
0x9c, 0x5d, 0xcd, 0xd6, 0x4a, 0xf5, 0xb7, 0xcc, 0x44, 0x62, 0x84, 0x75, 0xe6, 0x97, 0x3c, 0x24,
0xb6, 0x62, 0x43, 0xcb, 0x90, 0xa7, 0xcc, 0x25, 0x7e, 0x39, 0xc7, 0xb5, 0xdb, 0x92, 0x40, 0x2b,
0x50, 0xa0, 0xcc, 0x0d, 0x7a, 0xac, 0x9c, 0x17, 0xd7, 0x8a, 0x52, 0xf7, 0x38, 0x8a, 0xca, 0x85,
0xf8, 0x1e, 0x47, 0x11, 0xd2, 0xa1, 0xc8, 0x70, 0xd4, 0x25, 0xbe, 0xe3, 0x95, 0x6f, 0xac, 0x6a,
0xb5, 0xa2, 0x1d, 0xd3, 0xe8, 0x11, 0x40, 0xeb, 0x08, 0xb7, 0x3a, 0x61, 0x40, 0x7c, 0x56, 0x2e,
0xae, 0x6a, 0xb5, 0x52, 0xfd, 0xee, 0xa8, 0x59, 0x8d, 0x38, 0xe2, 0x76, 0x82, 0xdf, 0xd8, 0x07,
0x94, 0x8c, 0x0c, 0x0d, 0x03, 0x9f, 0xe2, 0x2b, 0x85, 0x66, 0x11, 0xb2, 0x21, 0x71, 0xcb, 0xd9,
0x55, 0xad, 0xb6, 0x60, 0xf3, 0xa3, 0xf1, 0x29, 0x2c, 0xee, 0x31, 0x27, 0x62, 0x93, 0x82, 0xae,
0xa5, 0x6b, 0x36, 0x9e, 0xc2, 0x52, 0x03, 0x7b, 0x78, 0x72, 0xf6, 0xa6, 0x51, 0xf4, 0x9b, 0x06,
0xb7, 0xa4, 0xa6, 0xb1, 0x9e, 0x6a, 0xd3, 0x7b, 0x9a, 0x89, 0x3d, 0x45, 0x55, 0x28, 0xe1, 0x57,
0x84, 0x35, 0x29, 0x73, 0x58, 0x8f, 0xaa, 0x18, 0x00, 0xbf, 0xda, 0x13, 0x37, 0xe8, 0x09, 0xcc,
0x73, 0x0a, 0xbb, 0x4d, 0x87, 0x89, 0x52, 0x28, 0xd5, 0x75, 0x53, 0x96, 0xad, 0x39, 0x28, 0x5b,
0xf3, 0xf9, 0xa0, 0x6c, 0x37, 0x8a, 0x27, 0xa7, 0xd5, 0xb9, 0x9f, 0xff, 0xa9, 0x6a, 0x76, 0x51,
0x8a, 0x3d, 0x61, 0xc6, 0xb7, 0xb0, 0x2c, 0x6d, 0xdf, 0x8d, 0x82, 0x16, 0xa6, 0x74, 0x86, 0x40,
0x8c, 0x7a, 0x60, 0x34, 0xe0, 0xd6, 0x53, 0x3c, 0x73, 0xa6, 0x1e, 0xc3, 0xed, 0x58, 0x8b, 0x0a,
0xf0, 0x1a, 0xe4, 0x78, 0xab, 0x0a, 0xf1, 0x52, 0xfd, 0x4e, 0xb2, 0x30, 0x8f, 0xd7, 0x55, 0x6d,
0x0a, 0x01, 0xc1, 0x66, 0xdc, 0x83, 0xc5, 0x2f, 0x08, 0x15, 0x2a, 0x62, 0x0f, 0x57, 0xa0, 0x70,
0x48, 0x3c, 0x86, 0x23, 0x69, 0x83, 0xad, 0x28, 0xa3, 0x01, 0x4b, 0x09, 0x5e, 0xf5, 0x9e, 0x05,
0x79, 0x31, 0x17, 0xcb, 0x9a, 0x68, 0xd0, 0x09, 0x0f, 0x4a, 0x3e, 0xe3, 0x27, 0x0d, 0x4a, 0x9f,
0x13, 0xcf, 0x9b, 0x25, 0x9e, 0xbc, 0x6f, 0x49, 0x9b, 0x77, 0xa7, 0x0c, 0xa9, 0xa2, 0x10, 0x82,
0xac, 0xe3, 0x79, 0xa2, 0x1e, 0x8a, 0x9f, 0xcd, 0xd9, 0x9c, 0xe0, 0x77, 0x3c, 0xf6, 0xbc, 0x08,
0x16, 0xf8, 0x5d, 0x48, 0xdc, 0x8d, 0x9b, 0x00, 0x21, 0x71, 0x9b, 0x41, 0xd4, 0x74, 0x3c, 0xcf,
0xf8, 0x53, 0x03, 0xb4, 0xf5, 0x0a, 0xb7, 0xae, 0x21, 0xd1, 0xf1, 0xf8, 0xc9, 0xbc, 0x79, 0xfc,
0x64, 0xc7, 0x8c, 0x9f, 0xdc, 0xd8, 0xf1, 0x93, 0x1f, 0x1a, 0x3f, 0x35, 0xc8, 0xd1, 0x10, 0xb7,
0xc4, 0xc0, 0x2a, 0xd5, 0x97, 0x47, 0x8a, 0xfa, 0x89, 0xdf, 0xb7, 0x05, 0x87, 0xf1, 0x2e, 0xfc,
0xef, 0x82, 0x57, 0x2a, 0x61, 0xaa, 0x16, 0xb5, 0xf3, 0x5a, 0xfc, 0x51, 0x83, 0x45, 0x1b, 0x53,
0xf2, 0x1d, 0xde, 0x65, 0xfd, 0x6b, 0x2d, 0x73, 0x1e, 0x8f, 0x97, 0xc4, 0x65, 0x47, 0xaa, 0x45,
0x25, 0xc1, 0xfd, 0x3e, 0xc2, 0xa4, 0x7d, 0x24, 0x5b, 0x73, 0xc1, 0x56, 0x94, 0xe1, 0xc1, 0xad,
0x4d, 0x2f, 0xa0, 0x78, 0x7b, 0xe7, 0xda, 0xad, 0x90, 0x59, 0x11, 0x85, 0xa1, 0xb2, 0xc2, 0xc7,
0xe5, 0xae, 0xd3, 0xa3, 0xf8, 0x1a, 0xc6, 0xa5, 0x8d, 0x69, 0xaf, 0x3b, 0xb3, 0xa2, 0x2d, 0xb8,
0xcd, 0xfb, 0x6b, 0x97, 0xb8, 0xb3, 0xd4, 0xa0, 0xf1, 0x8e, 0x6c, 0x69, 0xa9, 0x46, 0x25, 0x1d,
0x41, 0x2e, 0x24, 0xae, 0x6c, 0xd2, 0x05, 0x5b, 0x9c, 0x8d, 0xdf, 0x33, 0xf0, 0xff, 0xcd, 0x18,
0x99, 0x66, 0x34, 0x1e, 0x35, 0x61, 0x29, 0x74, 0x22, 0xec, 0xb3, 0x66, 0x02, 0x1d, 0x25, 0x8e,
0xd5, 0xf9, 0x74, 0xfd, 0xfb, 0xb4, 0x7a, 0x2f, 0xb1, 0x73, 0x04, 0x21, 0xf6, 0x63, 0x71, 0x6a,
0xb5, 0x83, 0x35, 0x97, 0xb4, 0x31, 0x65, 0x66, 0x43, 0xfc, 0xb3, 0x17, 0xa5, 0xb2, 0x73, 0xfb,
0xd0, 0x3e, 0xdc, 0x08, 0x42, 0x46, 0x02, 0x7f, 0xb0, 0x0b, 0x3c, 0x36, 0x27, 0x2d, 0x69, 0xe6,
0x1b, 0x5d, 0x33, 0x77, 0xa4, 0x8a, 0x2d, 0x9f, 0x45, 0x7d, 0x7b, 0xa0, 0x50, 0x7f, 0x00, 0x37,
0x93, 0x1f, 0x78, 0x09, 0x75, 0x70, 0x5f, 0x8d, 0x3f, 0x7e, 0xe4, 0x25, 0x74, 0xec, 0x78, 0x3d,
0x3c, 0x68, 0x6c, 0x41, 0x3c, 0xc8, 0x7c, 0xac, 0x19, 0xdf, 0xc0, 0xca, 0xf0, 0x53, 0x2a, 0xe8,
0x9f, 0x40, 0xe9, 0x7c, 0xef, 0x1a, 0x0c, 0xc8, 0xc9, 0xab, 0x42, 0x52, 0xc0, 0xf8, 0x1e, 0x96,
0xbe, 0x0a, 0x5d, 0x67, 0x66, 0x1c, 0x46, 0x75, 0x98, 0x8f, 0x30, 0x0d, 0x7a, 0x51, 0x0b, 0x53,
0xe1, 0xc0, 0xb8, 0xc1, 0x71, 0xce, 0x56, 0xff, 0xb5, 0x04, 0x79, 0x31, 0xe9, 0x51, 0x07, 0x0a,
0x72, 0x65, 0x41, 0x56, 0x4a, 0xc4, 0x87, 0x57, 0x3e, 0xfd, 0x83, 0xe9, 0x05, 0x54, 0xcc, 0x76,
0x20, 0x2f, 0x76, 0x18, 0x64, 0x4e, 0x16, 0x1d, 0x5e, 0x74, 0xf4, 0x95, 0x11, 0x87, 0xb6, 0xf8,
0x52, 0x8e, 0xda, 0x50, 0x90, 0x30, 0x9e, 0x66, 0xfd, 0xc8, 0xca, 0xa3, 0xbf, 0x3f, 0x8d, 0x40,
0x6c, 0xf9, 0x0b, 0x58, 0xb8, 0xb0, 0x2f, 0xa0, 0xfa, 0x34, 0xe2, 0x17, 0x31, 0xe7, 0x92, 0x4f,
0x1e, 0x40, 0xf6, 0x29, 0x66, 0x28, 0x45, 0xe8, 0xe2, 0x9e, 0xa1, 0xaf, 0x4d, 0xc9, 0xad, 0xde,
0x68, 0x43, 0x8e, 0x4f, 0x93, 0xb4, 0x7c, 0x0c, 0x2f, 0x11, 0xba, 0x35, 0x35, 0xbf, 0x7a, 0x68,
0x1b, 0x72, 0x7c, 0x2d, 0x40, 0xef, 0x4d, 0x16, 0x4c, 0xac, 0x0e, 0x63, 0x73, 0xde, 0x81, 0x1c,
0x47, 0x3e, 0x94, 0x52, 0x7e, 0xa3, 0x98, 0xaf, 0xaf, 0x5f, 0x42, 0x42, 0xd9, 0xbd, 0x07, 0xf3,
0x31, 0x78, 0xa6, 0x45, 0x69, 0x18, 0x65, 0xc7, 0x7a, 0xb0, 0x03, 0x37, 0x14, 0x12, 0xa6, 0x65,
0xf7, 0x22, 0x60, 0x4e, 0x50, 0x98, 0x17, 0x60, 0x97, 0x66, 0xe1, 0x30, 0x22, 0x8e, 0x55, 0xf8,
0x0c, 0x0a, 0x12, 0xf5, 0xd2, 0xfa, 0x6a, 0x04, 0x1b, 0xc7, 0xaa, 0x24, 0x50, 0x1c, 0x00, 0x17,
0x5a, 0x4b, 0x2f, 0x9f, 0x04, 0x4e, 0xea, 0xe6, 0xb4, 0xec, 0x2a, 0x69, 0x2f, 0x01, 0x12, 0xd0,
0x72, 0xff, 0x0a, 0x48, 0xa2, 0x7f, 0x78, 0x39, 0x21, 0xf5, 0xf0, 0x33, 0x28, 0xc8, 0x99, 0x9e,
0x16, 0xb6, 0x91, 0xc9, 0x3f, 0x2e, 0x6c, 0x1b, 0x5f, 0x9f, 0xbc, 0xae, 0xcc, 0xfd, 0xf5, 0xba,
0x32, 0xf7, 0xc3, 0x59, 0x45, 0x3b, 0x39, 0xab, 0x68, 0x7f, 0x9c, 0x55, 0xb4, 0x7f, 0xcf, 0x2a,
0xda, 0xfe, 0xa3, 0xab, 0xfd, 0x12, 0xf2, 0x50, 0x1c, 0x0e, 0x0a, 0xe2, 0x9d, 0xfb, 0xff, 0x05,
0x00, 0x00, 0xff, 0xff, 0x29, 0x59, 0x7a, 0x4c, 0x50, 0x11, 0x00, 0x00,
}

View File

@ -41,7 +41,7 @@ service Tasks {
rpc Resume(ResumeTaskRequest) returns (google.protobuf.Empty);
rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse);
rpc ListPids(ListPidsRequest) returns (ListPidsResponse);
rpc Checkpoint(CheckpointTaskRequest) returns (CheckpointTaskResponse);
@ -173,12 +173,12 @@ message ResumeTaskRequest {
string container_id = 1;
}
message ListProcessesRequest {
message ListPidsRequest {
string container_id = 1;
}
message ListProcessesResponse{
repeated containerd.v1.types.Process processes = 1;
message ListPidsResponse{
repeated uint32 pids = 1;
}
message CheckpointTaskRequest {

View File

@ -76,8 +76,8 @@ func (c *local) Kill(ctx context.Context, in *shimapi.KillRequest, opts ...grpc.
return c.s.Kill(ctx, in)
}
func (c *local) ListProcesses(ctx context.Context, in *shimapi.ListProcessesRequest, opts ...grpc.CallOption) (*shimapi.ListProcessesResponse, error) {
return c.s.ListProcesses(ctx, in)
func (c *local) ListPids(ctx context.Context, in *shimapi.ListPidsRequest, opts ...grpc.CallOption) (*shimapi.ListPidsResponse, error) {
return c.s.ListPids(ctx, in)
}
func (c *local) CloseIO(ctx context.Context, in *shimapi.CloseIORequest, opts ...grpc.CallOption) (*google_protobuf.Empty, error) {

View File

@ -321,21 +321,14 @@ func (s *Service) Kill(ctx context.Context, r *shimapi.KillRequest) (*google_pro
return empty, nil
}
func (s *Service) ListProcesses(ctx context.Context, r *shimapi.ListProcessesRequest) (*shimapi.ListProcessesResponse, error) {
func (s *Service) ListPids(ctx context.Context, r *shimapi.ListPidsRequest) (*shimapi.ListPidsResponse, error) {
pids, err := s.getContainerPids(ctx, r.ID)
if err != nil {
return nil, err
}
ps := []*task.Process{}
for _, pid := range pids {
ps = append(ps, &task.Process{
Pid: pid,
})
}
resp := &shimapi.ListProcessesResponse{
Processes: ps,
}
return resp, nil
return &shimapi.ListPidsResponse{
Pids: pids,
}, nil
}
func (s *Service) CloseIO(ctx context.Context, r *shimapi.CloseIORequest) (*google_protobuf.Empty, error) {

View File

@ -19,8 +19,8 @@
StateResponse
KillRequest
CloseIORequest
ListProcessesRequest
ListProcessesResponse
ListPidsRequest
ListPidsResponse
CheckpointTaskRequest
ShimInfoResponse
StreamEventsRequest
@ -174,21 +174,21 @@ func (m *CloseIORequest) Reset() { *m = CloseIORequest{} }
func (*CloseIORequest) ProtoMessage() {}
func (*CloseIORequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{9} }
type ListProcessesRequest struct {
type ListPidsRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (m *ListProcessesRequest) Reset() { *m = ListProcessesRequest{} }
func (*ListProcessesRequest) ProtoMessage() {}
func (*ListProcessesRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{10} }
func (m *ListPidsRequest) Reset() { *m = ListPidsRequest{} }
func (*ListPidsRequest) ProtoMessage() {}
func (*ListPidsRequest) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{10} }
type ListProcessesResponse struct {
Processes []*containerd_v1_types.Process `protobuf:"bytes,1,rep,name=processes" json:"processes,omitempty"`
type ListPidsResponse struct {
Pids []uint32 `protobuf:"varint,1,rep,packed,name=pids" json:"pids,omitempty"`
}
func (m *ListProcessesResponse) Reset() { *m = ListProcessesResponse{} }
func (*ListProcessesResponse) ProtoMessage() {}
func (*ListProcessesResponse) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{11} }
func (m *ListPidsResponse) Reset() { *m = ListPidsResponse{} }
func (*ListPidsResponse) ProtoMessage() {}
func (*ListPidsResponse) Descriptor() ([]byte, []int) { return fileDescriptorShim, []int{11} }
type CheckpointTaskRequest struct {
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
@ -233,8 +233,8 @@ func init() {
proto.RegisterType((*StateResponse)(nil), "containerd.runtime.linux.shim.v1.StateResponse")
proto.RegisterType((*KillRequest)(nil), "containerd.runtime.linux.shim.v1.KillRequest")
proto.RegisterType((*CloseIORequest)(nil), "containerd.runtime.linux.shim.v1.CloseIORequest")
proto.RegisterType((*ListProcessesRequest)(nil), "containerd.runtime.linux.shim.v1.ListProcessesRequest")
proto.RegisterType((*ListProcessesResponse)(nil), "containerd.runtime.linux.shim.v1.ListProcessesResponse")
proto.RegisterType((*ListPidsRequest)(nil), "containerd.runtime.linux.shim.v1.ListPidsRequest")
proto.RegisterType((*ListPidsResponse)(nil), "containerd.runtime.linux.shim.v1.ListPidsResponse")
proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.runtime.linux.shim.v1.CheckpointTaskRequest")
proto.RegisterType((*ShimInfoResponse)(nil), "containerd.runtime.linux.shim.v1.ShimInfoResponse")
proto.RegisterType((*StreamEventsRequest)(nil), "containerd.runtime.linux.shim.v1.StreamEventsRequest")
@ -258,7 +258,7 @@ type ShimClient interface {
Start(ctx context.Context, in *google_protobuf1.Empty, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Delete(ctx context.Context, in *google_protobuf1.Empty, opts ...grpc.CallOption) (*DeleteResponse, error)
DeleteProcess(ctx context.Context, in *DeleteProcessRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error)
ListPids(ctx context.Context, in *ListPidsRequest, opts ...grpc.CallOption) (*ListPidsResponse, error)
Pause(ctx context.Context, in *google_protobuf1.Empty, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Resume(ctx context.Context, in *google_protobuf1.Empty, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
Checkpoint(ctx context.Context, in *CheckpointTaskRequest, opts ...grpc.CallOption) (*google_protobuf1.Empty, error)
@ -325,9 +325,9 @@ func (c *shimClient) DeleteProcess(ctx context.Context, in *DeleteProcessRequest
return out, nil
}
func (c *shimClient) ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error) {
out := new(ListProcessesResponse)
err := grpc.Invoke(ctx, "/containerd.runtime.linux.shim.v1.Shim/ListProcesses", in, out, c.cc, opts...)
func (c *shimClient) ListPids(ctx context.Context, in *ListPidsRequest, opts ...grpc.CallOption) (*ListPidsResponse, error) {
out := new(ListPidsResponse)
err := grpc.Invoke(ctx, "/containerd.runtime.linux.shim.v1.Shim/ListPids", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
@ -456,7 +456,7 @@ type ShimServer interface {
Start(context.Context, *google_protobuf1.Empty) (*google_protobuf1.Empty, error)
Delete(context.Context, *google_protobuf1.Empty) (*DeleteResponse, error)
DeleteProcess(context.Context, *DeleteProcessRequest) (*DeleteResponse, error)
ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error)
ListPids(context.Context, *ListPidsRequest) (*ListPidsResponse, error)
Pause(context.Context, *google_protobuf1.Empty) (*google_protobuf1.Empty, error)
Resume(context.Context, *google_protobuf1.Empty) (*google_protobuf1.Empty, error)
Checkpoint(context.Context, *CheckpointTaskRequest) (*google_protobuf1.Empty, error)
@ -564,20 +564,20 @@ func _Shim_DeleteProcess_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler)
}
func _Shim_ListProcesses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListProcessesRequest)
func _Shim_ListPids_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListPidsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ShimServer).ListProcesses(ctx, in)
return srv.(ShimServer).ListPids(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/containerd.runtime.linux.shim.v1.Shim/ListProcesses",
FullMethod: "/containerd.runtime.linux.shim.v1.Shim/ListPids",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ShimServer).ListProcesses(ctx, req.(*ListProcessesRequest))
return srv.(ShimServer).ListPids(ctx, req.(*ListPidsRequest))
}
return interceptor(ctx, in, info, handler)
}
@ -790,8 +790,8 @@ var _Shim_serviceDesc = grpc.ServiceDesc{
Handler: _Shim_DeleteProcess_Handler,
},
{
MethodName: "ListProcesses",
Handler: _Shim_ListProcesses_Handler,
MethodName: "ListPids",
Handler: _Shim_ListPids_Handler,
},
{
MethodName: "Pause",
@ -1273,7 +1273,7 @@ func (m *CloseIORequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *ListProcessesRequest) Marshal() (dAtA []byte, err error) {
func (m *ListPidsRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1283,7 +1283,7 @@ func (m *ListProcessesRequest) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *ListProcessesRequest) MarshalTo(dAtA []byte) (int, error) {
func (m *ListPidsRequest) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
@ -1297,7 +1297,7 @@ func (m *ListProcessesRequest) MarshalTo(dAtA []byte) (int, error) {
return i, nil
}
func (m *ListProcessesResponse) Marshal() (dAtA []byte, err error) {
func (m *ListPidsResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalTo(dAtA)
@ -1307,22 +1307,27 @@ func (m *ListProcessesResponse) Marshal() (dAtA []byte, err error) {
return dAtA[:n], nil
}
func (m *ListProcessesResponse) MarshalTo(dAtA []byte) (int, error) {
func (m *ListPidsResponse) MarshalTo(dAtA []byte) (int, error) {
var i int
_ = i
var l int
_ = l
if len(m.Processes) > 0 {
for _, msg := range m.Processes {
dAtA[i] = 0xa
i++
i = encodeVarintShim(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
if len(m.Pids) > 0 {
dAtA4 := make([]byte, len(m.Pids)*10)
var j3 int
for _, num := range m.Pids {
for num >= 1<<7 {
dAtA4[j3] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j3++
}
i += n
dAtA4[j3] = uint8(num)
j3++
}
dAtA[i] = 0xa
i++
i = encodeVarintShim(dAtA, i, uint64(j3))
i += copy(dAtA[i:], dAtA4[:j3])
}
return i, nil
}
@ -1428,11 +1433,11 @@ func (m *UpdateTaskRequest) MarshalTo(dAtA []byte) (int, error) {
dAtA[i] = 0xa
i++
i = encodeVarintShim(dAtA, i, uint64(m.Resources.Size()))
n3, err := m.Resources.MarshalTo(dAtA[i:])
n5, err := m.Resources.MarshalTo(dAtA[i:])
if err != nil {
return 0, err
}
i += n3
i += n5
}
return i, nil
}
@ -1660,7 +1665,7 @@ func (m *CloseIORequest) Size() (n int) {
return n
}
func (m *ListProcessesRequest) Size() (n int) {
func (m *ListPidsRequest) Size() (n int) {
var l int
_ = l
l = len(m.ID)
@ -1670,14 +1675,15 @@ func (m *ListProcessesRequest) Size() (n int) {
return n
}
func (m *ListProcessesResponse) Size() (n int) {
func (m *ListPidsResponse) Size() (n int) {
var l int
_ = l
if len(m.Processes) > 0 {
for _, e := range m.Processes {
l = e.Size()
n += 1 + l + sovShim(uint64(l))
if len(m.Pids) > 0 {
l = 0
for _, e := range m.Pids {
l += sovShim(uint64(e))
}
n += 1 + sovShim(uint64(l)) + l
}
return n
}
@ -1866,22 +1872,22 @@ func (this *CloseIORequest) String() string {
}, "")
return s
}
func (this *ListProcessesRequest) String() string {
func (this *ListPidsRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ListProcessesRequest{`,
s := strings.Join([]string{`&ListPidsRequest{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`}`,
}, "")
return s
}
func (this *ListProcessesResponse) String() string {
func (this *ListPidsResponse) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ListProcessesResponse{`,
`Processes:` + strings.Replace(fmt.Sprintf("%v", this.Processes), "Process", "containerd_v1_types.Process", 1) + `,`,
s := strings.Join([]string{`&ListPidsResponse{`,
`Pids:` + fmt.Sprintf("%v", this.Pids) + `,`,
`}`,
}, "")
return s
@ -3380,7 +3386,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -3403,10 +3409,10 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListProcessesRequest: wiretype end group for non-group")
return fmt.Errorf("proto: ListPidsRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListProcessesRequest: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: ListPidsRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
@ -3459,7 +3465,7 @@ func (m *ListProcessesRequest) Unmarshal(dAtA []byte) error {
}
return nil
}
func (m *ListProcessesResponse) Unmarshal(dAtA []byte) error {
func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
@ -3482,43 +3488,74 @@ func (m *ListProcessesResponse) Unmarshal(dAtA []byte) error {
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ListProcessesResponse: wiretype end group for non-group")
return fmt.Errorf("proto: ListPidsResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ListProcessesResponse: illegal tag %d (wire type %d)", fieldNum, wire)
return fmt.Errorf("proto: ListPidsResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Processes", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
if wireType == 0 {
var v uint32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if iNdEx >= l {
m.Pids = append(m.Pids, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + packedLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
for iNdEx < postIndex {
var v uint32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowShim
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (uint32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.Pids = append(m.Pids, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field Pids", wireType)
}
if msglen < 0 {
return ErrInvalidLengthShim
}
postIndex := iNdEx + msglen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Processes = append(m.Processes, &containerd_v1_types.Process{})
if err := m.Processes[len(m.Processes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipShim(dAtA[iNdEx:])
@ -4047,77 +4084,77 @@ func init() {
}
var fileDescriptorShim = []byte{
// 1143 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcd, 0x6e, 0xdb, 0xc6,
0x13, 0x0f, 0x65, 0x99, 0x96, 0x46, 0x7f, 0x19, 0xf6, 0xc6, 0xf6, 0x9f, 0x51, 0x0a, 0xd9, 0xe0,
0xa1, 0x35, 0x10, 0x84, 0x8c, 0xe5, 0x26, 0x76, 0xdd, 0x93, 0xbf, 0x50, 0x18, 0xad, 0x11, 0x81,
0x4e, 0x5a, 0xa0, 0x40, 0x6b, 0xd0, 0xd2, 0x5a, 0x5a, 0x98, 0x22, 0x59, 0xee, 0x52, 0xb5, 0x7a,
0xca, 0xa9, 0xe7, 0x3e, 0x42, 0x0f, 0x7d, 0x8b, 0xa2, 0xe7, 0xfa, 0xd8, 0x63, 0x4f, 0x69, 0xe3,
0x27, 0x29, 0xf6, 0x83, 0x26, 0x25, 0x99, 0x95, 0x14, 0xf4, 0x22, 0xee, 0xec, 0xce, 0xcc, 0xce,
0xfc, 0xe6, 0x6b, 0x05, 0x9f, 0x74, 0x08, 0xeb, 0xc6, 0x17, 0x56, 0x2b, 0xe8, 0xd9, 0xad, 0xc0,
0x67, 0x2e, 0xf1, 0x71, 0xd4, 0xce, 0x2e, 0x3d, 0xe2, 0xc7, 0xd7, 0x36, 0xed, 0x92, 0x9e, 0xdd,
0xdf, 0x12, 0x5f, 0x2b, 0x8c, 0x02, 0x16, 0xa0, 0x8d, 0x94, 0xc9, 0x8a, 0x62, 0x9f, 0x91, 0x1e,
0xb6, 0x04, 0xb3, 0x25, 0x98, 0xfa, 0x5b, 0xb5, 0x47, 0x9d, 0x20, 0xe8, 0x78, 0xd8, 0x16, 0xfc,
0x17, 0xf1, 0xa5, 0xed, 0xfa, 0x03, 0x29, 0x5c, 0x7b, 0x3c, 0x7a, 0x84, 0x7b, 0x21, 0x4b, 0x0e,
0x57, 0x3a, 0x41, 0x27, 0x10, 0x4b, 0x9b, 0xaf, 0xd4, 0xee, 0xfa, 0xa8, 0x08, 0xbf, 0x91, 0x32,
0xb7, 0x17, 0x2a, 0x86, 0x17, 0x13, 0x7d, 0x71, 0x43, 0x62, 0xb3, 0x41, 0x88, 0xa9, 0xdd, 0x0b,
0x62, 0x9f, 0x29, 0xb9, 0xbd, 0x19, 0xe4, 0x98, 0x4b, 0xaf, 0xc4, 0x8f, 0x92, 0x3d, 0x9e, 0x4a,
0x96, 0xe2, 0xa8, 0x4f, 0x5a, 0x98, 0xda, 0xb8, 0x8f, 0x7d, 0x46, 0x39, 0x90, 0x09, 0x62, 0x42,
0x8d, 0xf9, 0x5b, 0x01, 0x96, 0x0f, 0x23, 0xec, 0x32, 0xfc, 0xca, 0xa5, 0x57, 0x0e, 0xfe, 0x2e,
0xc6, 0x94, 0xa1, 0x35, 0x28, 0x90, 0xb6, 0xa1, 0x6d, 0x68, 0x9b, 0xe5, 0x03, 0xfd, 0xf6, 0xed,
0x7a, 0xe1, 0xe4, 0xc8, 0x29, 0x90, 0x36, 0x5a, 0x03, 0xfd, 0x22, 0xf6, 0xdb, 0x1e, 0x36, 0x0a,
0xfc, 0xcc, 0x51, 0x14, 0x32, 0x60, 0x41, 0xa9, 0x35, 0xe6, 0xc4, 0x41, 0x42, 0x22, 0x1b, 0xf4,
0x28, 0x08, 0xd8, 0x25, 0x35, 0x8a, 0x1b, 0x73, 0x9b, 0x95, 0xc6, 0xff, 0xad, 0x4c, 0xf0, 0x84,
0x67, 0xd6, 0x29, 0x47, 0xc4, 0x51, 0x6c, 0xa8, 0x06, 0x25, 0x86, 0xa3, 0x1e, 0xf1, 0x5d, 0xcf,
0x98, 0xdf, 0xd0, 0x36, 0x4b, 0xce, 0x1d, 0x8d, 0x56, 0x60, 0x9e, 0xb2, 0x36, 0xf1, 0x0d, 0x5d,
0x5c, 0x22, 0x09, 0x6e, 0x14, 0x65, 0xed, 0x20, 0x66, 0xc6, 0x82, 0x34, 0x4a, 0x52, 0x6a, 0x1f,
0x47, 0x91, 0x51, 0xba, 0xdb, 0xc7, 0x51, 0x84, 0xea, 0x00, 0xad, 0x2e, 0x6e, 0x5d, 0x85, 0x01,
0xf1, 0x99, 0x51, 0x16, 0x67, 0x99, 0x1d, 0xf4, 0x04, 0x96, 0x43, 0x37, 0xc2, 0x3e, 0x3b, 0xcf,
0xb0, 0x81, 0x60, 0x5b, 0x92, 0x07, 0x87, 0x77, 0xfb, 0xe6, 0x87, 0x80, 0xb2, 0xf0, 0xd1, 0x30,
0xf0, 0x29, 0x46, 0x4b, 0x30, 0x17, 0x2a, 0x00, 0xab, 0x0e, 0x5f, 0x9a, 0x3f, 0x6a, 0xb0, 0x78,
0x84, 0x3d, 0xcc, 0x70, 0x3e, 0x13, 0x5a, 0x87, 0x0a, 0xbe, 0x26, 0xec, 0x9c, 0x32, 0x97, 0xc5,
0x54, 0x60, 0x5c, 0x75, 0x80, 0x6f, 0x9d, 0x89, 0x1d, 0xb4, 0x0f, 0x65, 0x4e, 0xe1, 0xf6, 0xb9,
0xcb, 0x04, 0xd2, 0x95, 0x46, 0xcd, 0x92, 0xd9, 0x69, 0x25, 0xd9, 0x69, 0xbd, 0x4a, 0xb2, 0xf3,
0xa0, 0x74, 0xf3, 0x76, 0xfd, 0xc1, 0x4f, 0x7f, 0xad, 0x6b, 0x4e, 0x49, 0x8a, 0xed, 0x33, 0x73,
0x13, 0x56, 0xa4, 0x1d, 0xcd, 0x28, 0x68, 0x61, 0x4a, 0x93, 0x90, 0x8f, 0x9b, 0xfc, 0xb3, 0x06,
0xe8, 0xf8, 0x1a, 0xb7, 0x46, 0x18, 0xb3, 0x01, 0xd2, 0xf2, 0x02, 0x54, 0xb8, 0x3f, 0x40, 0x73,
0x39, 0x01, 0x2a, 0x0e, 0x05, 0x68, 0x13, 0x8a, 0x34, 0xc4, 0x2d, 0x11, 0xfe, 0x4a, 0x63, 0x65,
0xcc, 0xc1, 0x7d, 0x7f, 0xe0, 0x08, 0x0e, 0xf3, 0x23, 0x78, 0x38, 0x64, 0x61, 0x2e, 0xfc, 0x0e,
0x2c, 0x39, 0x98, 0x92, 0x1f, 0x70, 0x93, 0x0d, 0x72, 0x3d, 0xe6, 0xe6, 0x7f, 0x4f, 0xda, 0xac,
0xab, 0x90, 0x97, 0x04, 0x37, 0xb3, 0x8b, 0x49, 0xa7, 0x2b, 0xcd, 0xaf, 0x3a, 0x8a, 0x32, 0x7f,
0x29, 0x40, 0x95, 0xc7, 0x25, 0x8d, 0xe8, 0xac, 0x65, 0xa3, 0x2c, 0x98, 0x4b, 0x2d, 0xd8, 0xe6,
0x90, 0x88, 0xe0, 0x73, 0x48, 0x16, 0x1b, 0x8f, 0xb3, 0xe5, 0xd2, 0xdf, 0x52, 0x15, 0x23, 0xb3,
0xc1, 0x51, 0xac, 0x68, 0x0f, 0xca, 0xa1, 0x44, 0x00, 0x53, 0x63, 0x5e, 0x94, 0xd9, 0x07, 0xf7,
0xca, 0x25, 0x38, 0xa5, 0xec, 0xff, 0x51, 0x49, 0x65, 0x73, 0xa2, 0x3c, 0x9c, 0x13, 0xe6, 0x09,
0x54, 0x3e, 0x27, 0x9e, 0x97, 0xb6, 0x16, 0x9d, 0x92, 0x4e, 0x92, 0x3c, 0x55, 0x47, 0x51, 0x1c,
0x0b, 0xd7, 0xf3, 0x04, 0x40, 0x25, 0x87, 0x2f, 0xc7, 0xd1, 0x31, 0x77, 0x61, 0xf1, 0xd0, 0x0b,
0x28, 0x3e, 0x79, 0xf9, 0xaf, 0x31, 0x4c, 0x53, 0xb0, 0xa4, 0x1c, 0x32, 0x2d, 0x58, 0xf9, 0x82,
0x50, 0xd6, 0x4c, 0xfc, 0x9e, 0xd0, 0xe8, 0xcc, 0x33, 0x58, 0x1d, 0xe1, 0x57, 0x21, 0x1e, 0xc2,
0x5a, 0x9b, 0x09, 0x6b, 0xf3, 0x77, 0x0d, 0x56, 0xd3, 0xd6, 0x91, 0xed, 0xb7, 0x08, 0x8a, 0xa1,
0xcb, 0xba, 0xd2, 0x10, 0x47, 0xac, 0xd1, 0xb7, 0xb0, 0x10, 0x84, 0x8c, 0x04, 0x3e, 0x6f, 0x04,
0xfc, 0x9e, 0x23, 0x6b, 0xd2, 0xdc, 0xb3, 0xee, 0xd5, 0x6e, 0xbd, 0x94, 0x6a, 0x8e, 0x7d, 0x16,
0x0d, 0x9c, 0x44, 0x69, 0x6d, 0x0f, 0xfe, 0x97, 0x3d, 0xe0, 0x50, 0x5e, 0xe1, 0x81, 0x32, 0x81,
0x2f, 0x39, 0x94, 0x7d, 0xd7, 0x8b, 0x93, 0xac, 0x95, 0xc4, 0x5e, 0x61, 0x57, 0x33, 0x9f, 0xc2,
0xd2, 0x59, 0x97, 0xf4, 0x4e, 0xfc, 0xcb, 0xe0, 0x0e, 0x99, 0x47, 0x50, 0xe2, 0x66, 0x9c, 0xa7,
0xf1, 0x58, 0xe0, 0x74, 0x93, 0xb4, 0xcd, 0x55, 0x78, 0x78, 0xc6, 0x22, 0xec, 0xf6, 0x8e, 0xc5,
0x14, 0x52, 0x76, 0x99, 0x9f, 0xc1, 0xf2, 0xeb, 0xb0, 0x3d, 0x32, 0x7a, 0x1a, 0x50, 0x8e, 0x30,
0x0d, 0xe2, 0xa8, 0x25, 0x00, 0xce, 0xef, 0x00, 0x29, 0x5b, 0xe3, 0xd7, 0x0a, 0x14, 0xb9, 0x3d,
0xa8, 0x09, 0xf3, 0xa2, 0x22, 0xd1, 0xda, 0x98, 0xc8, 0x31, 0x1f, 0xf3, 0x35, 0x7b, 0x32, 0x86,
0xc3, 0x25, 0x4d, 0x41, 0x97, 0xfd, 0x1d, 0x6d, 0x4f, 0x01, 0xff, 0xe8, 0x20, 0xad, 0x7d, 0x3c,
0x9b, 0x90, 0xba, 0x74, 0x47, 0xb8, 0x11, 0xb1, 0x5c, 0x37, 0x72, 0xf6, 0x91, 0x03, 0xba, 0x6c,
0xee, 0xb9, 0x92, 0xcf, 0x26, 0x1b, 0x34, 0x32, 0xa6, 0x06, 0x50, 0x1d, 0x1a, 0x18, 0xe8, 0xc5,
0xb4, 0x2a, 0x86, 0x07, 0xc7, 0x7b, 0x5c, 0xfd, 0x46, 0x83, 0xea, 0x50, 0x19, 0x4e, 0x73, 0xf7,
0x7d, 0x75, 0x5e, 0xdb, 0x99, 0x59, 0x2e, 0x0d, 0x45, 0xd3, 0x8d, 0x29, 0x9e, 0x39, 0x14, 0xbb,
0xa0, 0x3b, 0x98, 0xc6, 0xbd, 0xd9, 0x25, 0xbf, 0x01, 0x48, 0xeb, 0x18, 0xed, 0xbc, 0x67, 0xd5,
0xe7, 0xaa, 0xf7, 0x41, 0x97, 0xc5, 0x88, 0x9e, 0x4f, 0x53, 0x0c, 0x63, 0x65, 0x5b, 0x7b, 0x92,
0x15, 0x4b, 0x1e, 0x98, 0x96, 0x7c, 0x60, 0x72, 0x19, 0x47, 0x6a, 0x12, 0x42, 0xcf, 0x34, 0x74,
0x0a, 0x45, 0xde, 0xff, 0xd1, 0xd3, 0xc9, 0xb7, 0x65, 0xe6, 0x44, 0xae, 0xf9, 0x14, 0x8a, 0x7c,
0xe4, 0xa3, 0x29, 0x2a, 0x6b, 0xfc, 0xf1, 0x52, 0x7b, 0x3e, 0xa3, 0x94, 0xca, 0x82, 0xaf, 0xa0,
0x7c, 0xf7, 0x7c, 0x40, 0x8d, 0xc9, 0x3a, 0x46, 0xdf, 0x1a, 0xb9, 0xde, 0x9c, 0xc1, 0x82, 0x9a,
0x68, 0x68, 0x8a, 0xf2, 0x18, 0x1e, 0x7e, 0xb9, 0x4a, 0xbf, 0x84, 0x52, 0xd2, 0x9d, 0x73, 0x93,
0x6f, 0x0a, 0x27, 0xc6, 0x3a, 0xfc, 0x6b, 0xd0, 0x65, 0xbf, 0x9e, 0xa6, 0x17, 0x8e, 0x75, 0xf6,
0x3c, 0x73, 0x0f, 0x4e, 0x6f, 0xde, 0xd5, 0x1f, 0xfc, 0xf9, 0xae, 0xfe, 0xe0, 0xcd, 0x6d, 0x5d,
0xbb, 0xb9, 0xad, 0x6b, 0x7f, 0xdc, 0xd6, 0xb5, 0xbf, 0x6f, 0xeb, 0xda, 0xd7, 0xdb, 0xb3, 0xfd,
0x47, 0xfc, 0x94, 0x7f, 0x2f, 0x74, 0xa1, 0x7e, 0xfb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5e,
0x29, 0xea, 0xb4, 0x61, 0x0e, 0x00, 0x00,
// 1148 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4f, 0x73, 0xdb, 0x44,
0x14, 0xaf, 0x6c, 0x47, 0xb1, 0x9f, 0x71, 0x48, 0xb6, 0x69, 0x50, 0x5d, 0xc6, 0xc9, 0xe8, 0x50,
0xcc, 0x74, 0x2a, 0x35, 0x0e, 0x6d, 0x43, 0x38, 0xe5, 0xdf, 0x30, 0x19, 0xc8, 0xd4, 0xa3, 0xb4,
0x30, 0xc3, 0x0c, 0x64, 0x14, 0x6b, 0x63, 0xef, 0x44, 0x96, 0x54, 0xed, 0xca, 0xc4, 0x9c, 0x38,
0x71, 0xe6, 0x23, 0x70, 0xe0, 0xc6, 0x67, 0xe0, 0x4c, 0x8e, 0x1c, 0x39, 0x15, 0x9a, 0x4f, 0xc2,
0xec, 0x6a, 0x15, 0xc9, 0x76, 0x84, 0xed, 0x0e, 0x97, 0x78, 0xdf, 0xee, 0xfb, 0xbd, 0x7d, 0xfb,
0x7b, 0xff, 0x14, 0xf8, 0xb4, 0x4b, 0x58, 0x2f, 0x3a, 0x33, 0x3a, 0x7e, 0xdf, 0xec, 0xf8, 0x1e,
0xb3, 0x89, 0x87, 0x43, 0x27, 0xbb, 0x74, 0x89, 0x17, 0x5d, 0x9a, 0xb4, 0x47, 0xfa, 0xe6, 0x60,
0x53, 0xfc, 0x1a, 0x41, 0xe8, 0x33, 0x1f, 0x6d, 0xa4, 0x4a, 0x46, 0x18, 0x79, 0x8c, 0xf4, 0xb1,
0x21, 0x94, 0x0d, 0xa1, 0x34, 0xd8, 0xac, 0xdf, 0xef, 0xfa, 0x7e, 0xd7, 0xc5, 0xa6, 0xd0, 0x3f,
0x8b, 0xce, 0x4d, 0xdb, 0x1b, 0xc6, 0xe0, 0xfa, 0x83, 0xf1, 0x23, 0xdc, 0x0f, 0x58, 0x72, 0xb8,
0xda, 0xf5, 0xbb, 0xbe, 0x58, 0x9a, 0x7c, 0x25, 0x77, 0xd7, 0xc7, 0x21, 0xfc, 0x46, 0xca, 0xec,
0x7e, 0x20, 0x15, 0x9e, 0x4d, 0x7d, 0x8b, 0x1d, 0x10, 0x93, 0x0d, 0x03, 0x4c, 0xcd, 0xbe, 0x1f,
0x79, 0x4c, 0xe2, 0x76, 0xe6, 0xc0, 0x31, 0x9b, 0x5e, 0x88, 0x3f, 0x12, 0x7b, 0x38, 0x13, 0x96,
0xe2, 0x70, 0x40, 0x3a, 0x98, 0x9a, 0x78, 0x80, 0x3d, 0x46, 0x39, 0x91, 0x09, 0x63, 0xc2, 0x8c,
0xfe, 0x7b, 0x01, 0x56, 0xf6, 0x43, 0x6c, 0x33, 0xfc, 0xd2, 0xa6, 0x17, 0x16, 0x7e, 0x1d, 0x61,
0xca, 0xd0, 0x1a, 0x14, 0x88, 0xa3, 0x29, 0x1b, 0x4a, 0xb3, 0xb2, 0xa7, 0x5e, 0xbf, 0x59, 0x2f,
0x1c, 0x1d, 0x58, 0x05, 0xe2, 0xa0, 0x35, 0x50, 0xcf, 0x22, 0xcf, 0x71, 0xb1, 0x56, 0xe0, 0x67,
0x96, 0x94, 0x90, 0x06, 0x8b, 0xd2, 0xac, 0x56, 0x14, 0x07, 0x89, 0x88, 0x4c, 0x50, 0x43, 0xdf,
0x67, 0xe7, 0x54, 0x2b, 0x6d, 0x14, 0x9b, 0xd5, 0xd6, 0x07, 0x46, 0x26, 0x78, 0xe2, 0x65, 0xc6,
0x31, 0x67, 0xc4, 0x92, 0x6a, 0xa8, 0x0e, 0x65, 0x86, 0xc3, 0x3e, 0xf1, 0x6c, 0x57, 0x5b, 0xd8,
0x50, 0x9a, 0x65, 0xeb, 0x46, 0x46, 0xab, 0xb0, 0x40, 0x99, 0x43, 0x3c, 0x4d, 0x15, 0x97, 0xc4,
0x02, 0x77, 0x8a, 0x32, 0xc7, 0x8f, 0x98, 0xb6, 0x18, 0x3b, 0x15, 0x4b, 0x72, 0x1f, 0x87, 0xa1,
0x56, 0xbe, 0xd9, 0xc7, 0x61, 0x88, 0x1a, 0x00, 0x9d, 0x1e, 0xee, 0x5c, 0x04, 0x3e, 0xf1, 0x98,
0x56, 0x11, 0x67, 0x99, 0x1d, 0xf4, 0x08, 0x56, 0x02, 0x3b, 0xc4, 0x1e, 0x3b, 0xcd, 0xa8, 0x81,
0x50, 0x5b, 0x8e, 0x0f, 0xf6, 0x6f, 0xf6, 0xf5, 0x87, 0x80, 0xb2, 0xf4, 0xd1, 0xc0, 0xf7, 0x28,
0x46, 0xcb, 0x50, 0x0c, 0x24, 0x81, 0x35, 0x8b, 0x2f, 0xf5, 0x9f, 0x14, 0x58, 0x3a, 0xc0, 0x2e,
0x66, 0x38, 0x5f, 0x09, 0xad, 0x43, 0x15, 0x5f, 0x12, 0x76, 0x4a, 0x99, 0xcd, 0x22, 0x2a, 0x38,
0xae, 0x59, 0xc0, 0xb7, 0x4e, 0xc4, 0x0e, 0xda, 0x85, 0x0a, 0x97, 0xb0, 0x73, 0x6a, 0x33, 0xc1,
0x74, 0xb5, 0x55, 0x37, 0xe2, 0xec, 0x34, 0x92, 0xec, 0x34, 0x5e, 0x26, 0xd9, 0xb9, 0x57, 0xbe,
0x7a, 0xb3, 0x7e, 0xe7, 0xe7, 0xbf, 0xd7, 0x15, 0xab, 0x1c, 0xc3, 0x76, 0x99, 0xde, 0x84, 0xd5,
0xd8, 0x8f, 0x76, 0xe8, 0x77, 0x30, 0xa5, 0x49, 0xc8, 0x27, 0x5d, 0xfe, 0x45, 0x01, 0x74, 0x78,
0x89, 0x3b, 0x63, 0x8a, 0xd9, 0x00, 0x29, 0x79, 0x01, 0x2a, 0xdc, 0x1e, 0xa0, 0x62, 0x4e, 0x80,
0x4a, 0x23, 0x01, 0x6a, 0x42, 0x89, 0x06, 0xb8, 0x23, 0xc2, 0x5f, 0x6d, 0xad, 0x4e, 0x3c, 0x70,
0xd7, 0x1b, 0x5a, 0x42, 0x43, 0xff, 0x08, 0xee, 0x8e, 0x78, 0x98, 0x4b, 0xbf, 0x05, 0xcb, 0x16,
0xa6, 0xe4, 0x07, 0xdc, 0x66, 0xc3, 0xdc, 0x17, 0x73, 0xf7, 0xbf, 0x27, 0x0e, 0xeb, 0x49, 0xe6,
0x63, 0x81, 0xbb, 0xd9, 0xc3, 0xa4, 0xdb, 0x8b, 0xdd, 0xaf, 0x59, 0x52, 0xd2, 0x7f, 0x2d, 0x40,
0x8d, 0xc7, 0x25, 0x8d, 0xe8, 0xbc, 0x65, 0x23, 0x3d, 0x28, 0xa6, 0x1e, 0x6c, 0x71, 0x4a, 0x44,
0xf0, 0x39, 0x25, 0x4b, 0xad, 0x07, 0xd9, 0x72, 0x19, 0x6c, 0xca, 0x8a, 0x89, 0xb3, 0xc1, 0x92,
0xaa, 0x68, 0x07, 0x2a, 0x41, 0xcc, 0x00, 0xa6, 0xda, 0x82, 0x28, 0xb3, 0x0f, 0x6f, 0xc5, 0x25,
0x3c, 0xa5, 0xea, 0xff, 0x53, 0x49, 0x65, 0x73, 0xa2, 0x32, 0x9a, 0x13, 0xfa, 0x11, 0x54, 0xbf,
0x20, 0xae, 0x9b, 0xb6, 0x16, 0x95, 0x92, 0x6e, 0x92, 0x3c, 0x35, 0x4b, 0x4a, 0x9c, 0x0b, 0xdb,
0x75, 0x05, 0x41, 0x65, 0x8b, 0x2f, 0x27, 0xd9, 0xd1, 0xb7, 0x61, 0x69, 0xdf, 0xf5, 0x29, 0x3e,
0x7a, 0xf1, 0x9f, 0x31, 0x4c, 0x53, 0xb0, 0x2c, 0x1f, 0xa4, 0x7f, 0x0c, 0xef, 0x7f, 0x49, 0x28,
0x6b, 0x13, 0x87, 0x4e, 0xe9, 0x71, 0xfa, 0x43, 0x58, 0x4e, 0x55, 0x65, 0x60, 0x11, 0x94, 0x02,
0xe2, 0x50, 0x4d, 0xd9, 0x28, 0x36, 0x6b, 0x96, 0x58, 0xeb, 0x7f, 0x28, 0x70, 0x2f, 0x6d, 0x04,
0xd9, 0xee, 0xc9, 0xb5, 0x6d, 0xd6, 0x8b, 0x6d, 0x5b, 0x62, 0x8d, 0xbe, 0x83, 0x45, 0x3f, 0x60,
0xc4, 0xf7, 0x78, 0x59, 0xf3, 0x08, 0x1d, 0x18, 0xd3, 0xa6, 0x98, 0x71, 0xab, 0x75, 0xe3, 0x45,
0x6c, 0xe6, 0xd0, 0x63, 0xe1, 0xd0, 0x4a, 0x8c, 0xd6, 0x77, 0xe0, 0xbd, 0xec, 0x01, 0x27, 0xe6,
0x02, 0x0f, 0xa5, 0x0b, 0x7c, 0xc9, 0x89, 0x19, 0xd8, 0x6e, 0x94, 0xe4, 0x60, 0x2c, 0xec, 0x14,
0xb6, 0x15, 0xfd, 0x31, 0x2c, 0x9f, 0xf4, 0x48, 0xff, 0xc8, 0x3b, 0xf7, 0x6f, 0x5e, 0x7c, 0x1f,
0xca, 0xdc, 0x8d, 0xd3, 0x94, 0xdd, 0x45, 0x2e, 0xb7, 0x89, 0xa3, 0xdf, 0x83, 0xbb, 0x27, 0x2c,
0xc4, 0x76, 0xff, 0x50, 0xcc, 0x14, 0xe9, 0x97, 0xfe, 0x39, 0xac, 0xbc, 0x0a, 0x9c, 0xb1, 0x41,
0xd2, 0x82, 0x4a, 0x88, 0xa9, 0x1f, 0x85, 0x1d, 0x4c, 0x85, 0x9d, 0xbc, 0x7a, 0x4e, 0xd5, 0x5a,
0xbf, 0x55, 0xa1, 0xc4, 0xfd, 0x41, 0x6d, 0x58, 0x10, 0xf5, 0x85, 0xd6, 0x26, 0x20, 0x87, 0x7c,
0x68, 0xd7, 0xcd, 0xe9, 0x1c, 0x8e, 0x16, 0x28, 0x05, 0x35, 0xee, 0xd6, 0x68, 0x6b, 0x06, 0xfa,
0xc7, 0xc7, 0x62, 0xfd, 0x93, 0xf9, 0x40, 0xf2, 0xd2, 0xe7, 0xe2, 0x19, 0x21, 0xcb, 0x7d, 0x46,
0xce, 0x3e, 0xb2, 0x40, 0x8d, 0x5b, 0x75, 0x2e, 0xf2, 0xc9, 0x74, 0x87, 0xc6, 0x86, 0xce, 0x10,
0x6a, 0x23, 0xed, 0x1f, 0x3d, 0x9b, 0xd5, 0xc4, 0xe8, 0x18, 0x78, 0x87, 0xab, 0x5f, 0x43, 0x39,
0x29, 0x2c, 0xb4, 0x39, 0x1d, 0x3d, 0x56, 0xaf, 0xf5, 0xd6, 0x3c, 0x90, 0x94, 0xfa, 0xb6, 0x1d,
0x51, 0x3c, 0x37, 0xf5, 0xdb, 0xa0, 0x5a, 0x98, 0x46, 0xfd, 0xf9, 0x91, 0xdf, 0x02, 0xa4, 0x75,
0x8b, 0x9e, 0xbf, 0x63, 0x95, 0xe7, 0x9a, 0xf7, 0x40, 0x8d, 0x8b, 0x0f, 0x3d, 0x9d, 0x25, 0xf9,
0x27, 0xca, 0xb4, 0xfe, 0x28, 0x0b, 0x4b, 0x3e, 0x0f, 0x8d, 0xf8, 0xf3, 0x90, 0x63, 0xac, 0xd8,
0x92, 0x00, 0x3d, 0x51, 0xd0, 0x31, 0x94, 0x78, 0xf7, 0x46, 0x8f, 0xa7, 0xdf, 0x96, 0xe9, 0xf2,
0xb9, 0xee, 0x53, 0x28, 0xf1, 0x81, 0x8d, 0x66, 0xa8, 0xa4, 0xc9, 0x4f, 0x8f, 0xfa, 0xd3, 0x39,
0x51, 0x32, 0x0b, 0xbe, 0x86, 0xca, 0xcd, 0xf0, 0x47, 0x33, 0xa4, 0xd1, 0xf8, 0x97, 0x42, 0xee,
0x6b, 0x4e, 0x60, 0x51, 0xce, 0x23, 0x34, 0x43, 0x39, 0x8c, 0x8e, 0xae, 0x5c, 0xa3, 0x5f, 0x41,
0x39, 0xe9, 0xc6, 0xb9, 0xc9, 0x37, 0xc3, 0x23, 0x26, 0x3a, 0xfa, 0x2b, 0x50, 0xe3, 0xfe, 0x3c,
0x4b, 0xef, 0x9b, 0xe8, 0xe4, 0x79, 0xee, 0xee, 0x1d, 0x5f, 0xbd, 0x6d, 0xdc, 0xf9, 0xeb, 0x6d,
0xe3, 0xce, 0x8f, 0xd7, 0x0d, 0xe5, 0xea, 0xba, 0xa1, 0xfc, 0x79, 0xdd, 0x50, 0xfe, 0xb9, 0x6e,
0x28, 0xdf, 0x6c, 0xcd, 0xf7, 0x1f, 0xde, 0x67, 0xfc, 0xf7, 0x4c, 0x15, 0xe6, 0xb7, 0xfe, 0x0d,
0x00, 0x00, 0xff, 0xff, 0xf6, 0xcc, 0xc3, 0x0f, 0x1f, 0x0e, 0x00, 0x00,
}

View File

@ -28,7 +28,7 @@ service Shim {
rpc DeleteProcess(DeleteProcessRequest) returns (DeleteResponse);
rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse);
rpc ListPids(ListPidsRequest) returns (ListPidsResponse);
rpc Pause(google.protobuf.Empty) returns (google.protobuf.Empty);
@ -120,12 +120,12 @@ message CloseIORequest {
bool stdin = 2;
}
message ListProcessesRequest {
message ListPidsRequest {
string id = 1;
}
message ListProcessesResponse{
repeated containerd.v1.types.Process processes = 1;
message ListPidsResponse{
repeated uint32 pids = 1;
}
message CheckpointTaskRequest {

View File

@ -127,21 +127,14 @@ func (t *Task) Exec(ctx context.Context, opts runtime.ExecOpts) (runtime.Process
}, nil
}
func (t *Task) Processes(ctx context.Context) ([]uint32, error) {
resp, err := t.shim.ListProcesses(ctx, &shim.ListProcessesRequest{
func (t *Task) Pids(ctx context.Context) ([]uint32, error) {
resp, err := t.shim.ListPids(ctx, &shim.ListPidsRequest{
ID: t.containerID,
})
if err != nil {
return nil, errors.New(grpc.ErrorDesc(err))
}
pids := make([]uint32, 0, len(resp.Processes))
for _, ps := range resp.Processes {
pids = append(pids, ps.Pid)
}
return pids, nil
return resp.Pids, nil
}
func (t *Task) ResizePty(ctx context.Context, pid uint32, size runtime.ConsoleSize) error {

View File

@ -25,8 +25,8 @@ type Task interface {
Kill(context.Context, uint32, uint32, bool) error
// Exec adds a process into the container
Exec(context.Context, ExecOpts) (Process, error)
// Processes returns all pids for the container
Processes(context.Context) ([]uint32, error)
// Pids returns all pids for the task
Pids(context.Context) ([]uint32, error)
// Pty resizes the processes pty/console
ResizePty(context.Context, uint32, ConsoleSize) error
// CloseStdin closes the processes stdin

View File

@ -340,25 +340,17 @@ func (s *Service) Kill(ctx context.Context, r *api.KillRequest) (*google_protobu
return empty, nil
}
func (s *Service) ListProcesses(ctx context.Context, r *api.ListProcessesRequest) (*api.ListProcessesResponse, error) {
func (s *Service) ListPids(ctx context.Context, r *api.ListPidsRequest) (*api.ListPidsResponse, error) {
t, err := s.getTask(ctx, r.ContainerID)
if err != nil {
return nil, err
}
pids, err := t.Processes(ctx)
pids, err := t.Pids(ctx)
if err != nil {
return nil, err
}
ps := []*task.Process{}
for _, pid := range pids {
ps = append(ps, &task.Process{
Pid: pid,
})
}
return &api.ListProcessesResponse{
Processes: ps,
return &api.ListPidsResponse{
Pids: pids,
}, nil
}

View File

@ -213,17 +213,13 @@ func (t *task) Exec(ctx context.Context, spec *specs.Process, ioCreate IOCreatio
}
func (t *task) Processes(ctx context.Context) ([]uint32, error) {
response, err := t.client.TaskService().ListProcesses(ctx, &tasks.ListProcessesRequest{
response, err := t.client.TaskService().ListPids(ctx, &tasks.ListPidsRequest{
ContainerID: t.containerID,
})
if err != nil {
return nil, err
}
var out []uint32
for _, p := range response.Processes {
out = append(out, p.Pid)
}
return out, nil
return response.Pids, nil
}
func (t *task) CloseIO(ctx context.Context, opts ...IOCloserOpts) error {

View File

@ -175,17 +175,15 @@ func (c *container) Pid() uint32 {
return c.ctr.Pid()
}
func (c *container) Processes(ctx context.Context) ([]uint32, error) {
func (c *container) Pids(ctx context.Context) ([]uint32, error) {
pl, err := c.ctr.ProcessList()
if err != nil {
return nil, err
}
pids := make([]uint32, 0, len(pl))
for _, p := range pl {
pids = append(pids, p.ProcessId)
}
return pids, nil
}