From 6e4b6830f1188dae6f661c2c3894df4548fb73e6 Mon Sep 17 00:00:00 2001 From: ruiwen-zhao Date: Wed, 10 Aug 2022 03:55:48 +0000 Subject: [PATCH] Update CRI-API Signed-off-by: ruiwen-zhao --- go.mod | 4 +- go.sum | 9 +- integration/client/go.mod | 2 +- integration/client/go.sum | 11 +- pkg/cri/sbserver/container_checkpoint.go | 28 + pkg/cri/sbserver/container_events.go | 27 + pkg/cri/sbserver/instrumented_service.go | 35 + pkg/cri/server/container_checkpoint.go | 28 + pkg/cri/server/container_events.go | 27 + pkg/cri/server/instrumented_service.go | 35 + .../cri-api/pkg/apis/runtime/v1/api.pb.go | 2230 +++++++++++++---- .../cri-api/pkg/apis/runtime/v1/api.proto | 65 +- .../pkg/apis/runtime/v1alpha2/api.pb.go | 1232 +++++---- .../pkg/apis/runtime/v1alpha2/api.proto | 13 +- vendor/modules.txt | 4 +- 15 files changed, 2829 insertions(+), 921 deletions(-) create mode 100644 pkg/cri/sbserver/container_checkpoint.go create mode 100644 pkg/cri/sbserver/container_events.go create mode 100644 pkg/cri/server/container_checkpoint.go create mode 100644 pkg/cri/server/container_events.go diff --git a/go.mod b/go.mod index 457b754cb..e369e4af5 100644 --- a/go.mod +++ b/go.mod @@ -63,7 +63,7 @@ require ( go.opentelemetry.io/otel/trace v1.7.0 golang.org/x/sync v0.0.0-20210220032951-036812b2e83c golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a - google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 + google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 google.golang.org/grpc v1.47.0 google.golang.org/protobuf v1.28.0 k8s.io/api v0.24.1 @@ -71,7 +71,7 @@ require ( k8s.io/apiserver v0.24.1 k8s.io/client-go v0.24.1 k8s.io/component-base v0.24.1 - k8s.io/cri-api v0.25.0-alpha.2 + k8s.io/cri-api v0.25.0-alpha.3.0.20220803042751-33bb7ae0d927 k8s.io/klog/v2 v2.60.1 k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9 ) diff --git a/go.sum b/go.sum index 807114d42..2dfd42a3b 100644 --- a/go.sum +++ b/go.sum @@ -1452,8 +1452,8 @@ google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEc google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 h1:G1IeWbjrqEq9ChWxEuRPJu6laA67+XgTFHVSAvepr38= -google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1482,7 +1482,6 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1587,8 +1586,8 @@ k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= -k8s.io/cri-api v0.25.0-alpha.2 h1:KSB1Untl+/iXXPuoqWtiW0YZbjqnnYGzhz4BbaLd3pg= -k8s.io/cri-api v0.25.0-alpha.2/go.mod h1:bKbUiy31Ex/ogNMxLEikgk+5kPv1vevtbiLN+xWEXr8= +k8s.io/cri-api v0.25.0-alpha.3.0.20220803042751-33bb7ae0d927 h1:b5WiYCb7EDC4U4NQMlgzfkYhL8184YtfIRcYch2mc0g= +k8s.io/cri-api v0.25.0-alpha.3.0.20220803042751-33bb7ae0d927/go.mod h1:pVVfduJnUZIMACxas6tKC229MZ+Yl4lOZ2Ij/9sqIIA= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= diff --git a/integration/client/go.mod b/integration/client/go.mod index dc949b451..fbd596734 100644 --- a/integration/client/go.mod +++ b/integration/client/go.mod @@ -60,7 +60,7 @@ require ( golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/text v0.3.7 // indirect - google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 // indirect + google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect google.golang.org/grpc v1.47.0 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect diff --git a/integration/client/go.sum b/integration/client/go.sum index 4efe2127c..83ee9850f 100644 --- a/integration/client/go.sum +++ b/integration/client/go.sum @@ -825,6 +825,7 @@ golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4 h1:HVyaeDAYux4pnY+D/SiwmLOR36ewZ4iGQIIrtnuCjFA= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -939,6 +940,7 @@ golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220405210540-1e041c57c461/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1107,9 +1109,8 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= -google.golang.org/genproto v0.0.0-20220310185008-1973136f34c6/go.mod h1:kGP+zUP2Ddo0ayMi4YuN7C3WZyJvGLZRh8Z5wnAqvEI= -google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 h1:G1IeWbjrqEq9ChWxEuRPJu6laA67+XgTFHVSAvepr38= -google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46/go.mod h1:8w6bsBMX6yCPbAVTeqQHvzxW0EIFigd5lZyahWgyfDo= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -1135,8 +1136,6 @@ google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQ google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.44.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.47.0 h1:9n77onPX5F3qfFCqjy9dhn8PbNQsIKeVU04J9G7umt8= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= @@ -1205,7 +1204,7 @@ k8s.io/client-go v0.24.1/go.mod h1:f1kIDqcEYmwXS/vTbbhopMUbhKp2JhOeVTfxgaCIlF8= k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= k8s.io/component-base v0.24.1/go.mod h1:DW5vQGYVCog8WYpNob3PMmmsY8A3L9QZNg4j/dV3s38= k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= -k8s.io/cri-api v0.25.0-alpha.2/go.mod h1:bKbUiy31Ex/ogNMxLEikgk+5kPv1vevtbiLN+xWEXr8= +k8s.io/cri-api v0.25.0-alpha.3.0.20220803042751-33bb7ae0d927/go.mod h1:pVVfduJnUZIMACxas6tKC229MZ+Yl4lOZ2Ij/9sqIIA= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= diff --git a/pkg/cri/sbserver/container_checkpoint.go b/pkg/cri/sbserver/container_checkpoint.go new file mode 100644 index 000000000..de78f8f7d --- /dev/null +++ b/pkg/cri/sbserver/container_checkpoint.go @@ -0,0 +1,28 @@ +/* + Copyright The containerd Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package sbserver + +import ( + "context" + "errors" + + runtime "k8s.io/cri-api/pkg/apis/runtime/v1" +) + +func (c *criService) CheckpointContainer(ctx context.Context, r *runtime.CheckpointContainerRequest) (res *runtime.CheckpointContainerResponse, err error) { + return nil, errors.New("not implemented") +} diff --git a/pkg/cri/sbserver/container_events.go b/pkg/cri/sbserver/container_events.go new file mode 100644 index 000000000..f90d6bf6b --- /dev/null +++ b/pkg/cri/sbserver/container_events.go @@ -0,0 +1,27 @@ +/* + Copyright The containerd Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package sbserver + +import ( + "errors" + + runtime "k8s.io/cri-api/pkg/apis/runtime/v1" +) + +func (c *criService) GetContainerEvents(r *runtime.GetEventsRequest, s runtime.RuntimeService_GetContainerEventsServer) error { + return errors.New("not implemented") +} diff --git a/pkg/cri/sbserver/instrumented_service.go b/pkg/cri/sbserver/instrumented_service.go index 46f9cf727..b56448c23 100644 --- a/pkg/cri/sbserver/instrumented_service.go +++ b/pkg/cri/sbserver/instrumented_service.go @@ -1601,6 +1601,41 @@ func (in *instrumentedAlphaService) ReopenContainerLog(ctx context.Context, r *r return res, errdefs.ToGRPC(err) } +func (in *instrumentedService) CheckpointContainer(ctx context.Context, r *runtime.CheckpointContainerRequest) (res *runtime.CheckpointContainerResponse, err error) { + if err := in.checkInitialized(); err != nil { + return nil, err + } + + defer func() { + if err != nil { + log.G(ctx).WithError(err).Errorf("CheckpointContainer failed, error") + } else { + log.G(ctx).Debug("CheckpointContainer returns successfully") + } + }() + + res, err = in.c.CheckpointContainer(ctx, r) + return res, errdefs.ToGRPC(err) +} + +func (in *instrumentedService) GetContainerEvents(r *runtime.GetEventsRequest, s runtime.RuntimeService_GetContainerEventsServer) (err error) { + if err := in.checkInitialized(); err != nil { + return err + } + + ctx := s.Context() + defer func() { + if err != nil { + log.G(ctx).WithError(err).Errorf("GetContainerEvents failed, error") + } else { + log.G(ctx).Debug("GetContainerEvents returns successfully") + } + }() + + err = in.c.GetContainerEvents(r, s) + return errdefs.ToGRPC(err) +} + func alphaReqToV1Req( alphar interface{ Marshal() ([]byte, error) }, v1r interface{ Unmarshal(_ []byte) error }, diff --git a/pkg/cri/server/container_checkpoint.go b/pkg/cri/server/container_checkpoint.go new file mode 100644 index 000000000..5e7b818ed --- /dev/null +++ b/pkg/cri/server/container_checkpoint.go @@ -0,0 +1,28 @@ +/* + Copyright The containerd Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package server + +import ( + "context" + "errors" + + runtime "k8s.io/cri-api/pkg/apis/runtime/v1" +) + +func (c *criService) CheckpointContainer(ctx context.Context, r *runtime.CheckpointContainerRequest) (res *runtime.CheckpointContainerResponse, err error) { + return nil, errors.New("not implemented") +} diff --git a/pkg/cri/server/container_events.go b/pkg/cri/server/container_events.go new file mode 100644 index 000000000..136705b7c --- /dev/null +++ b/pkg/cri/server/container_events.go @@ -0,0 +1,27 @@ +/* + Copyright The containerd Authors. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +package server + +import ( + "errors" + + runtime "k8s.io/cri-api/pkg/apis/runtime/v1" +) + +func (c *criService) GetContainerEvents(r *runtime.GetEventsRequest, s runtime.RuntimeService_GetContainerEventsServer) error { + return errors.New("not implemented") +} diff --git a/pkg/cri/server/instrumented_service.go b/pkg/cri/server/instrumented_service.go index 69427ae18..9ff4305d6 100644 --- a/pkg/cri/server/instrumented_service.go +++ b/pkg/cri/server/instrumented_service.go @@ -1601,6 +1601,41 @@ func (in *instrumentedAlphaService) ReopenContainerLog(ctx context.Context, r *r return res, errdefs.ToGRPC(err) } +func (in *instrumentedService) CheckpointContainer(ctx context.Context, r *runtime.CheckpointContainerRequest) (res *runtime.CheckpointContainerResponse, err error) { + if err := in.checkInitialized(); err != nil { + return nil, err + } + + defer func() { + if err != nil { + log.G(ctx).WithError(err).Errorf("CheckpointContainer failed, error") + } else { + log.G(ctx).Debug("CheckpointContainer returns successfully") + } + }() + + res, err = in.c.CheckpointContainer(ctx, r) + return res, errdefs.ToGRPC(err) +} + +func (in *instrumentedService) GetContainerEvents(r *runtime.GetEventsRequest, s runtime.RuntimeService_GetContainerEventsServer) (err error) { + if err := in.checkInitialized(); err != nil { + return err + } + + ctx := s.Context() + defer func() { + if err != nil { + log.G(ctx).WithError(err).Errorf("GetContainerEvents failed, error") + } else { + log.G(ctx).Debug("GetContainerEvents returns successfully") + } + }() + + err = in.c.GetContainerEvents(r, s) + return errdefs.ToGRPC(err) +} + func alphaReqToV1Req( alphar interface{ Marshal() ([]byte, error) }, v1r interface{ Unmarshal(_ []byte) error }, diff --git a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go index 1e1aebbb0..ca7f14229 100644 --- a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go +++ b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.pb.go @@ -211,6 +211,41 @@ func (ContainerState) EnumDescriptor() ([]byte, []int) { return fileDescriptor_00212fb1f9d3bf1c, []int{4} } +type ContainerEventType int32 + +const ( + // Container created + ContainerEventType_CONTAINER_CREATED_EVENT ContainerEventType = 0 + // Container started + ContainerEventType_CONTAINER_STARTED_EVENT ContainerEventType = 1 + // Container stopped + ContainerEventType_CONTAINER_STOPPED_EVENT ContainerEventType = 2 + // Container deleted + ContainerEventType_CONTAINER_DELETED_EVENT ContainerEventType = 3 +) + +var ContainerEventType_name = map[int32]string{ + 0: "CONTAINER_CREATED_EVENT", + 1: "CONTAINER_STARTED_EVENT", + 2: "CONTAINER_STOPPED_EVENT", + 3: "CONTAINER_DELETED_EVENT", +} + +var ContainerEventType_value = map[string]int32{ + "CONTAINER_CREATED_EVENT": 0, + "CONTAINER_STARTED_EVENT": 1, + "CONTAINER_STOPPED_EVENT": 2, + "CONTAINER_DELETED_EVENT": 3, +} + +func (x ContainerEventType) String() string { + return proto.EnumName(ContainerEventType_name, int32(x)) +} + +func (ContainerEventType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{5} +} + // Available profile types. type SecurityProfile_ProfileType int32 @@ -865,9 +900,9 @@ func (m *Int64Value) GetValue() int64 { // LinuxSandboxSecurityContext holds linux security configuration that will be // applied to a sandbox. Note that: -// 1) It does not apply to containers in the pods. -// 2) It may not be applicable to a PodSandbox which does not contain any running -// process. +// 1. It does not apply to containers in the pods. +// 2. It may not be applicable to a PodSandbox which does not contain any running +// process. type LinuxSandboxSecurityContext struct { // Configurations for the sandbox's namespaces. // This will be used only if the PodSandbox uses namespace for isolation. @@ -895,10 +930,11 @@ type LinuxSandboxSecurityContext struct { // AppArmor profile for the sandbox. Apparmor *SecurityProfile `protobuf:"bytes,10,opt,name=apparmor,proto3" json:"apparmor,omitempty"` // Seccomp profile for the sandbox, candidate values are: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. + // - runtime/default: the default profile for the container runtime + // - unconfined: unconfined profile, ie, no seccomp sandboxing + // - localhost/: the profile installed on the node. + // is the full path of the profile. + // // Default: "", which is identical with unconfined. SeccompProfilePath string `protobuf:"bytes,7,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` // Deprecated: Do not use. XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1249,8 +1285,9 @@ type PodSandboxConfig struct { // containers. For example, the files might be newline separated JSON // structured logs, systemd-journald journal files, gRPC trace files, etc. // E.g., - // PodSandboxConfig.LogDirectory = `/var/log/pods//` - // ContainerConfig.LogPath = `containerName/Instance#.log` + // + // PodSandboxConfig.LogDirectory = `/var/log/pods//` + // ContainerConfig.LogPath = `containerName/Instance#.log` LogDirectory string `protobuf:"bytes,3,opt,name=log_directory,json=logDirectory,proto3" json:"log_directory,omitempty"` // DNS config for the sandbox. DnsConfig *DNSConfig `protobuf:"bytes,4,opt,name=dns_config,json=dnsConfig,proto3" json:"dns_config,omitempty"` @@ -3603,17 +3640,18 @@ type LinuxContainerSecurityContext struct { // AppArmor profile for the container. Apparmor *SecurityProfile `protobuf:"bytes,16,opt,name=apparmor,proto3" json:"apparmor,omitempty"` // AppArmor profile for the container, candidate values are: - // * runtime/default: equivalent to not specifying a profile. - // * unconfined: no profiles are loaded - // * localhost/: profile loaded on the node - // (localhost) by name. The possible profile names are detailed at - // https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference + // - runtime/default: equivalent to not specifying a profile. + // - unconfined: no profiles are loaded + // - localhost/: profile loaded on the node + // (localhost) by name. The possible profile names are detailed at + // https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference ApparmorProfile string `protobuf:"bytes,9,opt,name=apparmor_profile,json=apparmorProfile,proto3" json:"apparmor_profile,omitempty"` // Deprecated: Do not use. // Seccomp profile for the container, candidate values are: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. + // - runtime/default: the default profile for the container runtime + // - unconfined: unconfined profile, ie, no seccomp sandboxing + // - localhost/: the profile installed on the node. + // is the full path of the profile. + // // Default: "", which is identical with unconfined. SeccompProfilePath string `protobuf:"bytes,10,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` // Deprecated: Do not use. XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -4300,10 +4338,11 @@ type ContainerConfig struct { Devices []*Device `protobuf:"bytes,8,rep,name=devices,proto3" json:"devices,omitempty"` // Key-value pairs that may be used to scope and select individual resources. // Label keys are of the form: - // label-key ::= prefixed-name | name - // prefixed-name ::= prefix '/' name - // prefix ::= DNS_SUBDOMAIN - // name ::= DNS_LABEL + // + // label-key ::= prefixed-name | name + // prefixed-name ::= prefix '/' name + // prefix ::= DNS_SUBDOMAIN + // name ::= DNS_LABEL Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map that may be used by the kubelet to store and // retrieve arbitrary metadata. @@ -4319,8 +4358,9 @@ type ContainerConfig struct { // Path relative to PodSandboxConfig.LogDirectory for container to store // the log (STDOUT and STDERR) on the host. // E.g., - // PodSandboxConfig.LogDirectory = `/var/log/pods//` - // ContainerConfig.LogPath = `containerName/Instance#.log` + // + // PodSandboxConfig.LogDirectory = `/var/log/pods//` + // ContainerConfig.LogPath = `containerName/Instance#.log` // // WARNING: Log management and how kubelet should interface with the // container logs are under active discussion in @@ -5287,9 +5327,11 @@ type ContainerStatus struct { // Mounts for the container. Mounts []*Mount `protobuf:"bytes,14,rep,name=mounts,proto3" json:"mounts,omitempty"` // Log path of container. - LogPath string `protobuf:"bytes,15,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + LogPath string `protobuf:"bytes,15,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` + // Resource limits configuration of the container. + Resources *ContainerResources `protobuf:"bytes,16,opt,name=resources,proto3" json:"resources,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } @@ -5429,6 +5471,13 @@ func (m *ContainerStatus) GetLogPath() string { return "" } +func (m *ContainerStatus) GetResources() *ContainerResources { + if m != nil { + return m.Resources + } + return nil +} + type ContainerStatusResponse struct { // Status of the container. Status *ContainerStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` @@ -5487,6 +5536,62 @@ func (m *ContainerStatusResponse) GetInfo() map[string]string { return nil } +// ContainerResources holds resource limits configuration for a container. +type ContainerResources struct { + // Resource limits configuration specific to Linux container. + Linux *LinuxContainerResources `protobuf:"bytes,1,opt,name=linux,proto3" json:"linux,omitempty"` + // Resource limits configuration specific to Windows container. + Windows *WindowsContainerResources `protobuf:"bytes,2,opt,name=windows,proto3" json:"windows,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContainerResources) Reset() { *m = ContainerResources{} } +func (*ContainerResources) ProtoMessage() {} +func (*ContainerResources) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{76} +} +func (m *ContainerResources) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ContainerResources.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ContainerResources) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerResources.Merge(m, src) +} +func (m *ContainerResources) XXX_Size() int { + return m.Size() +} +func (m *ContainerResources) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerResources.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerResources proto.InternalMessageInfo + +func (m *ContainerResources) GetLinux() *LinuxContainerResources { + if m != nil { + return m.Linux + } + return nil +} + +func (m *ContainerResources) GetWindows() *WindowsContainerResources { + if m != nil { + return m.Windows + } + return nil +} + type UpdateContainerResourcesRequest struct { // ID of the container to update. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` @@ -5505,7 +5610,7 @@ type UpdateContainerResourcesRequest struct { func (m *UpdateContainerResourcesRequest) Reset() { *m = UpdateContainerResourcesRequest{} } func (*UpdateContainerResourcesRequest) ProtoMessage() {} func (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{76} + return fileDescriptor_00212fb1f9d3bf1c, []int{77} } func (m *UpdateContainerResourcesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5570,7 +5675,7 @@ type UpdateContainerResourcesResponse struct { func (m *UpdateContainerResourcesResponse) Reset() { *m = UpdateContainerResourcesResponse{} } func (*UpdateContainerResourcesResponse) ProtoMessage() {} func (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{77} + return fileDescriptor_00212fb1f9d3bf1c, []int{78} } func (m *UpdateContainerResourcesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5613,7 +5718,7 @@ type ExecSyncRequest struct { func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (*ExecSyncRequest) ProtoMessage() {} func (*ExecSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{78} + return fileDescriptor_00212fb1f9d3bf1c, []int{79} } func (m *ExecSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5677,7 +5782,7 @@ type ExecSyncResponse struct { func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (*ExecSyncResponse) ProtoMessage() {} func (*ExecSyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{79} + return fileDescriptor_00212fb1f9d3bf1c, []int{80} } func (m *ExecSyncResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5753,7 +5858,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{80} + return fileDescriptor_00212fb1f9d3bf1c, []int{81} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5834,7 +5939,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{81} + return fileDescriptor_00212fb1f9d3bf1c, []int{82} } func (m *ExecResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5895,7 +6000,7 @@ type AttachRequest struct { func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (*AttachRequest) ProtoMessage() {} func (*AttachRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{82} + return fileDescriptor_00212fb1f9d3bf1c, []int{83} } func (m *AttachRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5969,7 +6074,7 @@ type AttachResponse struct { func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (*AttachResponse) ProtoMessage() {} func (*AttachResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{83} + return fileDescriptor_00212fb1f9d3bf1c, []int{84} } func (m *AttachResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6017,7 +6122,7 @@ type PortForwardRequest struct { func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (*PortForwardRequest) ProtoMessage() {} func (*PortForwardRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{84} + return fileDescriptor_00212fb1f9d3bf1c, []int{85} } func (m *PortForwardRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6070,7 +6175,7 @@ type PortForwardResponse struct { func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (*PortForwardResponse) ProtoMessage() {} func (*PortForwardResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{85} + return fileDescriptor_00212fb1f9d3bf1c, []int{86} } func (m *PortForwardResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6116,7 +6221,7 @@ type ImageFilter struct { func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (*ImageFilter) ProtoMessage() {} func (*ImageFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{86} + return fileDescriptor_00212fb1f9d3bf1c, []int{87} } func (m *ImageFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6162,7 +6267,7 @@ type ListImagesRequest struct { func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (*ListImagesRequest) ProtoMessage() {} func (*ListImagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{87} + return fileDescriptor_00212fb1f9d3bf1c, []int{88} } func (m *ListImagesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6228,7 +6333,7 @@ type Image struct { func (m *Image) Reset() { *m = Image{} } func (*Image) ProtoMessage() {} func (*Image) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{88} + return fileDescriptor_00212fb1f9d3bf1c, []int{89} } func (m *Image) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6323,7 +6428,7 @@ type ListImagesResponse struct { func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (*ListImagesResponse) ProtoMessage() {} func (*ListImagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{89} + return fileDescriptor_00212fb1f9d3bf1c, []int{90} } func (m *ListImagesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6371,7 +6476,7 @@ type ImageStatusRequest struct { func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (*ImageStatusRequest) ProtoMessage() {} func (*ImageStatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{90} + return fileDescriptor_00212fb1f9d3bf1c, []int{91} } func (m *ImageStatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6429,7 +6534,7 @@ type ImageStatusResponse struct { func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (*ImageStatusResponse) ProtoMessage() {} func (*ImageStatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{91} + return fileDescriptor_00212fb1f9d3bf1c, []int{92} } func (m *ImageStatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6490,7 +6595,7 @@ type AuthConfig struct { func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (*AuthConfig) ProtoMessage() {} func (*AuthConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{92} + return fileDescriptor_00212fb1f9d3bf1c, []int{93} } func (m *AuthConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6575,7 +6680,7 @@ type PullImageRequest struct { func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (*PullImageRequest) ProtoMessage() {} func (*PullImageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{93} + return fileDescriptor_00212fb1f9d3bf1c, []int{94} } func (m *PullImageRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6636,7 +6741,7 @@ type PullImageResponse struct { func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (*PullImageResponse) ProtoMessage() {} func (*PullImageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{94} + return fileDescriptor_00212fb1f9d3bf1c, []int{95} } func (m *PullImageResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6682,7 +6787,7 @@ type RemoveImageRequest struct { func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (*RemoveImageRequest) ProtoMessage() {} func (*RemoveImageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{95} + return fileDescriptor_00212fb1f9d3bf1c, []int{96} } func (m *RemoveImageRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6726,7 +6831,7 @@ type RemoveImageResponse struct { func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (*RemoveImageResponse) ProtoMessage() {} func (*RemoveImageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{96} + return fileDescriptor_00212fb1f9d3bf1c, []int{97} } func (m *RemoveImageResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6766,7 +6871,7 @@ type NetworkConfig struct { func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (*NetworkConfig) ProtoMessage() {} func (*NetworkConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{97} + return fileDescriptor_00212fb1f9d3bf1c, []int{98} } func (m *NetworkConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6811,7 +6916,7 @@ type RuntimeConfig struct { func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (*RuntimeConfig) ProtoMessage() {} func (*RuntimeConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{98} + return fileDescriptor_00212fb1f9d3bf1c, []int{99} } func (m *RuntimeConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6856,7 +6961,7 @@ type UpdateRuntimeConfigRequest struct { func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{99} + return fileDescriptor_00212fb1f9d3bf1c, []int{100} } func (m *UpdateRuntimeConfigRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6900,7 +7005,7 @@ type UpdateRuntimeConfigResponse struct { func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{100} + return fileDescriptor_00212fb1f9d3bf1c, []int{101} } func (m *UpdateRuntimeConfigResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6934,10 +7039,11 @@ var xxx_messageInfo_UpdateRuntimeConfigResponse proto.InternalMessageInfo // 1. Required conditions: Conditions are required for kubelet to work // properly. If any required condition is unmet, the node will be not ready. // The required conditions include: -// * RuntimeReady: RuntimeReady means the runtime is up and ready to accept -// basic containers e.g. container only needs host network. -// * NetworkReady: NetworkReady means the runtime network is up and ready to -// accept containers which require container network. +// - RuntimeReady: RuntimeReady means the runtime is up and ready to accept +// basic containers e.g. container only needs host network. +// - NetworkReady: NetworkReady means the runtime network is up and ready to +// accept containers which require container network. +// // 2. Optional conditions: Conditions are informative to the user, but kubelet // will not rely on. Since condition type is an arbitrary string, all conditions // not required are optional. These conditions will be exposed to users to help @@ -6958,7 +7064,7 @@ type RuntimeCondition struct { func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (*RuntimeCondition) ProtoMessage() {} func (*RuntimeCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{101} + return fileDescriptor_00212fb1f9d3bf1c, []int{102} } func (m *RuntimeCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7026,7 +7132,7 @@ type RuntimeStatus struct { func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (*RuntimeStatus) ProtoMessage() {} func (*RuntimeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{102} + return fileDescriptor_00212fb1f9d3bf1c, []int{103} } func (m *RuntimeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7072,7 +7178,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{103} + return fileDescriptor_00212fb1f9d3bf1c, []int{104} } func (m *StatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7123,7 +7229,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} func (*StatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{104} + return fileDescriptor_00212fb1f9d3bf1c, []int{105} } func (m *StatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7174,7 +7280,7 @@ type ImageFsInfoRequest struct { func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} } func (*ImageFsInfoRequest) ProtoMessage() {} func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{105} + return fileDescriptor_00212fb1f9d3bf1c, []int{106} } func (m *ImageFsInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7214,7 +7320,7 @@ type UInt64Value struct { func (m *UInt64Value) Reset() { *m = UInt64Value{} } func (*UInt64Value) ProtoMessage() {} func (*UInt64Value) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{106} + return fileDescriptor_00212fb1f9d3bf1c, []int{107} } func (m *UInt64Value) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7261,7 +7367,7 @@ type FilesystemIdentifier struct { func (m *FilesystemIdentifier) Reset() { *m = FilesystemIdentifier{} } func (*FilesystemIdentifier) ProtoMessage() {} func (*FilesystemIdentifier) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{107} + return fileDescriptor_00212fb1f9d3bf1c, []int{108} } func (m *FilesystemIdentifier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7318,7 +7424,7 @@ type FilesystemUsage struct { func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} } func (*FilesystemUsage) ProtoMessage() {} func (*FilesystemUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{108} + return fileDescriptor_00212fb1f9d3bf1c, []int{109} } func (m *FilesystemUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7385,7 +7491,7 @@ type ImageFsInfoResponse struct { func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} } func (*ImageFsInfoResponse) ProtoMessage() {} func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{109} + return fileDescriptor_00212fb1f9d3bf1c, []int{110} } func (m *ImageFsInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7431,7 +7537,7 @@ type ContainerStatsRequest struct { func (m *ContainerStatsRequest) Reset() { *m = ContainerStatsRequest{} } func (*ContainerStatsRequest) ProtoMessage() {} func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{110} + return fileDescriptor_00212fb1f9d3bf1c, []int{111} } func (m *ContainerStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7477,7 +7583,7 @@ type ContainerStatsResponse struct { func (m *ContainerStatsResponse) Reset() { *m = ContainerStatsResponse{} } func (*ContainerStatsResponse) ProtoMessage() {} func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{111} + return fileDescriptor_00212fb1f9d3bf1c, []int{112} } func (m *ContainerStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7523,7 +7629,7 @@ type ListContainerStatsRequest struct { func (m *ListContainerStatsRequest) Reset() { *m = ListContainerStatsRequest{} } func (*ListContainerStatsRequest) ProtoMessage() {} func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{112} + return fileDescriptor_00212fb1f9d3bf1c, []int{113} } func (m *ListContainerStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7577,7 +7683,7 @@ type ContainerStatsFilter struct { func (m *ContainerStatsFilter) Reset() { *m = ContainerStatsFilter{} } func (*ContainerStatsFilter) ProtoMessage() {} func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{113} + return fileDescriptor_00212fb1f9d3bf1c, []int{114} } func (m *ContainerStatsFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7637,7 +7743,7 @@ type ListContainerStatsResponse struct { func (m *ListContainerStatsResponse) Reset() { *m = ListContainerStatsResponse{} } func (*ListContainerStatsResponse) ProtoMessage() {} func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{114} + return fileDescriptor_00212fb1f9d3bf1c, []int{115} } func (m *ListContainerStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7693,7 +7799,7 @@ type ContainerAttributes struct { func (m *ContainerAttributes) Reset() { *m = ContainerAttributes{} } func (*ContainerAttributes) ProtoMessage() {} func (*ContainerAttributes) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{115} + return fileDescriptor_00212fb1f9d3bf1c, []int{116} } func (m *ContainerAttributes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7767,7 +7873,7 @@ type ContainerStats struct { func (m *ContainerStats) Reset() { *m = ContainerStats{} } func (*ContainerStats) ProtoMessage() {} func (*ContainerStats) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{116} + return fileDescriptor_00212fb1f9d3bf1c, []int{117} } func (m *ContainerStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7840,7 +7946,7 @@ type CpuUsage struct { func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (*CpuUsage) ProtoMessage() {} func (*CpuUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{117} + return fileDescriptor_00212fb1f9d3bf1c, []int{118} } func (m *CpuUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7913,7 +8019,7 @@ type MemoryUsage struct { func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (*MemoryUsage) ProtoMessage() {} func (*MemoryUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{118} + return fileDescriptor_00212fb1f9d3bf1c, []int{119} } func (m *MemoryUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8001,7 +8107,7 @@ type ReopenContainerLogRequest struct { func (m *ReopenContainerLogRequest) Reset() { *m = ReopenContainerLogRequest{} } func (*ReopenContainerLogRequest) ProtoMessage() {} func (*ReopenContainerLogRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{119} + return fileDescriptor_00212fb1f9d3bf1c, []int{120} } func (m *ReopenContainerLogRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8045,7 +8151,7 @@ type ReopenContainerLogResponse struct { func (m *ReopenContainerLogResponse) Reset() { *m = ReopenContainerLogResponse{} } func (*ReopenContainerLogResponse) ProtoMessage() {} func (*ReopenContainerLogResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{120} + return fileDescriptor_00212fb1f9d3bf1c, []int{121} } func (m *ReopenContainerLogResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8074,12 +8180,226 @@ func (m *ReopenContainerLogResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ReopenContainerLogResponse proto.InternalMessageInfo +type CheckpointContainerRequest struct { + // ID of the container to be checkpointed. + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Location of the checkpoint archive used for export + Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"` + // Timeout in seconds for the checkpoint to complete. + // Timeout of zero means to use the CRI default. + // Timeout > 0 means to use the user specified timeout. + Timeout int64 `protobuf:"varint,3,opt,name=timeout,proto3" json:"timeout,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CheckpointContainerRequest) Reset() { *m = CheckpointContainerRequest{} } +func (*CheckpointContainerRequest) ProtoMessage() {} +func (*CheckpointContainerRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{122} +} +func (m *CheckpointContainerRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CheckpointContainerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CheckpointContainerRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CheckpointContainerRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckpointContainerRequest.Merge(m, src) +} +func (m *CheckpointContainerRequest) XXX_Size() int { + return m.Size() +} +func (m *CheckpointContainerRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CheckpointContainerRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CheckpointContainerRequest proto.InternalMessageInfo + +func (m *CheckpointContainerRequest) GetContainerId() string { + if m != nil { + return m.ContainerId + } + return "" +} + +func (m *CheckpointContainerRequest) GetLocation() string { + if m != nil { + return m.Location + } + return "" +} + +func (m *CheckpointContainerRequest) GetTimeout() int64 { + if m != nil { + return m.Timeout + } + return 0 +} + +type CheckpointContainerResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CheckpointContainerResponse) Reset() { *m = CheckpointContainerResponse{} } +func (*CheckpointContainerResponse) ProtoMessage() {} +func (*CheckpointContainerResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{123} +} +func (m *CheckpointContainerResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CheckpointContainerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_CheckpointContainerResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *CheckpointContainerResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CheckpointContainerResponse.Merge(m, src) +} +func (m *CheckpointContainerResponse) XXX_Size() int { + return m.Size() +} +func (m *CheckpointContainerResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CheckpointContainerResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CheckpointContainerResponse proto.InternalMessageInfo + +type GetEventsRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetEventsRequest) Reset() { *m = GetEventsRequest{} } +func (*GetEventsRequest) ProtoMessage() {} +func (*GetEventsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{124} +} +func (m *GetEventsRequest) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GetEventsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_GetEventsRequest.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *GetEventsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetEventsRequest.Merge(m, src) +} +func (m *GetEventsRequest) XXX_Size() int { + return m.Size() +} +func (m *GetEventsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetEventsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetEventsRequest proto.InternalMessageInfo + +type ContainerEventResponse struct { + // ID of the container + ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + // Type of the container event + ContainerEventType ContainerEventType `protobuf:"varint,2,opt,name=container_event_type,json=containerEventType,proto3,enum=runtime.v1.ContainerEventType" json:"container_event_type,omitempty"` + // Creation timestamp of this event + CreatedAt int64 `protobuf:"varint,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + // ID of the sandbox container + PodSandboxMetadata *PodSandboxMetadata `protobuf:"bytes,4,opt,name=pod_sandbox_metadata,json=podSandboxMetadata,proto3" json:"pod_sandbox_metadata,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContainerEventResponse) Reset() { *m = ContainerEventResponse{} } +func (*ContainerEventResponse) ProtoMessage() {} +func (*ContainerEventResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{125} +} +func (m *ContainerEventResponse) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerEventResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ContainerEventResponse.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ContainerEventResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerEventResponse.Merge(m, src) +} +func (m *ContainerEventResponse) XXX_Size() int { + return m.Size() +} +func (m *ContainerEventResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerEventResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerEventResponse proto.InternalMessageInfo + +func (m *ContainerEventResponse) GetContainerId() string { + if m != nil { + return m.ContainerId + } + return "" +} + +func (m *ContainerEventResponse) GetContainerEventType() ContainerEventType { + if m != nil { + return m.ContainerEventType + } + return ContainerEventType_CONTAINER_CREATED_EVENT +} + +func (m *ContainerEventResponse) GetCreatedAt() int64 { + if m != nil { + return m.CreatedAt + } + return 0 +} + +func (m *ContainerEventResponse) GetPodSandboxMetadata() *PodSandboxMetadata { + if m != nil { + return m.PodSandboxMetadata + } + return nil +} + func init() { proto.RegisterEnum("runtime.v1.Protocol", Protocol_name, Protocol_value) proto.RegisterEnum("runtime.v1.MountPropagation", MountPropagation_name, MountPropagation_value) proto.RegisterEnum("runtime.v1.NamespaceMode", NamespaceMode_name, NamespaceMode_value) proto.RegisterEnum("runtime.v1.PodSandboxState", PodSandboxState_name, PodSandboxState_value) proto.RegisterEnum("runtime.v1.ContainerState", ContainerState_name, ContainerState_value) + proto.RegisterEnum("runtime.v1.ContainerEventType", ContainerEventType_name, ContainerEventType_value) proto.RegisterEnum("runtime.v1.SecurityProfile_ProfileType", SecurityProfile_ProfileType_name, SecurityProfile_ProfileType_value) proto.RegisterType((*VersionRequest)(nil), "runtime.v1.VersionRequest") proto.RegisterType((*VersionResponse)(nil), "runtime.v1.VersionResponse") @@ -8179,6 +8499,7 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "runtime.v1.ContainerStatus.LabelsEntry") proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.v1.ContainerStatusResponse") proto.RegisterMapType((map[string]string)(nil), "runtime.v1.ContainerStatusResponse.InfoEntry") + proto.RegisterType((*ContainerResources)(nil), "runtime.v1.ContainerResources") proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "runtime.v1.UpdateContainerResourcesRequest") proto.RegisterMapType((map[string]string)(nil), "runtime.v1.UpdateContainerResourcesRequest.AnnotationsEntry") proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "runtime.v1.UpdateContainerResourcesResponse") @@ -8230,373 +8551,391 @@ func init() { proto.RegisterType((*MemoryUsage)(nil), "runtime.v1.MemoryUsage") proto.RegisterType((*ReopenContainerLogRequest)(nil), "runtime.v1.ReopenContainerLogRequest") proto.RegisterType((*ReopenContainerLogResponse)(nil), "runtime.v1.ReopenContainerLogResponse") + proto.RegisterType((*CheckpointContainerRequest)(nil), "runtime.v1.CheckpointContainerRequest") + proto.RegisterType((*CheckpointContainerResponse)(nil), "runtime.v1.CheckpointContainerResponse") + proto.RegisterType((*GetEventsRequest)(nil), "runtime.v1.GetEventsRequest") + proto.RegisterType((*ContainerEventResponse)(nil), "runtime.v1.ContainerEventResponse") } func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } var fileDescriptor_00212fb1f9d3bf1c = []byte{ - // 5772 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x3c, 0x4b, 0x70, 0x1b, 0xc9, - 0x75, 0x1c, 0x00, 0x24, 0x81, 0x07, 0x02, 0x04, 0x5b, 0x14, 0x09, 0x41, 0x9f, 0x95, 0x46, 0xde, - 0x8f, 0xa4, 0x5d, 0x52, 0xab, 0xd5, 0xae, 0xb5, 0xf4, 0x7e, 0x04, 0x91, 0xdc, 0x5d, 0xac, 0x25, - 0x12, 0x1e, 0x90, 0xeb, 0x5f, 0xca, 0x93, 0x11, 0xa6, 0x09, 0xce, 0x0a, 0x98, 0x19, 0xcf, 0x0c, - 0x24, 0xd1, 0x27, 0x5f, 0x93, 0x53, 0xaa, 0x1c, 0x97, 0xab, 0x5c, 0xa9, 0xa4, 0x72, 0xca, 0x21, - 0x07, 0xe7, 0x92, 0x54, 0xaa, 0x52, 0x49, 0x2e, 0xa9, 0x94, 0x93, 0x2a, 0x57, 0xf9, 0x92, 0x2a, - 0x1f, 0x52, 0x15, 0x7b, 0x73, 0xcb, 0x21, 0x27, 0x1f, 0x72, 0x73, 0xaa, 0x7f, 0x33, 0xd3, 0x33, - 0x83, 0x01, 0xa8, 0x5d, 0xef, 0xee, 0x89, 0xe8, 0xd7, 0xef, 0xbd, 0x7e, 0xdd, 0xfd, 0xfa, 0xf5, - 0xeb, 0xf7, 0xde, 0x10, 0x2a, 0x86, 0x6b, 0x6d, 0xb8, 0x9e, 0x13, 0x38, 0x08, 0xbc, 0xb1, 0x1d, - 0x58, 0x23, 0xbc, 0xf1, 0xf8, 0xd5, 0xd6, 0x2b, 0x03, 0x2b, 0x38, 0x1e, 0x3f, 0xdc, 0xe8, 0x3b, - 0xa3, 0xcd, 0x81, 0x33, 0x70, 0x36, 0x29, 0xca, 0xc3, 0xf1, 0x11, 0x6d, 0xd1, 0x06, 0xfd, 0xc5, - 0x48, 0xd5, 0xeb, 0x50, 0xff, 0x08, 0x7b, 0xbe, 0xe5, 0xd8, 0x1a, 0xfe, 0xfe, 0x18, 0xfb, 0x01, - 0x6a, 0xc2, 0xe2, 0x63, 0x06, 0x69, 0x2a, 0x97, 0x95, 0x97, 0x2a, 0x9a, 0x68, 0xaa, 0x7f, 0xa5, - 0xc0, 0x72, 0x88, 0xec, 0xbb, 0x8e, 0xed, 0xe3, 0xc9, 0xd8, 0xe8, 0x0a, 0x2c, 0x71, 0xb1, 0x74, - 0xdb, 0x18, 0xe1, 0x66, 0x81, 0x76, 0x57, 0x39, 0x6c, 0xcf, 0x18, 0x61, 0xf4, 0x22, 0x2c, 0x0b, - 0x14, 0xc1, 0xa4, 0x48, 0xb1, 0xea, 0x1c, 0xcc, 0x47, 0x43, 0x1b, 0x70, 0x46, 0x20, 0x1a, 0xae, - 0x15, 0x22, 0x97, 0x28, 0xf2, 0x0a, 0xef, 0x6a, 0xbb, 0x16, 0xc7, 0x57, 0xbf, 0x0b, 0x95, 0x9d, - 0xbd, 0xde, 0xb6, 0x63, 0x1f, 0x59, 0x03, 0x22, 0xa2, 0x8f, 0x3d, 0x42, 0xd3, 0x54, 0x2e, 0x17, - 0x89, 0x88, 0xbc, 0x89, 0x5a, 0x50, 0xf6, 0xb1, 0xe1, 0xf5, 0x8f, 0xb1, 0xdf, 0x2c, 0xd0, 0xae, - 0xb0, 0x4d, 0xa8, 0x1c, 0x37, 0xb0, 0x1c, 0xdb, 0x6f, 0x16, 0x19, 0x15, 0x6f, 0xaa, 0x7f, 0xa6, - 0x40, 0xb5, 0xeb, 0x78, 0xc1, 0x03, 0xc3, 0x75, 0x2d, 0x7b, 0x80, 0x6e, 0x42, 0x99, 0xae, 0x65, - 0xdf, 0x19, 0xd2, 0x35, 0xa8, 0xdf, 0x5a, 0xdd, 0x88, 0x36, 0x64, 0xa3, 0xcb, 0xfb, 0xb4, 0x10, - 0x0b, 0x3d, 0x0f, 0xf5, 0xbe, 0x63, 0x07, 0x86, 0x65, 0x63, 0x4f, 0x77, 0x1d, 0x2f, 0xa0, 0x8b, - 0x33, 0xaf, 0xd5, 0x42, 0x28, 0xe1, 0x8f, 0xce, 0x43, 0xe5, 0xd8, 0xf1, 0x03, 0x86, 0x51, 0xa4, - 0x18, 0x65, 0x02, 0xa0, 0x9d, 0xeb, 0xb0, 0x48, 0x3b, 0x2d, 0x97, 0x2f, 0xc3, 0x02, 0x69, 0x76, - 0x5c, 0xf5, 0x97, 0x0a, 0xcc, 0x3f, 0x70, 0xc6, 0x76, 0x90, 0x18, 0xc6, 0x08, 0x8e, 0xf9, 0x16, - 0xc5, 0x86, 0x31, 0x82, 0xe3, 0x68, 0x18, 0x82, 0xc1, 0x76, 0x89, 0x0d, 0x43, 0x3a, 0x5b, 0x50, - 0xf6, 0xb0, 0x61, 0x3a, 0xf6, 0xf0, 0x84, 0x8a, 0x50, 0xd6, 0xc2, 0x36, 0xd9, 0x3e, 0x1f, 0x0f, - 0x2d, 0x7b, 0xfc, 0x54, 0xf7, 0xf0, 0xd0, 0x78, 0x88, 0x87, 0x54, 0x94, 0xb2, 0x56, 0xe7, 0x60, - 0x8d, 0x41, 0xd1, 0x3b, 0x50, 0x75, 0x3d, 0xc7, 0x35, 0x06, 0x06, 0x59, 0xc1, 0xe6, 0x3c, 0x5d, - 0xa4, 0x0b, 0xf1, 0x45, 0xa2, 0x02, 0x77, 0x23, 0x1c, 0x2d, 0x4e, 0xa0, 0xea, 0x50, 0xe9, 0xec, - 0x88, 0xe5, 0x0e, 0x27, 0x6e, 0xd2, 0xe9, 0xd4, 0xf8, 0xc4, 0x4d, 0xa2, 0x70, 0xd1, 0x74, 0x2d, - 0x93, 0x4e, 0xa5, 0xa6, 0x55, 0x43, 0x58, 0xc7, 0x44, 0x6b, 0xb0, 0x30, 0xc4, 0xf6, 0x20, 0x38, - 0xa6, 0x73, 0xa9, 0x69, 0xbc, 0xa5, 0xfe, 0xa9, 0x02, 0xb5, 0x43, 0x1f, 0x7b, 0x44, 0x2b, 0x7d, - 0xd7, 0xe8, 0x63, 0xf4, 0x0a, 0x94, 0x46, 0x8e, 0x89, 0xf9, 0x86, 0x9e, 0x8b, 0xcb, 0x1a, 0x22, - 0x3d, 0x70, 0x4c, 0xac, 0x51, 0x34, 0x74, 0x0d, 0x4a, 0x63, 0xcb, 0x64, 0x5a, 0x54, 0xbd, 0x75, - 0x36, 0x8e, 0x1e, 0x4a, 0xae, 0x51, 0x14, 0x82, 0x3a, 0x20, 0xa8, 0xc5, 0x5c, 0x54, 0x82, 0xa2, - 0xfe, 0x4e, 0x81, 0xe5, 0x70, 0xb4, 0x7d, 0xaa, 0x7e, 0xe8, 0x35, 0x58, 0xb4, 0x71, 0xf0, 0xc4, - 0xf1, 0x1e, 0x4d, 0x97, 0x4d, 0x60, 0xa2, 0x1b, 0x50, 0x74, 0xf9, 0x8a, 0xe4, 0x12, 0x10, 0x2c, - 0x82, 0x6c, 0xb9, 0x7d, 0xba, 0x42, 0xf9, 0xc8, 0x96, 0xdb, 0x27, 0xca, 0x13, 0x18, 0xde, 0x00, - 0xd3, 0xfd, 0x60, 0x8a, 0x58, 0x66, 0x80, 0x8e, 0x89, 0xee, 0x42, 0x7d, 0xec, 0x63, 0xcf, 0xf6, - 0x75, 0x71, 0x94, 0xc8, 0xd6, 0x57, 0x65, 0xa6, 0xd2, 0xba, 0x6b, 0x35, 0x46, 0xb0, 0xcf, 0xcf, - 0x9a, 0x0a, 0xd0, 0xb1, 0x83, 0x37, 0x6e, 0x7f, 0x64, 0x0c, 0xc7, 0x18, 0xad, 0xc2, 0xfc, 0x63, - 0xf2, 0x83, 0xce, 0xbc, 0xa8, 0xb1, 0x86, 0xfa, 0x8f, 0x25, 0x38, 0x7f, 0x9f, 0xa8, 0x5b, 0xcf, - 0xb0, 0xcd, 0x87, 0xce, 0xd3, 0x1e, 0xee, 0x8f, 0x3d, 0x2b, 0x38, 0xd9, 0x76, 0xec, 0x00, 0x3f, - 0x0d, 0xd0, 0x07, 0xb0, 0x62, 0x0b, 0xfe, 0xa1, 0x20, 0x0a, 0x15, 0xe4, 0x7c, 0xe6, 0xec, 0xd8, - 0xe0, 0x5a, 0xc3, 0x96, 0x01, 0x3e, 0xba, 0x17, 0x29, 0xbc, 0xe0, 0x53, 0x48, 0x4f, 0xa8, 0xb7, - 0x4b, 0xa5, 0xe1, 0x5c, 0xc4, 0x59, 0x10, 0x3c, 0xde, 0x00, 0x62, 0x02, 0x75, 0xc3, 0xd7, 0xc9, - 0x4c, 0xe9, 0x2a, 0x57, 0x6f, 0xad, 0x49, 0x5a, 0x10, 0x4e, 0x58, 0xab, 0x78, 0x63, 0xbb, 0xed, - 0x93, 0x15, 0x42, 0x77, 0xa8, 0x39, 0x25, 0x74, 0x03, 0xcf, 0x19, 0xbb, 0xcd, 0x72, 0x2e, 0x21, - 0x50, 0xc2, 0xf7, 0x09, 0x26, 0xb5, 0xb2, 0xfc, 0xc8, 0xea, 0x9e, 0xe3, 0x04, 0x47, 0xbe, 0x38, - 0xa6, 0x02, 0xac, 0x51, 0x28, 0xda, 0x84, 0x33, 0xfe, 0xd8, 0x75, 0x87, 0x78, 0x84, 0xed, 0xc0, - 0x18, 0xb2, 0x81, 0xc8, 0x9e, 0x15, 0x5f, 0x2a, 0x6a, 0x28, 0xde, 0x45, 0x19, 0xfb, 0xe8, 0x12, - 0x80, 0xeb, 0x59, 0x8f, 0xad, 0x21, 0x1e, 0x60, 0xb3, 0xb9, 0x40, 0x99, 0xc6, 0x20, 0xe8, 0x75, - 0x62, 0x79, 0xfb, 0x7d, 0x67, 0xe4, 0x36, 0x2b, 0xe9, 0xf5, 0x16, 0xfb, 0xd4, 0xf5, 0x9c, 0x23, - 0x6b, 0x88, 0x35, 0x81, 0x8b, 0xbe, 0x0a, 0x65, 0xc3, 0x75, 0x0d, 0x6f, 0xe4, 0x78, 0x4d, 0x98, - 0x4e, 0x17, 0x22, 0xa3, 0xdb, 0xb0, 0xca, 0x79, 0xe8, 0x2e, 0xeb, 0x64, 0x46, 0x6d, 0x91, 0xe8, - 0xe5, 0xbd, 0x42, 0x53, 0xd1, 0x10, 0xef, 0xe7, 0xb4, 0xc4, 0xc4, 0xa9, 0xff, 0xa2, 0xc0, 0x72, - 0x82, 0x27, 0xfa, 0x10, 0x96, 0x04, 0x87, 0xe0, 0xc4, 0x15, 0x66, 0xe0, 0xc5, 0x1c, 0x31, 0x36, - 0xf8, 0xdf, 0x83, 0x13, 0x17, 0x53, 0xeb, 0x25, 0x1a, 0xe8, 0x2a, 0xd4, 0x86, 0x4e, 0xdf, 0x18, - 0x52, 0xab, 0xe5, 0xe1, 0x23, 0x6e, 0x63, 0x97, 0x42, 0xa0, 0x86, 0x8f, 0xd4, 0xbb, 0x50, 0x8d, - 0x31, 0x40, 0x08, 0xea, 0x1a, 0x1b, 0x6a, 0x07, 0x1f, 0x19, 0xe3, 0x61, 0xd0, 0x98, 0x43, 0x75, - 0x80, 0x43, 0xbb, 0x4f, 0xee, 0x34, 0x1b, 0x9b, 0x0d, 0x05, 0xd5, 0xa0, 0x72, 0x5f, 0xb0, 0x68, - 0x14, 0xd4, 0x9f, 0x16, 0xe1, 0x2c, 0x55, 0xbc, 0xae, 0x63, 0xf2, 0x93, 0xc0, 0x2f, 0xc0, 0xab, - 0x50, 0xeb, 0xd3, 0xbd, 0xd4, 0x5d, 0xc3, 0xc3, 0x76, 0xc0, 0xaf, 0x81, 0x25, 0x06, 0xec, 0x52, - 0x18, 0xd2, 0xa0, 0xe1, 0xf3, 0x19, 0xe9, 0x7d, 0x76, 0x72, 0xb8, 0x72, 0x4b, 0xb3, 0xce, 0x39, - 0x68, 0xda, 0xb2, 0x9f, 0x3a, 0x79, 0x8b, 0xfe, 0x89, 0xdf, 0x0f, 0x86, 0xc2, 0xda, 0x6d, 0xa4, - 0x58, 0x25, 0x85, 0xdd, 0xe8, 0x31, 0x82, 0x5d, 0x3b, 0xf0, 0x4e, 0x34, 0x41, 0x8e, 0xde, 0x85, - 0xb2, 0xf3, 0x18, 0x7b, 0xc7, 0xd8, 0x60, 0x56, 0xa6, 0x7a, 0xeb, 0x6a, 0x8a, 0xd5, 0xb6, 0x30, - 0xf4, 0x1a, 0xf6, 0x9d, 0xb1, 0xd7, 0xc7, 0xbe, 0x16, 0x12, 0xa1, 0x36, 0x54, 0x3c, 0x01, 0xe6, - 0x56, 0x68, 0x26, 0x0e, 0x11, 0x55, 0x6b, 0x0b, 0x96, 0xe2, 0xc2, 0xa1, 0x06, 0x14, 0x1f, 0xe1, - 0x13, 0xbe, 0x98, 0xe4, 0x67, 0x64, 0x9f, 0xd8, 0x0e, 0xb3, 0xc6, 0x56, 0xe1, 0x8e, 0xa2, 0x7a, - 0x80, 0xa2, 0x99, 0x3e, 0xc0, 0x81, 0x61, 0x1a, 0x81, 0x81, 0x10, 0x94, 0xa8, 0x6b, 0xc4, 0x58, - 0xd0, 0xdf, 0x84, 0xeb, 0x98, 0x9b, 0xea, 0x8a, 0x46, 0x7e, 0xa2, 0x0b, 0x50, 0x09, 0x2d, 0x11, - 0xf7, 0x8f, 0x22, 0x00, 0xf1, 0x53, 0x8c, 0x20, 0xc0, 0x23, 0x37, 0xa0, 0x0b, 0x53, 0xd3, 0x44, - 0x53, 0xfd, 0xa3, 0x79, 0x68, 0xa4, 0x74, 0x61, 0x0b, 0xca, 0x23, 0x3e, 0x3c, 0xb7, 0x81, 0x97, - 0x24, 0x67, 0x25, 0x25, 0xa4, 0x16, 0xe2, 0x13, 0x5f, 0x80, 0xe8, 0x5a, 0xcc, 0x9b, 0x0b, 0xdb, - 0x4c, 0xc9, 0x07, 0xba, 0x69, 0x79, 0xb8, 0x1f, 0x38, 0xde, 0x09, 0x17, 0x74, 0x69, 0xe8, 0x0c, - 0x76, 0x04, 0x0c, 0xdd, 0x06, 0x30, 0x6d, 0x5f, 0xa7, 0x3a, 0x3c, 0xe0, 0xfb, 0x28, 0x5d, 0x80, - 0xa1, 0xd3, 0xa6, 0x55, 0x4c, 0xdb, 0xe7, 0x22, 0xbf, 0x05, 0x35, 0xe2, 0x01, 0xe9, 0x23, 0x76, - 0x37, 0x32, 0x83, 0x54, 0xbd, 0xb5, 0x2e, 0xcb, 0x1d, 0xfa, 0x63, 0xda, 0x92, 0x1b, 0x35, 0x7c, - 0x74, 0x17, 0x16, 0xa8, 0x13, 0xe2, 0x37, 0x17, 0x28, 0xd9, 0x4b, 0xd9, 0xd3, 0xe5, 0xda, 0x77, - 0x9f, 0xa2, 0x32, 0xe5, 0xe3, 0x74, 0x68, 0x1f, 0xaa, 0x86, 0x6d, 0x3b, 0x81, 0xc1, 0x2c, 0xfe, - 0x22, 0x65, 0xf3, 0x4a, 0x2e, 0x9b, 0x76, 0x84, 0xcf, 0x78, 0xc5, 0x39, 0xa0, 0xaf, 0xc2, 0x3c, - 0xbd, 0x12, 0xb8, 0x0d, 0xbf, 0x32, 0xf5, 0x50, 0x68, 0x0c, 0x1f, 0xbd, 0x0d, 0x8b, 0x4f, 0x2c, - 0xdb, 0x74, 0x9e, 0xf8, 0xdc, 0x9e, 0x4a, 0x2a, 0xfc, 0x4d, 0xd6, 0x95, 0x22, 0x16, 0x34, 0xad, - 0x37, 0xa1, 0x1a, 0x9b, 0xdf, 0x69, 0xf4, 0xb7, 0xf5, 0x0e, 0x34, 0x92, 0x73, 0x3a, 0x95, 0xfe, - 0x8f, 0x61, 0x55, 0x1b, 0xdb, 0x91, 0x68, 0xe2, 0xb1, 0x71, 0x1b, 0x16, 0xb8, 0x36, 0x30, 0x65, - 0xbc, 0x90, 0xb7, 0xac, 0x1a, 0xc7, 0x8d, 0xbf, 0x1b, 0x8e, 0x0d, 0xdb, 0x1c, 0x62, 0x8f, 0x8f, - 0x28, 0xde, 0x0d, 0x1f, 0x30, 0xa8, 0xfa, 0x36, 0x9c, 0x4d, 0x0c, 0xcb, 0x9f, 0x2d, 0x5f, 0x81, - 0xba, 0xeb, 0x98, 0xba, 0xcf, 0xc0, 0xc2, 0x97, 0xac, 0x10, 0xdd, 0x11, 0xb8, 0x1d, 0x93, 0x90, - 0xf7, 0x02, 0xc7, 0x4d, 0x8b, 0x3d, 0x1b, 0x79, 0x13, 0xd6, 0x92, 0xe4, 0x6c, 0x78, 0xf5, 0x5d, - 0x58, 0xd7, 0xf0, 0xc8, 0x79, 0x8c, 0x9f, 0x95, 0x75, 0x0b, 0x9a, 0x69, 0x06, 0x9c, 0xf9, 0xb7, - 0x61, 0x3d, 0x82, 0xf6, 0x02, 0x23, 0x18, 0xfb, 0xa7, 0x62, 0xce, 0xdf, 0x74, 0x0f, 0x1d, 0x9f, - 0x6d, 0x64, 0x59, 0x13, 0x4d, 0x75, 0x1d, 0xe6, 0xbb, 0x8e, 0xd9, 0xe9, 0xa2, 0x3a, 0x14, 0x2c, - 0x97, 0x13, 0x17, 0x2c, 0x57, 0xed, 0xc7, 0xc7, 0xdc, 0x63, 0x5e, 0x27, 0x1b, 0x3a, 0x89, 0x8a, - 0xee, 0x40, 0xdd, 0x30, 0x4d, 0x8b, 0x28, 0x92, 0x31, 0xd4, 0x2d, 0x57, 0x38, 0xcd, 0x2b, 0x89, - 0xad, 0xef, 0x74, 0xb5, 0x5a, 0x84, 0xd8, 0x71, 0x7d, 0xf5, 0x1e, 0x54, 0x22, 0x07, 0xfd, 0xf5, - 0xe8, 0x7d, 0x56, 0x98, 0xee, 0xcb, 0x85, 0x8f, 0xb7, 0xbd, 0xd4, 0x25, 0xc9, 0xc5, 0x7c, 0x1d, - 0x20, 0x34, 0xaa, 0xc2, 0x3d, 0x3c, 0x9b, 0xc9, 0x52, 0x8b, 0x21, 0xaa, 0xff, 0x55, 0x8a, 0x1b, - 0xd9, 0xd8, 0x94, 0xcd, 0x70, 0xca, 0xa6, 0x64, 0x74, 0x0b, 0xa7, 0x34, 0xba, 0xaf, 0xc2, 0xbc, - 0x1f, 0x18, 0x01, 0xe6, 0xfe, 0xf8, 0xf9, 0x6c, 0x42, 0x32, 0x30, 0xd6, 0x18, 0x26, 0xba, 0x08, - 0xd0, 0xf7, 0xb0, 0x11, 0x60, 0x53, 0x37, 0xd8, 0xad, 0x50, 0xd4, 0x2a, 0x1c, 0xd2, 0x0e, 0x88, - 0x15, 0x11, 0x2f, 0x88, 0x8c, 0x8b, 0x70, 0xc2, 0x36, 0x46, 0x6f, 0x89, 0xd0, 0x7a, 0x2d, 0x4c, - 0xb5, 0x5e, 0x9c, 0x94, 0x5b, 0xaf, 0xc8, 0x12, 0x2f, 0xe6, 0x59, 0x62, 0x46, 0x34, 0x8b, 0x25, - 0x2e, 0xe7, 0x59, 0x62, 0xce, 0x26, 0xdf, 0x12, 0x67, 0x18, 0x92, 0x4a, 0x96, 0x21, 0xf9, 0x22, - 0x4d, 0xe7, 0x2f, 0x14, 0x68, 0xa6, 0xcf, 0x33, 0xb7, 0x63, 0xb7, 0x61, 0xc1, 0xa7, 0x90, 0x7c, - 0xfb, 0xc9, 0xa9, 0x38, 0x2e, 0xba, 0x07, 0x25, 0xcb, 0x3e, 0x72, 0xf8, 0xc1, 0xdb, 0xc8, 0xa5, - 0xe1, 0x23, 0x6d, 0x74, 0xec, 0x23, 0x87, 0xad, 0x20, 0xa5, 0x6d, 0x7d, 0x15, 0x2a, 0x21, 0xe8, - 0x54, 0xf3, 0xe9, 0xc0, 0x6a, 0x42, 0x6f, 0xd9, 0xe3, 0x2e, 0x54, 0x74, 0x65, 0x56, 0x45, 0x57, - 0x7f, 0xab, 0xc4, 0x0f, 0xdf, 0x7b, 0xd6, 0x30, 0xc0, 0x5e, 0xea, 0xf0, 0xbd, 0x21, 0xf8, 0xb2, - 0x93, 0x77, 0x39, 0x87, 0x2f, 0x7b, 0x3b, 0xf1, 0x53, 0xf4, 0x11, 0xd4, 0xa9, 0xda, 0xe9, 0x3e, - 0x1e, 0x52, 0xff, 0x85, 0xfb, 0xb0, 0x9b, 0xd9, 0x0c, 0xd8, 0xe8, 0x4c, 0x6d, 0x7b, 0x9c, 0x82, - 0xad, 0x57, 0x6d, 0x18, 0x87, 0xb5, 0xee, 0x02, 0x4a, 0x23, 0x9d, 0x6a, 0x05, 0x1f, 0x10, 0x1b, - 0xe6, 0x07, 0x99, 0xb7, 0xe9, 0x11, 0x15, 0x23, 0x5f, 0x1b, 0x98, 0xa8, 0x1a, 0xc7, 0x55, 0xff, - 0xa3, 0x08, 0x10, 0x75, 0x7e, 0xc9, 0x8d, 0xd7, 0x56, 0x68, 0x44, 0x98, 0x17, 0xa8, 0x66, 0xb3, - 0xcc, 0x34, 0x1f, 0x1d, 0xd9, 0x7c, 0x30, 0x7f, 0xf0, 0xc5, 0x09, 0x0c, 0x4e, 0x6d, 0x38, 0x16, - 0xbf, 0x6c, 0x86, 0xe3, 0x3d, 0x58, 0x4b, 0xaa, 0x09, 0xb7, 0x1a, 0x2f, 0xc3, 0xbc, 0x15, 0xe0, - 0x11, 0x8b, 0x87, 0x26, 0x82, 0x08, 0x31, 0x74, 0x86, 0xa4, 0xbe, 0x03, 0x6b, 0xf2, 0x5e, 0x9d, - 0xce, 0x9d, 0x50, 0xef, 0x27, 0xfd, 0x91, 0xc8, 0x7c, 0x71, 0xfd, 0xc8, 0x0c, 0xc7, 0x24, 0x69, - 0x18, 0xa6, 0xfa, 0xaf, 0x0a, 0x9c, 0x4d, 0x74, 0x4d, 0x38, 0xf8, 0xdf, 0x4d, 0x1d, 0x60, 0x66, - 0xef, 0x6e, 0xe7, 0x8c, 0xf2, 0x39, 0x9e, 0xe2, 0x6f, 0x42, 0x4b, 0xde, 0x1e, 0x69, 0x69, 0xdf, - 0x4c, 0x1c, 0xe5, 0x2b, 0x53, 0x85, 0x0e, 0xcf, 0x73, 0x17, 0xce, 0x67, 0x32, 0x4e, 0xaf, 0x79, - 0x71, 0xc6, 0x35, 0xff, 0xbf, 0x42, 0xdc, 0x66, 0xb7, 0x83, 0xc0, 0xb3, 0x1e, 0x8e, 0x03, 0xfc, - 0xd9, 0x3a, 0x3a, 0x3b, 0xe1, 0xc9, 0x66, 0x76, 0xf6, 0xe5, 0x6c, 0xca, 0x68, 0xf4, 0xcc, 0x33, - 0xde, 0x93, 0xcf, 0x78, 0x89, 0xb2, 0x7a, 0x75, 0x2a, 0xab, 0xdc, 0xd3, 0xfe, 0x45, 0x1e, 0xe2, - 0x7f, 0x53, 0x60, 0x39, 0xb1, 0x2b, 0xe8, 0x2e, 0x80, 0x11, 0x8a, 0xce, 0xf5, 0xe3, 0xf2, 0xb4, - 0x29, 0x6a, 0x31, 0x1a, 0x72, 0x27, 0x32, 0x1f, 0x2e, 0xe3, 0x4e, 0xcc, 0xf0, 0xe1, 0x42, 0x17, - 0xee, 0xad, 0xe8, 0x01, 0xca, 0x02, 0x97, 0x6a, 0xee, 0x03, 0x94, 0xd1, 0x0a, 0x12, 0xf5, 0x47, - 0x05, 0x58, 0xcd, 0xe2, 0x8e, 0x5e, 0x80, 0x62, 0xdf, 0x1d, 0xf3, 0x99, 0x48, 0xc9, 0x93, 0x6d, - 0x77, 0x7c, 0xe8, 0x1b, 0x03, 0xac, 0x11, 0x04, 0xb4, 0x09, 0x0b, 0x23, 0x3c, 0x72, 0xbc, 0x13, - 0x2e, 0xb7, 0x14, 0x02, 0x78, 0x40, 0x7b, 0x18, 0x36, 0x47, 0x43, 0xb7, 0x22, 0x57, 0x97, 0xc9, - 0xdb, 0x94, 0x3c, 0x7a, 0xd6, 0xc5, 0x48, 0x42, 0xff, 0xf6, 0x16, 0x2c, 0xba, 0x9e, 0xd3, 0xc7, - 0xbe, 0xcf, 0x23, 0x14, 0xcd, 0x44, 0x36, 0x87, 0x74, 0x71, 0x1a, 0x8e, 0x88, 0xb6, 0x00, 0xc2, - 0x34, 0x83, 0xb8, 0x99, 0x5a, 0xd2, 0x3c, 0x44, 0x2f, 0x5b, 0x92, 0x18, 0x36, 0x79, 0x25, 0x66, - 0x2f, 0x9c, 0xfa, 0xcf, 0x0a, 0x2c, 0xc5, 0x65, 0x44, 0x17, 0xa0, 0x42, 0x18, 0xfa, 0x81, 0x31, - 0x72, 0x79, 0x0c, 0x3c, 0x02, 0xa0, 0x3d, 0x58, 0x31, 0x59, 0xb0, 0x50, 0xb7, 0xec, 0x00, 0x7b, - 0x47, 0x46, 0x5f, 0x38, 0x3d, 0x57, 0x32, 0xa6, 0xdd, 0x11, 0x38, 0x6c, 0x2e, 0x0d, 0x4e, 0x1b, - 0x82, 0x51, 0x1b, 0x20, 0xe4, 0x23, 0x0e, 0xe5, 0x0c, 0x8c, 0x62, 0x44, 0xea, 0xef, 0x14, 0x38, - 0x9b, 0x89, 0x95, 0x19, 0xfa, 0xba, 0x05, 0x65, 0xef, 0xa9, 0xfe, 0xf0, 0x24, 0xc0, 0x7e, 0xd6, - 0x06, 0x1f, 0xc6, 0xe2, 0xdb, 0x8b, 0xde, 0xd3, 0x7b, 0x04, 0x0f, 0xdd, 0x86, 0x8a, 0xf7, 0x54, - 0xc7, 0x9e, 0xe7, 0x78, 0x42, 0x27, 0x27, 0x12, 0x95, 0xbd, 0xa7, 0xbb, 0x14, 0x91, 0x8c, 0x14, - 0x88, 0x91, 0x4a, 0x53, 0x46, 0x0a, 0xa2, 0x91, 0x82, 0x70, 0xa4, 0xf9, 0x29, 0x23, 0x05, 0x7c, - 0x24, 0xf5, 0x63, 0x58, 0x8a, 0xab, 0xcc, 0x94, 0x2d, 0x7c, 0x0b, 0x6a, 0x5c, 0xa5, 0xf4, 0xbe, - 0x33, 0xb6, 0x83, 0x69, 0xcb, 0xb0, 0xc4, 0xb1, 0xb7, 0x09, 0xb2, 0xfa, 0xd7, 0x0a, 0x54, 0x3a, - 0x23, 0x63, 0x80, 0x7b, 0x2e, 0xee, 0x13, 0x9b, 0x62, 0x91, 0x06, 0x5f, 0x62, 0xd6, 0x40, 0x1f, - 0xc8, 0xf6, 0x91, 0xdd, 0x88, 0x2f, 0x48, 0x59, 0x04, 0xc1, 0x61, 0x8a, 0x51, 0xfc, 0xb4, 0x96, - 0xed, 0x16, 0x94, 0xbf, 0x8e, 0x4f, 0x98, 0xef, 0x3f, 0x23, 0x9d, 0xfa, 0xe3, 0x12, 0xac, 0x4f, - 0x88, 0xd4, 0x52, 0xc7, 0xd1, 0x1d, 0xeb, 0x2e, 0xf6, 0x2c, 0xc7, 0x14, 0x4b, 0xdb, 0x77, 0xc7, - 0x5d, 0x0a, 0x40, 0xe7, 0x81, 0x34, 0xf4, 0xef, 0x8f, 0x1d, 0x7e, 0x37, 0x15, 0xb5, 0x72, 0xdf, - 0x1d, 0x7f, 0x83, 0xb4, 0x05, 0xad, 0x7f, 0x6c, 0x78, 0x98, 0xa9, 0x11, 0xa3, 0xed, 0x51, 0x00, - 0x7a, 0x15, 0xce, 0x32, 0x83, 0xa2, 0x0f, 0xad, 0x91, 0x45, 0x8e, 0x57, 0x4c, 0x77, 0x8a, 0x1a, - 0x62, 0x9d, 0xf7, 0x49, 0x5f, 0xc7, 0x66, 0xda, 0xa2, 0x42, 0xcd, 0x71, 0x46, 0xba, 0xdf, 0x77, - 0x3c, 0xac, 0x1b, 0xe6, 0xc7, 0x54, 0x63, 0x8a, 0x5a, 0xd5, 0x71, 0x46, 0x3d, 0x02, 0x6b, 0x9b, - 0x1f, 0xa3, 0xe7, 0xa0, 0xda, 0x77, 0xc7, 0x3e, 0x0e, 0x74, 0xf2, 0x87, 0xbe, 0xa7, 0x2b, 0x1a, - 0x30, 0xd0, 0xb6, 0x3b, 0xf6, 0x63, 0x08, 0x23, 0xe2, 0xad, 0x2d, 0xc6, 0x11, 0x1e, 0xe0, 0x11, - 0x4d, 0x48, 0x1d, 0x8f, 0x07, 0xd8, 0x35, 0x06, 0x98, 0x89, 0x26, 0x1e, 0xc5, 0x52, 0x42, 0xea, - 0x03, 0x8e, 0x42, 0x05, 0xd4, 0xea, 0xc7, 0xf1, 0xa6, 0x8f, 0x3e, 0x84, 0xc5, 0xb1, 0x6d, 0x1d, - 0x59, 0xd8, 0x6c, 0x56, 0x28, 0xed, 0xcd, 0x19, 0xe2, 0xe2, 0x1b, 0x87, 0x8c, 0x84, 0x87, 0xe9, - 0x39, 0x03, 0xb4, 0x05, 0x2d, 0xbe, 0x50, 0xfe, 0x13, 0xc3, 0x4d, 0xae, 0x16, 0xd0, 0x25, 0x58, - 0x63, 0x18, 0xbd, 0x27, 0x86, 0x1b, 0x5f, 0xb1, 0xd6, 0x16, 0x2c, 0xc5, 0x99, 0x9e, 0x4a, 0x97, - 0xee, 0x41, 0x4d, 0x9a, 0x24, 0xd9, 0x6d, 0xba, 0x28, 0xbe, 0xf5, 0x03, 0x71, 0x00, 0xca, 0x04, - 0xd0, 0xb3, 0x7e, 0x40, 0xd3, 0x88, 0x54, 0x32, 0xca, 0xa7, 0xa4, 0xb1, 0x86, 0x6a, 0x40, 0x4d, - 0xca, 0xdc, 0x11, 0x13, 0x45, 0x53, 0x74, 0xdc, 0x44, 0x91, 0xdf, 0x04, 0xe6, 0x39, 0x43, 0x21, - 0x01, 0xfd, 0x4d, 0x60, 0x34, 0x47, 0xc4, 0x22, 0xde, 0xf4, 0x37, 0x1d, 0x02, 0x3f, 0xe6, 0x09, - 0xf1, 0x8a, 0xc6, 0x1a, 0xea, 0x9f, 0x2b, 0x00, 0xdb, 0x86, 0x6b, 0x3c, 0xb4, 0x86, 0x56, 0x70, - 0x82, 0xae, 0x41, 0xc3, 0x30, 0x4d, 0xbd, 0x2f, 0x20, 0x16, 0x16, 0x15, 0x0a, 0xcb, 0x86, 0x69, - 0x6e, 0xc7, 0xc0, 0xe8, 0x06, 0xac, 0x98, 0x9e, 0xe3, 0xca, 0xb8, 0xac, 0x64, 0xa1, 0x41, 0x3a, - 0x24, 0xe4, 0x3b, 0xd0, 0x24, 0x7c, 0x8d, 0xd1, 0x43, 0x0b, 0xdb, 0x81, 0x4c, 0xc3, 0x6a, 0x19, - 0xd6, 0x0c, 0xd3, 0x6c, 0xb3, 0xee, 0x38, 0xa5, 0xfa, 0x4f, 0x0b, 0x70, 0x51, 0xde, 0xf1, 0x64, - 0x32, 0x75, 0x0b, 0x96, 0x12, 0xf2, 0xa6, 0xd2, 0x90, 0xd1, 0x0c, 0x35, 0x09, 0x37, 0x91, 0x2e, - 0x2c, 0xa4, 0xd2, 0x85, 0x99, 0x89, 0xda, 0xe2, 0x67, 0x94, 0xa8, 0x2d, 0x7d, 0xca, 0x44, 0xed, - 0xfc, 0xb3, 0x26, 0x6a, 0x97, 0x66, 0x4e, 0xd4, 0xbe, 0x40, 0x1f, 0x95, 0x62, 0x44, 0x7a, 0x3d, - 0x32, 0x9b, 0x50, 0x0b, 0xb9, 0xdb, 0xa2, 0x6c, 0x26, 0x91, 0xd0, 0x5d, 0x3c, 0x4d, 0x42, 0xb7, - 0x3c, 0x31, 0xa1, 0x7b, 0x19, 0x96, 0x6c, 0x47, 0xb7, 0xf1, 0x13, 0x9d, 0x6c, 0x8b, 0xdf, 0xac, - 0xb2, 0x3d, 0xb2, 0x9d, 0x3d, 0xfc, 0xa4, 0x4b, 0x20, 0xe8, 0x0a, 0x2c, 0x8d, 0x0c, 0xff, 0x11, - 0x36, 0x69, 0x66, 0xd5, 0x6f, 0xd6, 0xa8, 0x3e, 0x55, 0x19, 0xac, 0x4b, 0x40, 0xe8, 0x79, 0x08, - 0xe5, 0xe0, 0x48, 0x75, 0x8a, 0x54, 0x13, 0x50, 0x86, 0x16, 0x4b, 0x0e, 0x2f, 0x3f, 0x63, 0x72, - 0xb8, 0x71, 0x9a, 0xe4, 0xf0, 0x2b, 0xd0, 0x10, 0xbf, 0x45, 0x76, 0x98, 0x05, 0xfb, 0x68, 0x62, - 0x78, 0x59, 0xf4, 0x89, 0x0c, 0xf0, 0xa4, 0x5c, 0x32, 0xe4, 0xe6, 0x92, 0x7f, 0xa6, 0x70, 0x17, - 0x37, 0x3c, 0x40, 0x3c, 0x89, 0x25, 0xe5, 0x1f, 0x95, 0x67, 0xc9, 0x3f, 0xa2, 0x83, 0x89, 0x19, - 0xda, 0x6b, 0x93, 0x39, 0x4d, 0xcb, 0xd1, 0xaa, 0x3f, 0x52, 0xe0, 0x22, 0xf7, 0x3f, 0x27, 0xd4, - 0x4f, 0x64, 0xa8, 0xa5, 0x32, 0x41, 0x2d, 0xfb, 0x1e, 0x36, 0xb1, 0x1d, 0x58, 0xc6, 0x50, 0xf7, - 0x5d, 0xdc, 0x17, 0x59, 0x99, 0x08, 0x4c, 0x3d, 0x93, 0x2b, 0xb0, 0xc4, 0x0a, 0x8e, 0xb8, 0x9b, - 0xcd, 0xea, 0x8a, 0xaa, 0xb4, 0xe6, 0x88, 0x81, 0x54, 0x07, 0xd6, 0x27, 0xa4, 0xb3, 0x32, 0x97, - 0x41, 0x49, 0x2f, 0x43, 0xee, 0x9c, 0xd2, 0xcb, 0xf0, 0x63, 0x05, 0x9e, 0xe3, 0x24, 0x13, 0x6d, - 0xdf, 0x17, 0xb1, 0x10, 0x7f, 0xab, 0x84, 0xcf, 0x83, 0xa4, 0x4a, 0x6d, 0xa7, 0x55, 0xea, 0xf9, - 0x8c, 0x15, 0xc8, 0x57, 0xaa, 0x8f, 0x26, 0x2a, 0xd5, 0x8d, 0x3c, 0x5e, 0x53, 0xd7, 0xf3, 0x3f, - 0x15, 0x38, 0x37, 0x51, 0x80, 0x84, 0xbf, 0xa5, 0x24, 0xfd, 0x2d, 0xee, 0xab, 0x45, 0x2e, 0x30, - 0xf3, 0xd5, 0xa8, 0x97, 0xcb, 0x9d, 0x22, 0x7d, 0x64, 0x3c, 0xb5, 0x46, 0xe3, 0x11, 0x77, 0xd6, - 0x08, 0xbb, 0x07, 0x0c, 0xf2, 0x2c, 0xde, 0xda, 0x26, 0xac, 0x32, 0x43, 0x4a, 0x1d, 0x86, 0x88, - 0x82, 0x39, 0x6d, 0x2b, 0xac, 0x8f, 0xf8, 0x0e, 0x9c, 0x40, 0x6d, 0xc3, 0x4a, 0x38, 0xad, 0xdc, - 0x74, 0x7e, 0x2c, 0x3d, 0x5f, 0x90, 0xd3, 0xf3, 0x36, 0x2c, 0xec, 0xe0, 0xc7, 0x56, 0x1f, 0x7f, - 0x26, 0x75, 0x7a, 0x97, 0xa1, 0xea, 0x62, 0x6f, 0x64, 0xf9, 0x7e, 0x78, 0x6b, 0x56, 0xb4, 0x38, - 0x48, 0xfd, 0xd9, 0x02, 0x2c, 0x27, 0x55, 0xe8, 0xcd, 0x54, 0x35, 0xc0, 0xc5, 0xcc, 0x57, 0x6b, - 0x46, 0xb8, 0xe6, 0x86, 0x78, 0x5e, 0x14, 0xd2, 0xa9, 0xb2, 0xf0, 0x09, 0x21, 0x5e, 0x1d, 0x4d, - 0x58, 0xec, 0x3b, 0xa3, 0x91, 0x61, 0x9b, 0xa2, 0x98, 0x92, 0x37, 0xc9, 0x9a, 0x19, 0xde, 0x80, - 0x05, 0x6a, 0x2a, 0x1a, 0xfd, 0x4d, 0x76, 0x98, 0xbc, 0x18, 0x2d, 0x9b, 0xd6, 0x13, 0xd0, 0x4d, - 0xa8, 0x68, 0xc0, 0x41, 0x3b, 0x96, 0x87, 0x5e, 0x82, 0x12, 0xb6, 0x1f, 0x8b, 0x08, 0xae, 0x14, - 0x30, 0x10, 0x4f, 0x0a, 0x8d, 0x62, 0xa0, 0x6b, 0xb0, 0x30, 0x22, 0x5a, 0x23, 0x72, 0x4e, 0x2b, - 0xa9, 0xa2, 0x43, 0x8d, 0x23, 0xa0, 0x97, 0x61, 0xd1, 0xa4, 0xfb, 0x21, 0x7c, 0x68, 0x24, 0x55, - 0x26, 0xd0, 0x2e, 0x4d, 0xa0, 0xa0, 0x77, 0xc3, 0x68, 0x55, 0x25, 0x1d, 0x46, 0x4e, 0x2c, 0x73, - 0x66, 0xa0, 0x6a, 0x4f, 0x7e, 0x88, 0x41, 0x3a, 0xe6, 0x95, 0xe4, 0x92, 0x1f, 0x91, 0x3e, 0x07, - 0xe5, 0xa1, 0x33, 0x60, 0xca, 0x51, 0x65, 0x95, 0xb8, 0x43, 0x67, 0x40, 0x75, 0x63, 0x15, 0xe6, - 0xfd, 0xc0, 0xb4, 0x6c, 0xea, 0x8a, 0x94, 0x35, 0xd6, 0x20, 0x67, 0x90, 0xfe, 0xd0, 0x1d, 0xbb, - 0x8f, 0x9b, 0x35, 0xda, 0x55, 0xa1, 0x90, 0x7d, 0xbb, 0x4f, 0x9f, 0x64, 0x41, 0x70, 0xd2, 0xac, - 0x53, 0x38, 0xf9, 0x19, 0x05, 0x8d, 0x96, 0x27, 0x04, 0x8d, 0x12, 0x02, 0x67, 0x04, 0x8d, 0x1a, - 0x13, 0x83, 0x46, 0x49, 0xda, 0x2f, 0x43, 0xd1, 0xc2, 0xdf, 0x2b, 0xb0, 0xb6, 0x4d, 0x33, 0x0f, - 0x31, 0x13, 0x76, 0x9a, 0x44, 0xfa, 0x6b, 0x61, 0x75, 0x43, 0x46, 0x8a, 0x3a, 0x39, 0x63, 0x51, - 0xdc, 0xb0, 0x0d, 0x75, 0xc1, 0x96, 0x13, 0x17, 0x67, 0x28, 0x8d, 0xa8, 0xf9, 0xf1, 0xa6, 0xfa, - 0x16, 0xac, 0xa7, 0x24, 0xe7, 0xf1, 0xdf, 0x64, 0x99, 0x2c, 0x13, 0x3c, 0x5e, 0x26, 0xab, 0x6e, - 0xc1, 0xd9, 0x5e, 0x60, 0x78, 0x41, 0x6a, 0xda, 0x33, 0xd0, 0xd2, 0xa2, 0x07, 0x99, 0x96, 0xd7, - 0x25, 0xf4, 0x60, 0xb5, 0x17, 0x38, 0xee, 0x33, 0x30, 0x25, 0xf6, 0x83, 0xcc, 0xdc, 0x19, 0x8b, - 0xeb, 0x40, 0x34, 0xd5, 0x75, 0x56, 0xa2, 0x91, 0x1e, 0xed, 0x6b, 0xb0, 0xc6, 0x2a, 0x24, 0x9e, - 0x65, 0x12, 0xe7, 0x44, 0x7d, 0x46, 0x9a, 0xef, 0xfb, 0x70, 0x46, 0x0a, 0xe6, 0xf1, 0xec, 0xe5, - 0x4d, 0x39, 0x7b, 0x39, 0x39, 0xf8, 0x17, 0x26, 0x2f, 0x7f, 0x52, 0x88, 0xd9, 0xe3, 0x09, 0x29, - 0x8c, 0xd7, 0xe5, 0xdc, 0xe5, 0x73, 0x93, 0xb9, 0x4a, 0xa9, 0xcb, 0xb4, 0x76, 0x16, 0x33, 0xb4, - 0xf3, 0x30, 0x95, 0x1f, 0x29, 0xa5, 0xf3, 0xc1, 0x09, 0x09, 0x3f, 0x97, 0xcc, 0xc8, 0x7d, 0x96, - 0xdf, 0x0c, 0x87, 0x0e, 0x93, 0x22, 0xaf, 0x25, 0x92, 0x22, 0xe7, 0x73, 0x24, 0x0d, 0xd3, 0x21, - 0x3f, 0x29, 0x41, 0x25, 0xec, 0x4b, 0xad, 0x70, 0x7a, 0xa9, 0x0a, 0x19, 0x4b, 0x15, 0xbf, 0x27, - 0x8b, 0xcf, 0x78, 0x4f, 0x96, 0x66, 0xb8, 0x27, 0xcf, 0x43, 0x85, 0xfe, 0xa0, 0x65, 0xa2, 0xec, - 0xde, 0x2b, 0x53, 0x80, 0x86, 0x8f, 0x22, 0x15, 0x5b, 0x98, 0x51, 0xc5, 0x12, 0xb9, 0xd4, 0xc5, - 0x64, 0x2e, 0xf5, 0xcd, 0xf0, 0x0e, 0x2b, 0xa7, 0x83, 0xbb, 0x21, 0xc7, 0xcc, 0xdb, 0x2b, 0x11, - 0x46, 0xac, 0xa4, 0xc3, 0x88, 0x11, 0xfd, 0x97, 0x36, 0xb7, 0xb2, 0xcf, 0x12, 0xa4, 0x71, 0x3d, - 0xe3, 0x36, 0xf2, 0x75, 0x29, 0x9e, 0xaf, 0xa4, 0x2b, 0xf5, 0x23, 0xbb, 0x10, 0x0f, 0xe5, 0x1f, - 0xc2, 0x9a, 0xb4, 0x11, 0x51, 0xe1, 0xd5, 0x6c, 0x36, 0x6e, 0x42, 0xd5, 0xd5, 0xaf, 0xe6, 0x63, - 0x96, 0x62, 0x42, 0x89, 0xd1, 0x9b, 0xa9, 0xcc, 0xdb, 0xcc, 0x1a, 0x7a, 0x53, 0x4e, 0xd2, 0x9f, - 0x5a, 0xaf, 0x52, 0x39, 0x7a, 0xea, 0x59, 0x18, 0x1e, 0xef, 0x66, 0x3e, 0x74, 0x85, 0x43, 0xda, - 0xd4, 0x81, 0x3f, 0xb2, 0x6c, 0xcb, 0x3f, 0x66, 0xfd, 0x0b, 0xcc, 0x81, 0x17, 0xa0, 0x36, 0x0d, - 0xde, 0xe1, 0xa7, 0x56, 0xa0, 0xf7, 0x1d, 0x13, 0x53, 0xad, 0x9d, 0xd7, 0xca, 0x04, 0xb0, 0xed, - 0x98, 0x38, 0x3a, 0x4f, 0xe5, 0xd3, 0x9e, 0xa7, 0x4a, 0xe2, 0x3c, 0xad, 0xc1, 0x82, 0x87, 0x0d, - 0xdf, 0xb1, 0xd9, 0x9b, 0x5e, 0xe3, 0x2d, 0xb2, 0x11, 0x23, 0xec, 0xfb, 0x64, 0x0c, 0xee, 0x48, - 0xf1, 0x66, 0xcc, 0xe9, 0x5b, 0xca, 0x71, 0xfa, 0x72, 0x0a, 0x98, 0x12, 0x4e, 0x5f, 0x2d, 0xc7, - 0xe9, 0x9b, 0xa9, 0x7e, 0x29, 0x72, 0x6f, 0xeb, 0xd3, 0xdc, 0xdb, 0xb8, 0x7f, 0xb8, 0x2c, 0xf9, - 0x87, 0x5f, 0xe4, 0x11, 0xfc, 0x77, 0x05, 0xd6, 0x53, 0x47, 0x86, 0x1f, 0xc2, 0xd7, 0x12, 0xb5, - 0x4d, 0xe7, 0x73, 0xd6, 0x29, 0x2c, 0x6d, 0x6a, 0x4b, 0xa5, 0x4d, 0xaf, 0xe4, 0x91, 0x7c, 0xe6, - 0x95, 0x4d, 0xbf, 0x2e, 0xc0, 0x73, 0x87, 0xae, 0x99, 0xf0, 0xba, 0xf8, 0x9b, 0x7b, 0x76, 0x43, - 0xf0, 0xa6, 0x9c, 0x9c, 0x9d, 0x29, 0x4c, 0xc4, 0x5d, 0xed, 0x77, 0x93, 0xf9, 0xd9, 0x19, 0x03, - 0x02, 0x82, 0x0a, 0x7d, 0x2f, 0x2b, 0x7d, 0xfe, 0x96, 0x94, 0x7e, 0xca, 0x9f, 0xe0, 0xef, 0x39, - 0x69, 0xa4, 0xc2, 0xe5, 0xc9, 0x02, 0x70, 0x0f, 0xed, 0x0f, 0x61, 0x79, 0xf7, 0x29, 0xee, 0xf7, - 0x4e, 0xec, 0xfe, 0x29, 0x56, 0xbd, 0x01, 0xc5, 0xfe, 0xc8, 0xe4, 0x31, 0x75, 0xf2, 0x33, 0xee, - 0x74, 0x16, 0x65, 0xa7, 0x53, 0x87, 0x46, 0x34, 0x02, 0xd7, 0xd6, 0x35, 0xa2, 0xad, 0x26, 0x41, - 0x26, 0xcc, 0x97, 0x34, 0xde, 0xe2, 0x70, 0xec, 0xb1, 0x12, 0x65, 0x06, 0xc7, 0x9e, 0x27, 0x1b, - 0xb9, 0xa2, 0x6c, 0xe4, 0xd4, 0x9f, 0x2a, 0x50, 0x25, 0x23, 0x7c, 0x2a, 0xf9, 0xf9, 0x0b, 0xae, - 0x18, 0xbd, 0xe0, 0xc2, 0x87, 0x60, 0x29, 0xfe, 0x10, 0x8c, 0x24, 0x9f, 0xa7, 0xe0, 0xb4, 0xe4, - 0x0b, 0x21, 0x1c, 0x7b, 0x9e, 0x7a, 0x19, 0x96, 0x98, 0x6c, 0x7c, 0xe6, 0x0d, 0x28, 0x8e, 0xbd, - 0xa1, 0xd8, 0xbf, 0xb1, 0x37, 0x54, 0xff, 0x58, 0x81, 0x5a, 0x3b, 0x08, 0x8c, 0xfe, 0xf1, 0x29, - 0x26, 0x10, 0x0a, 0x57, 0x88, 0x0b, 0x97, 0x9e, 0x44, 0x24, 0x6e, 0x69, 0x82, 0xb8, 0xf3, 0x92, - 0xb8, 0x2a, 0xd4, 0x85, 0x2c, 0x13, 0x05, 0xde, 0x03, 0xd4, 0x75, 0xbc, 0xe0, 0x3d, 0xc7, 0x7b, - 0x62, 0x78, 0xe6, 0xe9, 0x1e, 0x79, 0x08, 0x4a, 0xfc, 0x13, 0xce, 0xe2, 0x4b, 0xf3, 0x1a, 0xfd, - 0xad, 0xbe, 0x08, 0x67, 0x24, 0x7e, 0x13, 0x07, 0xde, 0x82, 0x2a, 0xbd, 0xb4, 0xb8, 0xff, 0x7f, - 0x23, 0x9e, 0xb3, 0x9d, 0x72, 0xb9, 0xa9, 0x3b, 0xb0, 0x42, 0xdc, 0x17, 0x0a, 0x0f, 0xed, 0xcb, - 0x66, 0xc2, 0x45, 0x5e, 0x4f, 0xb1, 0x48, 0xb8, 0xc7, 0xbf, 0x55, 0x60, 0x9e, 0xc2, 0x53, 0x2e, - 0xc5, 0x79, 0xa8, 0x78, 0xd8, 0x75, 0xf4, 0xc0, 0x18, 0x84, 0x9f, 0xc7, 0x12, 0xc0, 0x81, 0x31, - 0xa0, 0x79, 0x00, 0xda, 0x69, 0x5a, 0x03, 0xec, 0x07, 0x22, 0xaf, 0x54, 0x25, 0xb0, 0x1d, 0x06, - 0x22, 0x0b, 0x43, 0xd3, 0x6f, 0x25, 0x9a, 0x65, 0xa3, 0xbf, 0xd1, 0x4b, 0xec, 0xeb, 0x96, 0xfc, - 0x64, 0x0a, 0xfd, 0xea, 0xa5, 0x05, 0xe5, 0x44, 0x16, 0x24, 0x6c, 0xa3, 0x6b, 0x50, 0xa2, 0x51, - 0xd5, 0xc5, 0xbc, 0x55, 0xa2, 0x28, 0x44, 0x2b, 0x5c, 0xcb, 0xb6, 0xb1, 0x49, 0xfd, 0x85, 0xb2, - 0xc6, 0x5b, 0xea, 0xbb, 0x80, 0xe2, 0x8b, 0xc7, 0x37, 0xe8, 0x1a, 0x2c, 0xd0, 0xb5, 0x15, 0x3e, - 0xdf, 0x4a, 0x8a, 0xb5, 0xc6, 0x11, 0xd4, 0xef, 0x02, 0x62, 0x63, 0x49, 0x7e, 0xde, 0x69, 0x36, - 0x30, 0xc7, 0xe3, 0xfb, 0x3b, 0x05, 0xce, 0x48, 0xdc, 0xb9, 0x7c, 0x2f, 0xca, 0xec, 0x33, 0xc4, - 0xe3, 0xac, 0xdf, 0x96, 0xae, 0xc1, 0x6b, 0x69, 0x31, 0x7e, 0x4f, 0x57, 0xe0, 0x2f, 0x14, 0x80, - 0xf6, 0x38, 0x38, 0xe6, 0xf1, 0xc5, 0xf8, 0x26, 0x2a, 0x89, 0x4d, 0x6c, 0x41, 0xd9, 0x35, 0x7c, - 0xff, 0x89, 0xe3, 0x89, 0x37, 0x57, 0xd8, 0xa6, 0x51, 0xc1, 0x31, 0xff, 0x4a, 0xb7, 0xa2, 0xd1, - 0xdf, 0xe8, 0x79, 0xa8, 0xb3, 0xef, 0xb6, 0x75, 0xc3, 0x34, 0x3d, 0x51, 0x9e, 0x53, 0xd1, 0x6a, - 0x0c, 0xda, 0x66, 0x40, 0x82, 0x66, 0xd1, 0x18, 0x7b, 0x70, 0xa2, 0x07, 0xce, 0x23, 0x6c, 0xf3, - 0x77, 0x54, 0x4d, 0x40, 0x0f, 0x08, 0x90, 0x25, 0xa9, 0x06, 0x96, 0x1f, 0x78, 0x02, 0x4d, 0xa4, - 0xda, 0x38, 0x94, 0xa2, 0xa9, 0x7f, 0xa3, 0x40, 0xa3, 0x3b, 0x1e, 0x0e, 0xd9, 0xe2, 0x3e, 0xcb, - 0x26, 0x5f, 0xe7, 0x53, 0x29, 0xa4, 0x55, 0x3e, 0x5a, 0x28, 0x3e, 0xc5, 0xcf, 0x24, 0xf4, 0x73, - 0x13, 0x56, 0x62, 0x12, 0x73, 0xc5, 0x91, 0x1c, 0x61, 0x45, 0x76, 0x84, 0xd5, 0x36, 0x20, 0x16, - 0xed, 0x78, 0xe6, 0x59, 0xaa, 0x67, 0xe1, 0x8c, 0xc4, 0x82, 0x5f, 0xc5, 0xd7, 0xa1, 0xc6, 0xcb, - 0x7f, 0xb8, 0x42, 0x9c, 0x83, 0x32, 0x31, 0xa9, 0x7d, 0xcb, 0x14, 0x79, 0xf5, 0x45, 0xd7, 0x31, - 0xb7, 0x2d, 0xd3, 0x53, 0xbf, 0x01, 0x35, 0xfe, 0xc9, 0x23, 0xc7, 0xbd, 0x0b, 0x75, 0x5e, 0x93, - 0xa5, 0x4b, 0xdf, 0x08, 0x9d, 0xcb, 0xa8, 0x41, 0x12, 0x4b, 0x61, 0xc7, 0x9b, 0xea, 0xf7, 0xa0, - 0xc5, 0xbc, 0x05, 0x89, 0xb1, 0x98, 0xe0, 0x5d, 0x10, 0xc5, 0xba, 0x39, 0xfc, 0x65, 0xca, 0x9a, - 0x17, 0x6f, 0xaa, 0x17, 0xe1, 0x7c, 0x26, 0x7f, 0x3e, 0x7b, 0x17, 0x1a, 0x51, 0x07, 0xfb, 0x90, - 0x25, 0x2c, 0x16, 0x50, 0x62, 0xc5, 0x02, 0x6b, 0xa1, 0xa3, 0x5b, 0x10, 0x37, 0x17, 0xf5, 0x65, - 0xa3, 0x07, 0x4a, 0x71, 0xd2, 0x03, 0xa5, 0x24, 0x3d, 0x50, 0xd4, 0x07, 0xe1, 0x1a, 0xf2, 0x67, - 0xe2, 0x5b, 0xf4, 0x21, 0xcb, 0xc6, 0x16, 0x46, 0xed, 0x42, 0xf6, 0xfc, 0x18, 0x92, 0x16, 0xc3, - 0x57, 0xaf, 0x41, 0x4d, 0x36, 0x6f, 0x31, 0x8b, 0xa5, 0xa4, 0x2c, 0x56, 0x3d, 0x61, 0xac, 0x5e, - 0x4d, 0xf8, 0xef, 0x59, 0xeb, 0x9a, 0xf0, 0xde, 0xef, 0x48, 0x66, 0xeb, 0x2b, 0x52, 0x62, 0xf7, - 0xf7, 0x64, 0xb1, 0x56, 0xb9, 0x1d, 0x7f, 0xcf, 0x27, 0xf4, 0x7c, 0xa2, 0xea, 0x55, 0xa8, 0x1e, - 0x4e, 0xfa, 0xf0, 0xbc, 0x24, 0xaa, 0x91, 0xde, 0x80, 0xd5, 0xf7, 0xac, 0x21, 0xf6, 0x4f, 0xfc, - 0x00, 0x8f, 0x3a, 0xd4, 0xbc, 0x1c, 0x59, 0xd8, 0x43, 0x97, 0x00, 0xe8, 0xa3, 0xcb, 0x75, 0xac, - 0xf0, 0x63, 0xdb, 0x18, 0x44, 0xfd, 0x95, 0x02, 0xcb, 0x11, 0xe1, 0x2c, 0x75, 0x61, 0xaf, 0xc3, - 0xfc, 0x91, 0x2f, 0x82, 0x53, 0x89, 0xd0, 0x7b, 0x96, 0x08, 0x5a, 0xe9, 0xc8, 0xef, 0x98, 0xe8, - 0x0d, 0x80, 0xb1, 0x8f, 0x4d, 0x9e, 0xcc, 0x9a, 0x52, 0x1d, 0x57, 0x21, 0xa8, 0x2c, 0x1d, 0x76, - 0x07, 0xaa, 0x96, 0xed, 0x98, 0x98, 0x26, 0x3a, 0xcd, 0x69, 0x15, 0x72, 0xc0, 0x70, 0x0f, 0x7d, - 0x6c, 0xaa, 0x3a, 0xbf, 0xb7, 0xc4, 0x6a, 0x72, 0x55, 0xf8, 0x00, 0x56, 0x98, 0xf9, 0x39, 0x0a, - 0x85, 0xcd, 0xac, 0x3f, 0x4e, 0xac, 0x8a, 0xd6, 0xb0, 0xb8, 0xc7, 0x22, 0x88, 0xd4, 0x2d, 0x38, - 0x9b, 0xa8, 0xa5, 0x9c, 0x3d, 0xaa, 0xfb, 0x61, 0x22, 0x3c, 0x13, 0xa9, 0xea, 0x4d, 0xb9, 0x0e, - 0x3d, 0xaf, 0x74, 0x93, 0x97, 0x44, 0x1f, 0xc2, 0x39, 0x29, 0x76, 0x24, 0xc9, 0x72, 0x27, 0xe1, - 0x84, 0x5d, 0x9e, 0xcc, 0x2f, 0xe1, 0x8d, 0xfd, 0x8f, 0x02, 0xab, 0x59, 0x08, 0xcf, 0x18, 0xb7, - 0xfc, 0xce, 0x84, 0x6f, 0x58, 0x5e, 0x9b, 0x26, 0xd0, 0xe7, 0x12, 0xe7, 0xdd, 0x63, 0x15, 0xf0, - 0xd3, 0xf7, 0xa4, 0x38, 0xdb, 0x9e, 0xfc, 0xb6, 0x10, 0x8b, 0xcd, 0xe7, 0x54, 0xa9, 0x7f, 0x8a, - 0x58, 0xd9, 0x76, 0xa2, 0x48, 0xfd, 0x46, 0x26, 0xe1, 0x94, 0x1a, 0x75, 0x2d, 0xeb, 0x91, 0x7d, - 0x73, 0x1a, 0xa7, 0x2f, 0x6d, 0x18, 0xf5, 0x7f, 0x15, 0xa8, 0xcb, 0x1b, 0x82, 0xde, 0xcd, 0xa8, - 0x50, 0x7f, 0x6e, 0xca, 0x04, 0xa5, 0x02, 0x75, 0x5e, 0x11, 0x5e, 0x98, 0xbd, 0x22, 0xbc, 0x38, - 0x5b, 0x45, 0xf8, 0x3d, 0xa8, 0x3f, 0xf1, 0xac, 0xc0, 0x78, 0x38, 0xc4, 0xfa, 0xd0, 0x38, 0xc1, - 0x1e, 0xb7, 0x6e, 0xb9, 0x66, 0xa8, 0x26, 0x48, 0xee, 0x13, 0x0a, 0xf5, 0x1f, 0x14, 0x28, 0x0b, - 0x31, 0xa6, 0xd6, 0x64, 0xaf, 0x8f, 0x09, 0x9a, 0x4e, 0xeb, 0x40, 0x6d, 0xc3, 0x76, 0x74, 0x1f, - 0x93, 0x1b, 0x76, 0x6a, 0x85, 0xf3, 0x2a, 0xa5, 0xdb, 0x76, 0x3c, 0xbc, 0x67, 0xd8, 0x4e, 0x8f, - 0x11, 0xa1, 0x36, 0x34, 0x18, 0x3f, 0xca, 0x8a, 0x30, 0x9d, 0x6a, 0xd7, 0xeb, 0x94, 0x80, 0x30, - 0x21, 0xcc, 0x7c, 0xf5, 0x2f, 0x8b, 0x50, 0x8d, 0xad, 0xcc, 0x94, 0x09, 0x6c, 0xc3, 0x8a, 0xc8, - 0xc5, 0xfb, 0x38, 0x98, 0xad, 0x38, 0x7b, 0x99, 0x53, 0xf4, 0x70, 0xc0, 0xee, 0x93, 0xbb, 0xb0, - 0x6c, 0x3c, 0x36, 0xac, 0x21, 0x5d, 0xf5, 0x99, 0x2e, 0xa3, 0x7a, 0x88, 0x1f, 0xde, 0x48, 0x6c, - 0xde, 0x33, 0xd5, 0x6c, 0x03, 0xc5, 0x8d, 0x0a, 0xc4, 0x7d, 0x3f, 0x56, 0xcf, 0x91, 0x5b, 0x20, - 0xee, 0xfb, 0xe1, 0x78, 0xb4, 0x7e, 0x94, 0x96, 0xc4, 0xfb, 0xfc, 0x53, 0xd7, 0xc9, 0xe3, 0x11, - 0xdc, 0xf7, 0x28, 0x2a, 0x59, 0xb0, 0x91, 0xf1, 0xb1, 0xe3, 0xe9, 0x71, 0xfa, 0xc5, 0x29, 0x0b, - 0x46, 0x29, 0xba, 0x21, 0x13, 0xf5, 0x1d, 0x38, 0xa7, 0x61, 0xc7, 0xc5, 0x76, 0x78, 0x4e, 0xee, - 0x3b, 0x83, 0x53, 0xdc, 0x74, 0x17, 0xa0, 0x95, 0x45, 0xcf, 0x2c, 0xeb, 0xf5, 0x17, 0xa0, 0x2c, - 0xfe, 0x29, 0x15, 0x5a, 0x84, 0xe2, 0xc1, 0x76, 0xb7, 0x31, 0x47, 0x7e, 0x1c, 0xee, 0x74, 0x1b, - 0x0a, 0x2a, 0x43, 0xa9, 0xb7, 0x7d, 0xd0, 0x6d, 0x14, 0xae, 0x8f, 0xa0, 0x91, 0xfc, 0xbf, 0x4c, - 0x68, 0x1d, 0xce, 0x74, 0xb5, 0xfd, 0x6e, 0xfb, 0xfd, 0xf6, 0x41, 0x67, 0x7f, 0x4f, 0xef, 0x6a, - 0x9d, 0x8f, 0xda, 0x07, 0xbb, 0x8d, 0x39, 0x74, 0x05, 0x2e, 0xc6, 0x3b, 0x3e, 0xd8, 0xef, 0x1d, - 0xe8, 0x07, 0xfb, 0xfa, 0xf6, 0xfe, 0xde, 0x41, 0xbb, 0xb3, 0xb7, 0xab, 0x35, 0x14, 0x74, 0x11, - 0xce, 0xc5, 0x51, 0xee, 0x75, 0x76, 0x3a, 0xda, 0xee, 0x36, 0xf9, 0xdd, 0xbe, 0xdf, 0x28, 0x5c, - 0x7f, 0x1b, 0x6a, 0xd2, 0x3f, 0x18, 0x22, 0x22, 0x75, 0xf7, 0x77, 0x1a, 0x73, 0xa8, 0x06, 0x95, - 0x38, 0x9f, 0x32, 0x94, 0xf6, 0xf6, 0x77, 0x76, 0x1b, 0x05, 0x04, 0xb0, 0x70, 0xd0, 0xd6, 0xde, - 0xdf, 0x3d, 0x68, 0x14, 0xaf, 0x6f, 0x25, 0x3f, 0x94, 0xc1, 0x68, 0x05, 0x6a, 0xbd, 0xf6, 0xde, - 0xce, 0xbd, 0xfd, 0x6f, 0xe9, 0xda, 0x6e, 0x7b, 0xe7, 0xdb, 0x8d, 0x39, 0xb4, 0x0a, 0x0d, 0x01, - 0xda, 0xdb, 0x3f, 0x60, 0x50, 0xe5, 0xfa, 0xa3, 0x84, 0x05, 0xc3, 0xe8, 0x2c, 0xac, 0x84, 0x43, - 0xea, 0xdb, 0xda, 0x6e, 0xfb, 0x60, 0x97, 0x48, 0x22, 0x81, 0xb5, 0xc3, 0xbd, 0xbd, 0xce, 0xde, - 0xfb, 0x0d, 0x85, 0x70, 0x8d, 0xc0, 0xbb, 0xdf, 0xea, 0x10, 0xe4, 0x82, 0x8c, 0x7c, 0xb8, 0xf7, - 0xf5, 0xbd, 0xfd, 0x6f, 0xee, 0x35, 0x8a, 0xb7, 0x7e, 0xb8, 0x12, 0xfe, 0x73, 0x97, 0x1e, 0xf6, - 0x68, 0x05, 0xd0, 0x0e, 0x2c, 0x8a, 0x7f, 0x75, 0x26, 0xdd, 0x73, 0xf2, 0xbf, 0x66, 0x6b, 0x9d, - 0xcf, 0xec, 0xe3, 0xaf, 0x8d, 0x39, 0xf4, 0x11, 0xf5, 0xfe, 0x63, 0x9f, 0x72, 0x5e, 0x4e, 0x78, - 0xdc, 0xa9, 0x2f, 0x46, 0x5b, 0x57, 0x72, 0x30, 0x42, 0xbe, 0xdf, 0x26, 0xae, 0x7d, 0xfc, 0xff, - 0x18, 0xa0, 0x2b, 0xb2, 0x67, 0x9e, 0xf1, 0x2f, 0x12, 0x5a, 0x6a, 0x1e, 0x4a, 0xc8, 0x5a, 0x87, - 0x46, 0xf2, 0xff, 0x18, 0x20, 0x29, 0xe0, 0x3d, 0xe1, 0xdf, 0x24, 0xb4, 0xbe, 0x92, 0x8f, 0x14, - 0x1f, 0x20, 0xf5, 0x79, 0xfe, 0xd5, 0xfc, 0x0f, 0x9e, 0x33, 0x06, 0x98, 0xf4, 0x55, 0x34, 0x5b, - 0x1c, 0xf9, 0x6b, 0x3b, 0x94, 0xf8, 0x22, 0x3e, 0xe3, 0x43, 0x5d, 0x79, 0x71, 0xb2, 0x3f, 0xd2, - 0x54, 0xe7, 0xd0, 0x1f, 0xc0, 0x72, 0xa2, 0x88, 0x03, 0x49, 0x84, 0xd9, 0xb5, 0x29, 0xad, 0xab, - 0xb9, 0x38, 0xf2, 0xae, 0xc6, 0x0b, 0x35, 0x92, 0xbb, 0x9a, 0x51, 0x00, 0x92, 0xdc, 0xd5, 0xcc, - 0x3a, 0x0f, 0xaa, 0x88, 0x52, 0x51, 0x86, 0xac, 0x88, 0x59, 0x45, 0x20, 0xad, 0x2b, 0x39, 0x18, - 0xf1, 0x05, 0x49, 0x94, 0x65, 0xc8, 0x0b, 0x92, 0x5d, 0xf0, 0xd1, 0xba, 0x9a, 0x8b, 0x93, 0xdc, - 0xc9, 0x28, 0x1d, 0x9c, 0xde, 0xc9, 0x54, 0x49, 0x42, 0x7a, 0x27, 0xd3, 0xd9, 0x64, 0xbe, 0x93, - 0x89, 0x04, 0xae, 0x9a, 0x9b, 0x9a, 0xca, 0xda, 0xc9, 0xec, 0xf4, 0x95, 0x3a, 0x87, 0x9e, 0x40, - 0x73, 0x52, 0x52, 0x04, 0xdd, 0x38, 0x45, 0xee, 0xa6, 0xf5, 0xf2, 0x6c, 0xc8, 0xe1, 0xc0, 0x18, - 0x50, 0xfa, 0x9a, 0x41, 0xcf, 0xcb, 0xcb, 0x3d, 0xe1, 0x1a, 0x6b, 0xbd, 0x30, 0x0d, 0x2d, 0x1c, - 0xe6, 0x7d, 0x28, 0x8b, 0x74, 0x0b, 0x92, 0x4c, 0x60, 0x22, 0xcd, 0xd3, 0xba, 0x90, 0xdd, 0x19, - 0x32, 0xfa, 0x1a, 0x94, 0x08, 0x14, 0xad, 0x27, 0xf1, 0x04, 0x83, 0x66, 0xba, 0x23, 0x24, 0x6e, - 0xc3, 0x02, 0xcb, 0x23, 0x20, 0x29, 0x90, 0x21, 0xe5, 0x39, 0x5a, 0xad, 0xac, 0xae, 0x90, 0x45, - 0x97, 0xfd, 0xe3, 0x48, 0x9e, 0x16, 0x40, 0x97, 0x92, 0xff, 0xc1, 0x48, 0xce, 0x3f, 0xb4, 0x9e, - 0x9b, 0xd8, 0x1f, 0xd7, 0xd9, 0x84, 0xeb, 0x7d, 0x25, 0xe7, 0x9d, 0x94, 0xa5, 0xb3, 0xd9, 0xaf, - 0x2f, 0xb6, 0xb9, 0xe9, 0xd7, 0x99, 0xbc, 0xb9, 0x13, 0x5f, 0xc0, 0xf2, 0xe6, 0x4e, 0x7e, 0xe4, - 0xb1, 0xa3, 0x91, 0xfc, 0x1c, 0x54, 0xcd, 0xfb, 0x24, 0x39, 0xeb, 0x68, 0x4c, 0xf8, 0xd4, 0x59, - 0x9d, 0x43, 0xc7, 0x70, 0x26, 0xe3, 0x5b, 0x68, 0xf4, 0xc2, 0x64, 0xfb, 0x2b, 0x8d, 0xf2, 0xe2, - 0x54, 0xbc, 0xf8, 0x48, 0x19, 0xb1, 0x40, 0x79, 0xa4, 0xc9, 0xc1, 0x48, 0x79, 0xa4, 0xbc, 0xa0, - 0x22, 0x55, 0x44, 0x6e, 0x43, 0xce, 0x65, 0x05, 0xc8, 0x32, 0x14, 0x31, 0x69, 0x31, 0x6e, 0xfd, - 0x45, 0x11, 0x96, 0x58, 0x0c, 0x97, 0x3b, 0x20, 0x0f, 0x00, 0xa2, 0x74, 0x08, 0xba, 0x98, 0x9c, - 0xb6, 0x94, 0x63, 0x6a, 0x5d, 0x9a, 0xd4, 0x1d, 0x57, 0xf4, 0x58, 0x9a, 0x41, 0x56, 0xf4, 0x74, - 0xd6, 0x44, 0x56, 0xf4, 0x8c, 0xfc, 0x84, 0x3a, 0x87, 0x3e, 0x84, 0x4a, 0x18, 0xd5, 0x46, 0x72, - 0x3c, 0x3c, 0x11, 0x9e, 0x6f, 0x5d, 0x9c, 0xd0, 0x1b, 0x97, 0x2e, 0x16, 0xac, 0x96, 0xa5, 0x4b, - 0x07, 0xc2, 0x65, 0xe9, 0xb2, 0xa2, 0xdc, 0xd1, 0x7c, 0x59, 0xd8, 0x2b, 0x63, 0xbe, 0x52, 0x74, - 0x31, 0x63, 0xbe, 0x72, 0xbc, 0x4c, 0x9d, 0xbb, 0x77, 0xf7, 0xe7, 0xbf, 0xb9, 0xa4, 0xfc, 0xea, - 0x37, 0x97, 0xe6, 0x7e, 0xf8, 0xc9, 0x25, 0xe5, 0xe7, 0x9f, 0x5c, 0x52, 0x7e, 0xf9, 0xc9, 0x25, - 0xe5, 0xd7, 0x9f, 0x5c, 0x52, 0xfe, 0xe4, 0xbf, 0x2f, 0xcd, 0x7d, 0x47, 0x7d, 0x74, 0xc7, 0xdf, - 0xb0, 0x9c, 0xcd, 0xbe, 0x67, 0xbd, 0x62, 0xb8, 0xd6, 0xa6, 0xfb, 0x68, 0xb0, 0x69, 0xb8, 0x96, - 0xbf, 0xc9, 0xf9, 0x6e, 0x3e, 0x7e, 0xf5, 0xe1, 0x02, 0xfd, 0x77, 0xb3, 0xaf, 0xfd, 0x7f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x72, 0x49, 0x29, 0xa4, 0x28, 0x58, 0x00, 0x00, + // 5988 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x7c, 0x4d, 0x70, 0x1b, 0xc9, + 0x75, 0x30, 0x07, 0x00, 0x49, 0xe0, 0x81, 0x00, 0xc1, 0x16, 0x45, 0x42, 0xa0, 0xa4, 0x95, 0x46, + 0xde, 0x1f, 0x49, 0xbb, 0x94, 0x56, 0xab, 0x5d, 0x4b, 0xb2, 0x76, 0x57, 0x10, 0xc9, 0xd5, 0x72, + 0x2d, 0x91, 0xf0, 0x80, 0x94, 0xff, 0xbe, 0xf2, 0x7c, 0x23, 0x4c, 0x13, 0x9c, 0x15, 0x30, 0x33, + 0x9e, 0x19, 0x48, 0xa2, 0x4f, 0xdf, 0xf1, 0x4b, 0x4e, 0xae, 0x72, 0x1c, 0x57, 0xb9, 0x52, 0x49, + 0xe5, 0x94, 0x43, 0x0e, 0xce, 0x25, 0xa9, 0x54, 0xa5, 0x92, 0x5c, 0x52, 0x2e, 0x27, 0x55, 0xae, + 0xf2, 0x25, 0x55, 0x3e, 0xa4, 0x2a, 0xf6, 0xe6, 0x96, 0x43, 0x4e, 0x3e, 0xe4, 0x14, 0xa7, 0xfa, + 0x6f, 0x66, 0x7a, 0x66, 0x30, 0x00, 0xb9, 0x6b, 0xef, 0x9e, 0x80, 0x79, 0xfd, 0xde, 0xeb, 0xd7, + 0xaf, 0x5f, 0xbf, 0x7e, 0xdd, 0xef, 0xcd, 0x40, 0xc5, 0x70, 0xad, 0x75, 0xd7, 0x73, 0x02, 0x07, + 0x81, 0x37, 0xb2, 0x03, 0x6b, 0x88, 0xd7, 0x9f, 0xbd, 0xd9, 0x7a, 0xa3, 0x6f, 0x05, 0x87, 0xa3, + 0x27, 0xeb, 0x3d, 0x67, 0x78, 0xad, 0xef, 0xf4, 0x9d, 0x6b, 0x14, 0xe5, 0xc9, 0xe8, 0x80, 0x3e, + 0xd1, 0x07, 0xfa, 0x8f, 0x91, 0xaa, 0x57, 0xa0, 0xfe, 0x18, 0x7b, 0xbe, 0xe5, 0xd8, 0x1a, 0xfe, + 0xee, 0x08, 0xfb, 0x01, 0x6a, 0xc2, 0xfc, 0x33, 0x06, 0x69, 0x2a, 0x17, 0x94, 0xd7, 0x2a, 0x9a, + 0x78, 0x54, 0xff, 0x42, 0x81, 0xc5, 0x10, 0xd9, 0x77, 0x1d, 0xdb, 0xc7, 0xe3, 0xb1, 0xd1, 0x45, + 0x58, 0xe0, 0x62, 0xe9, 0xb6, 0x31, 0xc4, 0xcd, 0x02, 0x6d, 0xae, 0x72, 0xd8, 0x8e, 0x31, 0xc4, + 0xe8, 0x55, 0x58, 0x14, 0x28, 0x82, 0x49, 0x91, 0x62, 0xd5, 0x39, 0x98, 0xf7, 0x86, 0xd6, 0xe1, + 0x94, 0x40, 0x34, 0x5c, 0x2b, 0x44, 0x2e, 0x51, 0xe4, 0x25, 0xde, 0xd4, 0x76, 0x2d, 0x8e, 0xaf, + 0x7e, 0x1b, 0x2a, 0x9b, 0x3b, 0xdd, 0x0d, 0xc7, 0x3e, 0xb0, 0xfa, 0x44, 0x44, 0x1f, 0x7b, 0x84, + 0xa6, 0xa9, 0x5c, 0x28, 0x12, 0x11, 0xf9, 0x23, 0x6a, 0x41, 0xd9, 0xc7, 0x86, 0xd7, 0x3b, 0xc4, + 0x7e, 0xb3, 0x40, 0x9b, 0xc2, 0x67, 0x42, 0xe5, 0xb8, 0x81, 0xe5, 0xd8, 0x7e, 0xb3, 0xc8, 0xa8, + 0xf8, 0xa3, 0xfa, 0x27, 0x0a, 0x54, 0x3b, 0x8e, 0x17, 0x3c, 0x32, 0x5c, 0xd7, 0xb2, 0xfb, 0xe8, + 0x3a, 0x94, 0xa9, 0x2e, 0x7b, 0xce, 0x80, 0xea, 0xa0, 0x7e, 0x63, 0x79, 0x3d, 0x9a, 0x90, 0xf5, + 0x0e, 0x6f, 0xd3, 0x42, 0x2c, 0xf4, 0x32, 0xd4, 0x7b, 0x8e, 0x1d, 0x18, 0x96, 0x8d, 0x3d, 0xdd, + 0x75, 0xbc, 0x80, 0x2a, 0x67, 0x56, 0xab, 0x85, 0x50, 0xc2, 0x1f, 0xad, 0x41, 0xe5, 0xd0, 0xf1, + 0x03, 0x86, 0x51, 0xa4, 0x18, 0x65, 0x02, 0xa0, 0x8d, 0xab, 0x30, 0x4f, 0x1b, 0x2d, 0x97, 0xab, + 0x61, 0x8e, 0x3c, 0x6e, 0xbb, 0xea, 0x2f, 0x14, 0x98, 0x7d, 0xe4, 0x8c, 0xec, 0x20, 0xd1, 0x8d, + 0x11, 0x1c, 0xf2, 0x29, 0x8a, 0x75, 0x63, 0x04, 0x87, 0x51, 0x37, 0x04, 0x83, 0xcd, 0x12, 0xeb, + 0x86, 0x34, 0xb6, 0xa0, 0xec, 0x61, 0xc3, 0x74, 0xec, 0xc1, 0x11, 0x15, 0xa1, 0xac, 0x85, 0xcf, + 0x64, 0xfa, 0x7c, 0x3c, 0xb0, 0xec, 0xd1, 0x0b, 0xdd, 0xc3, 0x03, 0xe3, 0x09, 0x1e, 0x50, 0x51, + 0xca, 0x5a, 0x9d, 0x83, 0x35, 0x06, 0x45, 0xef, 0x41, 0xd5, 0xf5, 0x1c, 0xd7, 0xe8, 0x1b, 0x44, + 0x83, 0xcd, 0x59, 0xaa, 0xa4, 0xb3, 0x71, 0x25, 0x51, 0x81, 0x3b, 0x11, 0x8e, 0x16, 0x27, 0x50, + 0x75, 0xa8, 0x6c, 0x6f, 0x0a, 0x75, 0x87, 0x03, 0x37, 0xe9, 0x70, 0x6a, 0x7c, 0xe0, 0x26, 0x31, + 0xb8, 0x68, 0xb8, 0x96, 0x49, 0x87, 0x52, 0xd3, 0xaa, 0x21, 0x6c, 0xdb, 0x44, 0x2b, 0x30, 0x37, + 0xc0, 0x76, 0x3f, 0x38, 0xa4, 0x63, 0xa9, 0x69, 0xfc, 0x49, 0xfd, 0x23, 0x05, 0x6a, 0xfb, 0x3e, + 0xf6, 0x88, 0x55, 0xfa, 0xae, 0xd1, 0xc3, 0xe8, 0x0d, 0x28, 0x0d, 0x1d, 0x13, 0xf3, 0x09, 0x3d, + 0x13, 0x97, 0x35, 0x44, 0x7a, 0xe4, 0x98, 0x58, 0xa3, 0x68, 0xe8, 0x32, 0x94, 0x46, 0x96, 0xc9, + 0xac, 0xa8, 0x7a, 0xe3, 0x74, 0x1c, 0x3d, 0x94, 0x5c, 0xa3, 0x28, 0x04, 0xb5, 0x4f, 0x50, 0x8b, + 0xb9, 0xa8, 0x04, 0x45, 0xfd, 0xad, 0x02, 0x8b, 0x61, 0x6f, 0xbb, 0xd4, 0xfc, 0xd0, 0x5b, 0x30, + 0x6f, 0xe3, 0xe0, 0xb9, 0xe3, 0x3d, 0x9d, 0x2c, 0x9b, 0xc0, 0x44, 0x57, 0xa1, 0xe8, 0x72, 0x8d, + 0xe4, 0x12, 0x10, 0x2c, 0x82, 0x6c, 0xb9, 0x3d, 0xaa, 0xa1, 0x7c, 0x64, 0xcb, 0xed, 0x11, 0xe3, + 0x09, 0x0c, 0xaf, 0x8f, 0xe9, 0x7c, 0x30, 0x43, 0x2c, 0x33, 0xc0, 0xb6, 0x89, 0xee, 0x41, 0x7d, + 0xe4, 0x63, 0xcf, 0xf6, 0x75, 0xb1, 0x94, 0xc8, 0xd4, 0x57, 0x65, 0xa6, 0x92, 0xde, 0xb5, 0x1a, + 0x23, 0xd8, 0xe5, 0x6b, 0x4d, 0x05, 0xd8, 0xb6, 0x83, 0x77, 0x6e, 0x3e, 0x36, 0x06, 0x23, 0x8c, + 0x96, 0x61, 0xf6, 0x19, 0xf9, 0x43, 0x47, 0x5e, 0xd4, 0xd8, 0x83, 0xfa, 0xf7, 0x25, 0x58, 0x7b, + 0x48, 0xcc, 0xad, 0x6b, 0xd8, 0xe6, 0x13, 0xe7, 0x45, 0x17, 0xf7, 0x46, 0x9e, 0x15, 0x1c, 0x6d, + 0x38, 0x76, 0x80, 0x5f, 0x04, 0xe8, 0x43, 0x58, 0xb2, 0x05, 0xff, 0x50, 0x10, 0x85, 0x0a, 0xb2, + 0x96, 0x39, 0x3a, 0xd6, 0xb9, 0xd6, 0xb0, 0x65, 0x80, 0x8f, 0xee, 0x47, 0x06, 0x2f, 0xf8, 0x14, + 0xd2, 0x03, 0xea, 0x6e, 0x51, 0x69, 0x38, 0x17, 0xb1, 0x16, 0x04, 0x8f, 0x77, 0x80, 0xb8, 0x40, + 0xdd, 0xf0, 0x75, 0x32, 0x52, 0xaa, 0xe5, 0xea, 0x8d, 0x15, 0xc9, 0x0a, 0xc2, 0x01, 0x6b, 0x15, + 0x6f, 0x64, 0xb7, 0x7d, 0xa2, 0x21, 0x74, 0x8b, 0xba, 0x53, 0x42, 0xd7, 0xf7, 0x9c, 0x91, 0xdb, + 0x2c, 0xe7, 0x12, 0x02, 0x25, 0x7c, 0x40, 0x30, 0xa9, 0x97, 0xe5, 0x4b, 0x56, 0xf7, 0x1c, 0x27, + 0x38, 0xf0, 0xc5, 0x32, 0x15, 0x60, 0x8d, 0x42, 0xd1, 0x35, 0x38, 0xe5, 0x8f, 0x5c, 0x77, 0x80, + 0x87, 0xd8, 0x0e, 0x8c, 0x01, 0xeb, 0x88, 0xcc, 0x59, 0xf1, 0xb5, 0xa2, 0x86, 0xe2, 0x4d, 0x94, + 0xb1, 0x8f, 0xce, 0x03, 0xb8, 0x9e, 0xf5, 0xcc, 0x1a, 0xe0, 0x3e, 0x36, 0x9b, 0x73, 0x94, 0x69, + 0x0c, 0x82, 0xde, 0x26, 0x9e, 0xb7, 0xd7, 0x73, 0x86, 0x6e, 0xb3, 0x92, 0xd6, 0xb7, 0x98, 0xa7, + 0x8e, 0xe7, 0x1c, 0x58, 0x03, 0xac, 0x09, 0x5c, 0xf4, 0x65, 0x28, 0x1b, 0xae, 0x6b, 0x78, 0x43, + 0xc7, 0x6b, 0xc2, 0x64, 0xba, 0x10, 0x19, 0xdd, 0x84, 0x65, 0xce, 0x43, 0x77, 0x59, 0x23, 0x73, + 0x6a, 0xf3, 0xc4, 0x2e, 0xef, 0x17, 0x9a, 0x8a, 0x86, 0x78, 0x3b, 0xa7, 0x25, 0x2e, 0x4e, 0xfd, + 0x27, 0x05, 0x16, 0x13, 0x3c, 0xd1, 0x47, 0xb0, 0x20, 0x38, 0x04, 0x47, 0xae, 0x70, 0x03, 0xaf, + 0xe6, 0x88, 0xb1, 0xce, 0x7f, 0xf7, 0x8e, 0x5c, 0x4c, 0xbd, 0x97, 0x78, 0x40, 0x97, 0xa0, 0x36, + 0x70, 0x7a, 0xc6, 0x80, 0x7a, 0x2d, 0x0f, 0x1f, 0x70, 0x1f, 0xbb, 0x10, 0x02, 0x35, 0x7c, 0xa0, + 0xde, 0x83, 0x6a, 0x8c, 0x01, 0x42, 0x50, 0xd7, 0x58, 0x57, 0x9b, 0xf8, 0xc0, 0x18, 0x0d, 0x82, + 0xc6, 0x0c, 0xaa, 0x03, 0xec, 0xdb, 0x3d, 0xb2, 0xa7, 0xd9, 0xd8, 0x6c, 0x28, 0xa8, 0x06, 0x95, + 0x87, 0x82, 0x45, 0xa3, 0xa0, 0xfe, 0xb8, 0x08, 0xa7, 0xa9, 0xe1, 0x75, 0x1c, 0x93, 0xaf, 0x04, + 0xbe, 0x01, 0x5e, 0x82, 0x5a, 0x8f, 0xce, 0xa5, 0xee, 0x1a, 0x1e, 0xb6, 0x03, 0xbe, 0x0d, 0x2c, + 0x30, 0x60, 0x87, 0xc2, 0x90, 0x06, 0x0d, 0x9f, 0x8f, 0x48, 0xef, 0xb1, 0x95, 0xc3, 0x8d, 0x5b, + 0x1a, 0x75, 0xce, 0x42, 0xd3, 0x16, 0xfd, 0xd4, 0xca, 0x9b, 0xf7, 0x8f, 0xfc, 0x5e, 0x30, 0x10, + 0xde, 0x6e, 0x3d, 0xc5, 0x2a, 0x29, 0xec, 0x7a, 0x97, 0x11, 0x6c, 0xd9, 0x81, 0x77, 0xa4, 0x09, + 0x72, 0xf4, 0x3e, 0x94, 0x9d, 0x67, 0xd8, 0x3b, 0xc4, 0x06, 0xf3, 0x32, 0xd5, 0x1b, 0x97, 0x52, + 0xac, 0x36, 0x84, 0xa3, 0xd7, 0xb0, 0xef, 0x8c, 0xbc, 0x1e, 0xf6, 0xb5, 0x90, 0x08, 0xb5, 0xa1, + 0xe2, 0x09, 0x30, 0xf7, 0x42, 0x53, 0x71, 0x88, 0xa8, 0x5a, 0x77, 0x60, 0x21, 0x2e, 0x1c, 0x6a, + 0x40, 0xf1, 0x29, 0x3e, 0xe2, 0xca, 0x24, 0x7f, 0x23, 0xff, 0xc4, 0x66, 0x98, 0x3d, 0xdc, 0x29, + 0xdc, 0x52, 0x54, 0x0f, 0x50, 0x34, 0xd2, 0x47, 0x38, 0x30, 0x4c, 0x23, 0x30, 0x10, 0x82, 0x12, + 0x0d, 0x8d, 0x18, 0x0b, 0xfa, 0x9f, 0x70, 0x1d, 0x71, 0x57, 0x5d, 0xd1, 0xc8, 0x5f, 0x74, 0x16, + 0x2a, 0xa1, 0x27, 0xe2, 0xf1, 0x51, 0x04, 0x20, 0x71, 0x8a, 0x11, 0x04, 0x78, 0xe8, 0x06, 0x54, + 0x31, 0x35, 0x4d, 0x3c, 0xaa, 0x7f, 0x30, 0x0b, 0x8d, 0x94, 0x2d, 0xdc, 0x81, 0xf2, 0x90, 0x77, + 0xcf, 0x7d, 0xe0, 0x79, 0x29, 0x58, 0x49, 0x09, 0xa9, 0x85, 0xf8, 0x24, 0x16, 0x20, 0xb6, 0x16, + 0x8b, 0xe6, 0xc2, 0x67, 0x66, 0xe4, 0x7d, 0xdd, 0xb4, 0x3c, 0xdc, 0x0b, 0x1c, 0xef, 0x88, 0x0b, + 0xba, 0x30, 0x70, 0xfa, 0x9b, 0x02, 0x86, 0x6e, 0x02, 0x98, 0xb6, 0xaf, 0x53, 0x1b, 0xee, 0xf3, + 0x79, 0x94, 0x36, 0xc0, 0x30, 0x68, 0xd3, 0x2a, 0xa6, 0xed, 0x73, 0x91, 0xef, 0x42, 0x8d, 0x44, + 0x40, 0xfa, 0x90, 0xed, 0x8d, 0xcc, 0x21, 0x55, 0x6f, 0xac, 0xca, 0x72, 0x87, 0xf1, 0x98, 0xb6, + 0xe0, 0x46, 0x0f, 0x3e, 0xba, 0x07, 0x73, 0x34, 0x08, 0xf1, 0x9b, 0x73, 0x94, 0xec, 0xb5, 0xec, + 0xe1, 0x72, 0xeb, 0x7b, 0x48, 0x51, 0x99, 0xf1, 0x71, 0x3a, 0xb4, 0x0b, 0x55, 0xc3, 0xb6, 0x9d, + 0xc0, 0x60, 0x1e, 0x7f, 0x9e, 0xb2, 0x79, 0x23, 0x97, 0x4d, 0x3b, 0xc2, 0x67, 0xbc, 0xe2, 0x1c, + 0xd0, 0x97, 0x61, 0x96, 0x6e, 0x09, 0xdc, 0x87, 0x5f, 0x9c, 0xb8, 0x28, 0x34, 0x86, 0x8f, 0xde, + 0x85, 0xf9, 0xe7, 0x96, 0x6d, 0x3a, 0xcf, 0x7d, 0xee, 0x4f, 0x25, 0x13, 0xfe, 0x3a, 0x6b, 0x4a, + 0x11, 0x0b, 0x9a, 0xd6, 0x6d, 0xa8, 0xc6, 0xc6, 0x77, 0x1c, 0xfb, 0x6d, 0xbd, 0x07, 0x8d, 0xe4, + 0x98, 0x8e, 0x65, 0xff, 0x23, 0x58, 0xd6, 0x46, 0x76, 0x24, 0x9a, 0x38, 0x6c, 0xdc, 0x84, 0x39, + 0x6e, 0x0d, 0xcc, 0x18, 0xcf, 0xe6, 0xa9, 0x55, 0xe3, 0xb8, 0xf1, 0x73, 0xc3, 0xa1, 0x61, 0x9b, + 0x03, 0xec, 0xf1, 0x1e, 0xc5, 0xb9, 0xe1, 0x43, 0x06, 0x55, 0xdf, 0x85, 0xd3, 0x89, 0x6e, 0xf9, + 0xb1, 0xe5, 0x4b, 0x50, 0x77, 0x1d, 0x53, 0xf7, 0x19, 0x58, 0xc4, 0x92, 0x15, 0x62, 0x3b, 0x02, + 0x77, 0xdb, 0x24, 0xe4, 0xdd, 0xc0, 0x71, 0xd3, 0x62, 0x4f, 0x47, 0xde, 0x84, 0x95, 0x24, 0x39, + 0xeb, 0x5e, 0x7d, 0x1f, 0x56, 0x35, 0x3c, 0x74, 0x9e, 0xe1, 0x93, 0xb2, 0x6e, 0x41, 0x33, 0xcd, + 0x80, 0x33, 0xff, 0x26, 0xac, 0x46, 0xd0, 0x6e, 0x60, 0x04, 0x23, 0xff, 0x58, 0xcc, 0xf9, 0x99, + 0xee, 0x89, 0xe3, 0xb3, 0x89, 0x2c, 0x6b, 0xe2, 0x51, 0x5d, 0x85, 0xd9, 0x8e, 0x63, 0x6e, 0x77, + 0x50, 0x1d, 0x0a, 0x96, 0xcb, 0x89, 0x0b, 0x96, 0xab, 0xf6, 0xe2, 0x7d, 0xee, 0xb0, 0xa8, 0x93, + 0x75, 0x9d, 0x44, 0x45, 0xb7, 0xa0, 0x6e, 0x98, 0xa6, 0x45, 0x0c, 0xc9, 0x18, 0xe8, 0x96, 0x2b, + 0x82, 0xe6, 0xa5, 0xc4, 0xd4, 0x6f, 0x77, 0xb4, 0x5a, 0x84, 0xb8, 0xed, 0xfa, 0xea, 0x7d, 0xa8, + 0x44, 0x01, 0xfa, 0xdb, 0xd1, 0xf9, 0xac, 0x30, 0x39, 0x96, 0x0b, 0x0f, 0x6f, 0x3b, 0xa9, 0x4d, + 0x92, 0x8b, 0xf9, 0x36, 0x40, 0xe8, 0x54, 0x45, 0x78, 0x78, 0x3a, 0x93, 0xa5, 0x16, 0x43, 0x54, + 0xff, 0xbd, 0x14, 0x77, 0xb2, 0xb1, 0x21, 0x9b, 0xe1, 0x90, 0x4d, 0xc9, 0xe9, 0x16, 0x8e, 0xe9, + 0x74, 0xdf, 0x84, 0x59, 0x3f, 0x30, 0x02, 0xcc, 0xe3, 0xf1, 0xb5, 0x6c, 0x42, 0xd2, 0x31, 0xd6, + 0x18, 0x26, 0x3a, 0x07, 0xd0, 0xf3, 0xb0, 0x11, 0x60, 0x53, 0x37, 0xd8, 0xae, 0x50, 0xd4, 0x2a, + 0x1c, 0xd2, 0x0e, 0x88, 0x17, 0x11, 0x27, 0x88, 0x8c, 0x8d, 0x70, 0xcc, 0x34, 0x46, 0x67, 0x89, + 0xd0, 0x7b, 0xcd, 0x4d, 0xf4, 0x5e, 0x9c, 0x94, 0x7b, 0xaf, 0xc8, 0x13, 0xcf, 0xe7, 0x79, 0x62, + 0x46, 0x34, 0x8d, 0x27, 0x2e, 0xe7, 0x79, 0x62, 0xce, 0x26, 0xdf, 0x13, 0x67, 0x38, 0x92, 0x4a, + 0x96, 0x23, 0xf9, 0x3c, 0x5d, 0xe7, 0xcf, 0x15, 0x68, 0xa6, 0xd7, 0x33, 0xf7, 0x63, 0x37, 0x61, + 0xce, 0xa7, 0x90, 0x7c, 0xff, 0xc9, 0xa9, 0x38, 0x2e, 0xba, 0x0f, 0x25, 0xcb, 0x3e, 0x70, 0xf8, + 0xc2, 0x5b, 0xcf, 0xa5, 0xe1, 0x3d, 0xad, 0x6f, 0xdb, 0x07, 0x0e, 0xd3, 0x20, 0xa5, 0x6d, 0x7d, + 0x19, 0x2a, 0x21, 0xe8, 0x58, 0xe3, 0xd9, 0x86, 0xe5, 0x84, 0xdd, 0xb2, 0xc3, 0x5d, 0x68, 0xe8, + 0xca, 0xb4, 0x86, 0xae, 0xfe, 0x46, 0x89, 0x2f, 0xbe, 0x0f, 0xac, 0x41, 0x80, 0xbd, 0xd4, 0xe2, + 0x7b, 0x47, 0xf0, 0x65, 0x2b, 0xef, 0x42, 0x0e, 0x5f, 0x76, 0x76, 0xe2, 0xab, 0xe8, 0x31, 0xd4, + 0xa9, 0xd9, 0xe9, 0x3e, 0x1e, 0xd0, 0xf8, 0x85, 0xc7, 0xb0, 0xd7, 0xb2, 0x19, 0xb0, 0xde, 0x99, + 0xd9, 0x76, 0x39, 0x05, 0xd3, 0x57, 0x6d, 0x10, 0x87, 0xb5, 0xee, 0x01, 0x4a, 0x23, 0x1d, 0x4b, + 0x83, 0x8f, 0x88, 0x0f, 0xf3, 0x83, 0xcc, 0xdd, 0xf4, 0x80, 0x8a, 0x91, 0x6f, 0x0d, 0x4c, 0x54, + 0x8d, 0xe3, 0xaa, 0xff, 0x5a, 0x04, 0x88, 0x1a, 0xbf, 0xe0, 0xce, 0xeb, 0x4e, 0xe8, 0x44, 0x58, + 0x14, 0xa8, 0x66, 0xb3, 0xcc, 0x74, 0x1f, 0xdb, 0xb2, 0xfb, 0x60, 0xf1, 0xe0, 0xab, 0x63, 0x18, + 0x1c, 0xdb, 0x71, 0xcc, 0x7f, 0xd1, 0x1c, 0xc7, 0x07, 0xb0, 0x92, 0x34, 0x13, 0xee, 0x35, 0x5e, + 0x87, 0x59, 0x2b, 0xc0, 0x43, 0x76, 0x1f, 0x9a, 0xb8, 0x44, 0x88, 0xa1, 0x33, 0x24, 0xf5, 0x3d, + 0x58, 0x91, 0xe7, 0xea, 0x78, 0xe1, 0x84, 0xfa, 0x30, 0x19, 0x8f, 0x44, 0xee, 0x8b, 0xdb, 0x47, + 0xe6, 0x75, 0x4c, 0x92, 0x86, 0x61, 0xaa, 0x3f, 0x55, 0xe0, 0x74, 0xa2, 0x69, 0xcc, 0xc2, 0xff, + 0x76, 0x6a, 0x01, 0x33, 0x7f, 0x77, 0x33, 0xa7, 0x97, 0xdf, 0xe3, 0x2a, 0xfe, 0x3a, 0xb4, 0xe4, + 0xe9, 0x91, 0x54, 0x7b, 0x3b, 0xb1, 0x94, 0x2f, 0x4e, 0x14, 0x3a, 0x5c, 0xcf, 0x1d, 0x58, 0xcb, + 0x64, 0x9c, 0xd6, 0x79, 0x71, 0x4a, 0x9d, 0xff, 0x77, 0x21, 0xee, 0xb3, 0xdb, 0x41, 0xe0, 0x59, + 0x4f, 0x46, 0x01, 0xfe, 0x6c, 0x03, 0x9d, 0xcd, 0x70, 0x65, 0x33, 0x3f, 0xfb, 0x7a, 0x36, 0x65, + 0xd4, 0x7b, 0xe6, 0x1a, 0xef, 0xca, 0x6b, 0xbc, 0x44, 0x59, 0xbd, 0x39, 0x91, 0x55, 0xee, 0x6a, + 0xff, 0x3c, 0x17, 0xf1, 0x3f, 0x2b, 0xb0, 0x98, 0x98, 0x15, 0x74, 0x0f, 0xc0, 0x08, 0x45, 0xe7, + 0xf6, 0x71, 0x61, 0xd2, 0x10, 0xb5, 0x18, 0x0d, 0xd9, 0x13, 0x59, 0x0c, 0x97, 0xb1, 0x27, 0x66, + 0xc4, 0x70, 0x61, 0x08, 0x77, 0x37, 0x3a, 0x80, 0xb2, 0x8b, 0x4b, 0x35, 0xf7, 0x00, 0xca, 0x68, + 0x05, 0x89, 0xfa, 0x83, 0x02, 0x2c, 0x67, 0x71, 0x47, 0xaf, 0x40, 0xb1, 0xe7, 0x8e, 0xf8, 0x48, + 0xa4, 0xe4, 0xc9, 0x86, 0x3b, 0xda, 0xf7, 0x8d, 0x3e, 0xd6, 0x08, 0x02, 0xba, 0x06, 0x73, 0x43, + 0x3c, 0x74, 0xbc, 0x23, 0x2e, 0xb7, 0x74, 0x05, 0xf0, 0x88, 0xb6, 0x30, 0x6c, 0x8e, 0x86, 0x6e, + 0x44, 0xa1, 0x2e, 0x93, 0xb7, 0x29, 0x45, 0xf4, 0xac, 0x89, 0x91, 0x84, 0xf1, 0xed, 0x0d, 0x98, + 0x77, 0x3d, 0xa7, 0x87, 0x7d, 0x9f, 0xdf, 0x50, 0x34, 0x13, 0xd9, 0x1c, 0xd2, 0xc4, 0x69, 0x38, + 0x22, 0xba, 0x03, 0x10, 0xa6, 0x19, 0xc4, 0xce, 0xd4, 0x92, 0xc6, 0x21, 0x5a, 0x99, 0x4a, 0x62, + 0xd8, 0xe4, 0x94, 0x98, 0xad, 0x38, 0xf5, 0x1f, 0x15, 0x58, 0x88, 0xcb, 0x88, 0xce, 0x42, 0x85, + 0x30, 0xf4, 0x03, 0x63, 0xe8, 0xf2, 0x3b, 0xf0, 0x08, 0x80, 0x76, 0x60, 0xc9, 0x64, 0x97, 0x85, + 0xba, 0x65, 0x07, 0xd8, 0x3b, 0x30, 0x7a, 0x22, 0xe8, 0xb9, 0x98, 0x31, 0xec, 0x6d, 0x81, 0xc3, + 0xc6, 0xd2, 0xe0, 0xb4, 0x21, 0x18, 0xb5, 0x01, 0x42, 0x3e, 0x62, 0x51, 0x4e, 0xc1, 0x28, 0x46, + 0xa4, 0xfe, 0x56, 0x81, 0xd3, 0x99, 0x58, 0x99, 0x57, 0x5f, 0x37, 0xa0, 0xec, 0xbd, 0xd0, 0x9f, + 0x1c, 0x05, 0xd8, 0xcf, 0x9a, 0xe0, 0xfd, 0xd8, 0xfd, 0xf6, 0xbc, 0xf7, 0xe2, 0x3e, 0xc1, 0x43, + 0x37, 0xa1, 0xe2, 0xbd, 0xd0, 0xb1, 0xe7, 0x39, 0x9e, 0xb0, 0xc9, 0xb1, 0x44, 0x65, 0xef, 0xc5, + 0x16, 0x45, 0x24, 0x3d, 0x05, 0xa2, 0xa7, 0xd2, 0x84, 0x9e, 0x82, 0xa8, 0xa7, 0x20, 0xec, 0x69, + 0x76, 0x42, 0x4f, 0x01, 0xef, 0x49, 0xfd, 0x18, 0x16, 0xe2, 0x26, 0x33, 0x61, 0x0a, 0xef, 0x42, + 0x8d, 0x9b, 0x94, 0xde, 0x73, 0x46, 0x76, 0x30, 0x49, 0x0d, 0x0b, 0x1c, 0x7b, 0x83, 0x20, 0xab, + 0x7f, 0xa9, 0x40, 0x65, 0x7b, 0x68, 0xf4, 0x71, 0xd7, 0xc5, 0x3d, 0xe2, 0x53, 0x2c, 0xf2, 0xc0, + 0x55, 0xcc, 0x1e, 0xd0, 0x87, 0xb2, 0x7f, 0x64, 0x3b, 0xe2, 0x2b, 0x52, 0x16, 0x41, 0x70, 0x98, + 0xe0, 0x14, 0x3f, 0xad, 0x67, 0xbb, 0x01, 0xe5, 0xaf, 0xe2, 0x23, 0x16, 0xfb, 0x4f, 0x49, 0xa7, + 0xfe, 0xb0, 0x04, 0xab, 0x63, 0x6e, 0x6a, 0x69, 0xe0, 0xe8, 0x8e, 0x74, 0x17, 0x7b, 0x96, 0x63, + 0x0a, 0xd5, 0xf6, 0xdc, 0x51, 0x87, 0x02, 0xd0, 0x1a, 0x90, 0x07, 0xfd, 0xbb, 0x23, 0x87, 0xef, + 0x4d, 0x45, 0xad, 0xdc, 0x73, 0x47, 0x5f, 0x23, 0xcf, 0x82, 0xd6, 0x3f, 0x34, 0x3c, 0xcc, 0xcc, + 0x88, 0xd1, 0x76, 0x29, 0x00, 0xbd, 0x09, 0xa7, 0x99, 0x43, 0xd1, 0x07, 0xd6, 0xd0, 0x22, 0xcb, + 0x2b, 0x66, 0x3b, 0x45, 0x0d, 0xb1, 0xc6, 0x87, 0xa4, 0x6d, 0xdb, 0x66, 0xd6, 0xa2, 0x42, 0xcd, + 0x71, 0x86, 0xba, 0xdf, 0x73, 0x3c, 0xac, 0x1b, 0xe6, 0xc7, 0xd4, 0x62, 0x8a, 0x5a, 0xd5, 0x71, + 0x86, 0x5d, 0x02, 0x6b, 0x9b, 0x1f, 0xa3, 0x97, 0xa0, 0xda, 0x73, 0x47, 0x3e, 0x0e, 0x74, 0xf2, + 0x43, 0xcf, 0xd3, 0x15, 0x0d, 0x18, 0x68, 0xc3, 0x1d, 0xf9, 0x31, 0x84, 0x21, 0x89, 0xd6, 0xe6, + 0xe3, 0x08, 0x8f, 0xf0, 0x90, 0x26, 0xa4, 0x0e, 0x47, 0x7d, 0xec, 0x1a, 0x7d, 0xcc, 0x44, 0x13, + 0x87, 0x62, 0x29, 0x21, 0xf5, 0x21, 0x47, 0xa1, 0x02, 0x6a, 0xf5, 0xc3, 0xf8, 0xa3, 0x8f, 0x3e, + 0x82, 0xf9, 0x91, 0x6d, 0x1d, 0x58, 0xd8, 0x6c, 0x56, 0x28, 0xed, 0xf5, 0x29, 0xee, 0xc5, 0xd7, + 0xf7, 0x19, 0x09, 0xbf, 0xa6, 0xe7, 0x0c, 0xd0, 0x1d, 0x68, 0x71, 0x45, 0xf9, 0xcf, 0x0d, 0x37, + 0xa9, 0x2d, 0xa0, 0x2a, 0x58, 0x61, 0x18, 0xdd, 0xe7, 0x86, 0x1b, 0xd7, 0x58, 0xeb, 0x0e, 0x2c, + 0xc4, 0x99, 0x1e, 0xcb, 0x96, 0xee, 0x43, 0x4d, 0x1a, 0x24, 0x99, 0x6d, 0xaa, 0x14, 0xdf, 0xfa, + 0x9e, 0x58, 0x00, 0x65, 0x02, 0xe8, 0x5a, 0xdf, 0xa3, 0x69, 0x44, 0x2a, 0x19, 0xe5, 0x53, 0xd2, + 0xd8, 0x83, 0x6a, 0x40, 0x4d, 0xca, 0xdc, 0x11, 0x17, 0x45, 0x53, 0x74, 0xdc, 0x45, 0x91, 0xff, + 0x04, 0xe6, 0x39, 0x03, 0x21, 0x01, 0xfd, 0x4f, 0x60, 0x34, 0x47, 0xc4, 0x6e, 0xbc, 0xe9, 0x7f, + 0xda, 0x05, 0x7e, 0xc6, 0x13, 0xe2, 0x15, 0x8d, 0x3d, 0xa8, 0x7f, 0xaa, 0x00, 0x6c, 0x18, 0xae, + 0xf1, 0xc4, 0x1a, 0x58, 0xc1, 0x11, 0xba, 0x0c, 0x0d, 0xc3, 0x34, 0xf5, 0x9e, 0x80, 0x58, 0x58, + 0x54, 0x28, 0x2c, 0x1a, 0xa6, 0xb9, 0x11, 0x03, 0xa3, 0xab, 0xb0, 0x64, 0x7a, 0x8e, 0x2b, 0xe3, + 0xb2, 0x92, 0x85, 0x06, 0x69, 0x90, 0x90, 0x6f, 0x41, 0x93, 0xf0, 0x35, 0x86, 0x4f, 0x2c, 0x6c, + 0x07, 0x32, 0x0d, 0xab, 0x65, 0x58, 0x31, 0x4c, 0xb3, 0xcd, 0x9a, 0xe3, 0x94, 0xea, 0x3f, 0xcc, + 0xc1, 0x39, 0x79, 0xc6, 0x93, 0xc9, 0xd4, 0x3b, 0xb0, 0x90, 0x90, 0x37, 0x95, 0x86, 0x8c, 0x46, + 0xa8, 0x49, 0xb8, 0x89, 0x74, 0x61, 0x21, 0x95, 0x2e, 0xcc, 0x4c, 0xd4, 0x16, 0x3f, 0xa3, 0x44, + 0x6d, 0xe9, 0x53, 0x26, 0x6a, 0x67, 0x4f, 0x9a, 0xa8, 0x5d, 0x98, 0x3a, 0x51, 0xfb, 0x0a, 0x3d, + 0x54, 0x8a, 0x1e, 0xe9, 0xf6, 0xc8, 0x7c, 0x42, 0x2d, 0xe4, 0x6e, 0x8b, 0xb2, 0x99, 0x44, 0x42, + 0x77, 0xfe, 0x38, 0x09, 0xdd, 0xf2, 0xd8, 0x84, 0xee, 0x05, 0x58, 0xb0, 0x1d, 0xdd, 0xc6, 0xcf, + 0x75, 0x32, 0x2d, 0x7e, 0xb3, 0xca, 0xe6, 0xc8, 0x76, 0x76, 0xf0, 0xf3, 0x0e, 0x81, 0xa0, 0x8b, + 0xb0, 0x30, 0x34, 0xfc, 0xa7, 0xd8, 0xa4, 0x99, 0x55, 0xbf, 0x59, 0xa3, 0xf6, 0x54, 0x65, 0xb0, + 0x0e, 0x01, 0xa1, 0x97, 0x21, 0x94, 0x83, 0x23, 0xd5, 0x29, 0x52, 0x4d, 0x40, 0x19, 0x5a, 0x2c, + 0x39, 0xbc, 0x78, 0xc2, 0xe4, 0x70, 0xe3, 0x38, 0xc9, 0xe1, 0x37, 0xa0, 0x21, 0xfe, 0x8b, 0xec, + 0x30, 0xbb, 0xec, 0xa3, 0x89, 0xe1, 0x45, 0xd1, 0x26, 0x32, 0xc0, 0xe3, 0x72, 0xc9, 0x90, 0x9b, + 0x4b, 0xfe, 0x89, 0xc2, 0x43, 0xdc, 0x70, 0x01, 0xf1, 0x24, 0x96, 0x94, 0x7f, 0x54, 0x4e, 0x92, + 0x7f, 0x44, 0x7b, 0x63, 0x33, 0xb4, 0x97, 0xc7, 0x73, 0x9a, 0x94, 0xa3, 0x55, 0x7f, 0xa0, 0xc0, + 0x39, 0x1e, 0x7f, 0x8e, 0xa9, 0x9f, 0xc8, 0x30, 0x4b, 0x65, 0x8c, 0x59, 0xf6, 0x3c, 0x6c, 0x62, + 0x3b, 0xb0, 0x8c, 0x81, 0xee, 0xbb, 0xb8, 0x27, 0xb2, 0x32, 0x11, 0x98, 0x46, 0x26, 0x17, 0x61, + 0x81, 0x15, 0x1c, 0xf1, 0x30, 0x9b, 0xd5, 0x15, 0x55, 0x69, 0xcd, 0x11, 0x03, 0xa9, 0x0e, 0xac, + 0x8e, 0x49, 0x67, 0x65, 0xaa, 0x41, 0x49, 0xab, 0x21, 0x77, 0x4c, 0x69, 0x35, 0xfc, 0x50, 0x81, + 0x97, 0x38, 0xc9, 0x58, 0xdf, 0xf7, 0x79, 0x28, 0xe2, 0xaf, 0x95, 0xf0, 0x78, 0x90, 0x34, 0xa9, + 0x8d, 0xb4, 0x49, 0xbd, 0x9c, 0xa1, 0x81, 0x7c, 0xa3, 0x7a, 0x3c, 0xd6, 0xa8, 0xae, 0xe6, 0xf1, + 0x9a, 0xa8, 0xcf, 0x7f, 0x53, 0xe0, 0xcc, 0x58, 0x01, 0x12, 0xf1, 0x96, 0x92, 0x8c, 0xb7, 0x78, + 0xac, 0x16, 0x85, 0xc0, 0x2c, 0x56, 0xa3, 0x51, 0x2e, 0x0f, 0x8a, 0xf4, 0xa1, 0xf1, 0xc2, 0x1a, + 0x8e, 0x86, 0x3c, 0x58, 0x23, 0xec, 0x1e, 0x31, 0xc8, 0x49, 0xa2, 0xb5, 0x6b, 0xb0, 0xcc, 0x1c, + 0x29, 0x0d, 0x18, 0x22, 0x0a, 0x16, 0xb4, 0x2d, 0xb1, 0x36, 0x12, 0x3b, 0x70, 0x02, 0xb5, 0x0d, + 0x4b, 0xe1, 0xb0, 0x72, 0xd3, 0xf9, 0xb1, 0xf4, 0x7c, 0x41, 0x4e, 0xcf, 0xdb, 0x30, 0xb7, 0x89, + 0x9f, 0x59, 0x3d, 0xfc, 0x99, 0xd4, 0xe9, 0x5d, 0x80, 0xaa, 0x8b, 0xbd, 0xa1, 0xe5, 0xfb, 0xe1, + 0xae, 0x59, 0xd1, 0xe2, 0x20, 0xf5, 0x27, 0x73, 0xb0, 0x98, 0x34, 0xa1, 0xdb, 0xa9, 0x6a, 0x80, + 0x73, 0x99, 0xa7, 0xd6, 0x8c, 0xeb, 0x9a, 0xab, 0xe2, 0x78, 0x51, 0x48, 0xa7, 0xca, 0xc2, 0x23, + 0x84, 0x38, 0x75, 0x34, 0x61, 0xbe, 0xe7, 0x0c, 0x87, 0x86, 0x6d, 0x8a, 0x62, 0x4a, 0xfe, 0x48, + 0x74, 0x66, 0x78, 0x7d, 0x76, 0x51, 0x53, 0xd1, 0xe8, 0x7f, 0x32, 0xc3, 0xe4, 0xc4, 0x68, 0xd9, + 0xb4, 0x9e, 0x80, 0x4e, 0x42, 0x45, 0x03, 0x0e, 0xda, 0xb4, 0x3c, 0xf4, 0x1a, 0x94, 0xb0, 0xfd, + 0x4c, 0xdc, 0xe0, 0x4a, 0x17, 0x06, 0xe2, 0x48, 0xa1, 0x51, 0x0c, 0x74, 0x19, 0xe6, 0x86, 0xc4, + 0x6a, 0x44, 0xce, 0x69, 0x29, 0x55, 0x74, 0xa8, 0x71, 0x04, 0xf4, 0x3a, 0xcc, 0x9b, 0x74, 0x3e, + 0x44, 0x0c, 0x8d, 0xa4, 0xca, 0x04, 0xda, 0xa4, 0x09, 0x14, 0xf4, 0x7e, 0x78, 0x5b, 0x55, 0x49, + 0x5f, 0x23, 0x27, 0xd4, 0x9c, 0x79, 0x51, 0xb5, 0x23, 0x1f, 0xc4, 0x20, 0x7d, 0xe7, 0x95, 0xe4, + 0x92, 0x7f, 0x23, 0x7d, 0x06, 0xca, 0x03, 0xa7, 0xcf, 0x8c, 0xa3, 0xca, 0x2a, 0x71, 0x07, 0x4e, + 0x9f, 0xda, 0xc6, 0x32, 0xcc, 0xfa, 0x81, 0x69, 0xd9, 0x34, 0x14, 0x29, 0x6b, 0xec, 0x81, 0xac, + 0x41, 0xfa, 0x47, 0x77, 0xec, 0x1e, 0x6e, 0xd6, 0x68, 0x53, 0x85, 0x42, 0x76, 0xed, 0x1e, 0x3d, + 0x92, 0x05, 0xc1, 0x51, 0xb3, 0x4e, 0xe1, 0xe4, 0x6f, 0x74, 0x69, 0xb4, 0x38, 0xe6, 0xd2, 0x28, + 0x21, 0x70, 0xc6, 0xa5, 0x51, 0x63, 0xec, 0xa5, 0x51, 0x92, 0xf6, 0x8b, 0x50, 0xb4, 0xf0, 0xb7, + 0x0a, 0xac, 0x6c, 0xd0, 0xcc, 0x43, 0xcc, 0x85, 0x1d, 0x27, 0x91, 0xfe, 0x56, 0x58, 0xdd, 0x90, + 0x91, 0xa2, 0x4e, 0x8e, 0x58, 0x14, 0x37, 0x6c, 0x40, 0x5d, 0xb0, 0xe5, 0xc4, 0xc5, 0x29, 0x4a, + 0x23, 0x6a, 0x7e, 0xfc, 0x51, 0xbd, 0x0b, 0xab, 0x29, 0xc9, 0xf9, 0xfd, 0x6f, 0xb2, 0x4c, 0x96, + 0x09, 0x1e, 0x2f, 0x93, 0x55, 0xef, 0xc0, 0xe9, 0x6e, 0x60, 0x78, 0x41, 0x6a, 0xd8, 0x53, 0xd0, + 0xd2, 0xa2, 0x07, 0x99, 0x96, 0xd7, 0x25, 0x74, 0x61, 0xb9, 0x1b, 0x38, 0xee, 0x09, 0x98, 0x12, + 0xff, 0x41, 0x46, 0xee, 0x8c, 0xc4, 0x76, 0x20, 0x1e, 0xd5, 0x55, 0x56, 0xa2, 0x91, 0xee, 0xed, + 0x2b, 0xb0, 0xc2, 0x2a, 0x24, 0x4e, 0x32, 0x88, 0x33, 0xa2, 0x3e, 0x23, 0xcd, 0xf7, 0x01, 0x9c, + 0x92, 0x2e, 0xf3, 0x78, 0xf6, 0xf2, 0xba, 0x9c, 0xbd, 0x1c, 0x7f, 0xf9, 0x17, 0x26, 0x2f, 0x7f, + 0x54, 0x88, 0xf9, 0xe3, 0x31, 0x29, 0x8c, 0xb7, 0xe5, 0xdc, 0xe5, 0x4b, 0xe3, 0xb9, 0x4a, 0xa9, + 0xcb, 0xb4, 0x75, 0x16, 0x33, 0xac, 0x73, 0x3f, 0x95, 0x1f, 0x29, 0xa5, 0xf3, 0xc1, 0x09, 0x09, + 0x7f, 0x2f, 0x99, 0x91, 0x87, 0x2c, 0xbf, 0x19, 0x76, 0x1d, 0x26, 0x45, 0xde, 0x4a, 0x24, 0x45, + 0xd6, 0x72, 0x24, 0x0d, 0xd3, 0x21, 0x3f, 0x2a, 0x41, 0x25, 0x6c, 0x4b, 0x69, 0x38, 0xad, 0xaa, + 0x42, 0x86, 0xaa, 0xe2, 0xfb, 0x64, 0xf1, 0x84, 0xfb, 0x64, 0x69, 0x8a, 0x7d, 0x72, 0x0d, 0x2a, + 0xf4, 0x0f, 0x2d, 0x13, 0x65, 0xfb, 0x5e, 0x99, 0x02, 0x34, 0x7c, 0x10, 0x99, 0xd8, 0xdc, 0x94, + 0x26, 0x96, 0xc8, 0xa5, 0xce, 0x27, 0x73, 0xa9, 0xb7, 0xc3, 0x3d, 0xac, 0x9c, 0xbe, 0xdc, 0x0d, + 0x39, 0x66, 0xee, 0x5e, 0x89, 0x6b, 0xc4, 0x4a, 0xfa, 0x1a, 0x31, 0xa2, 0xff, 0xc2, 0xe6, 0x56, + 0x76, 0x59, 0x82, 0x34, 0x6e, 0x67, 0xdc, 0x47, 0xbe, 0x2d, 0xdd, 0xe7, 0x2b, 0xe9, 0x4a, 0xfd, + 0xc8, 0x2f, 0xc4, 0xaf, 0xf2, 0xf7, 0x61, 0x45, 0x9a, 0x88, 0xa8, 0xf0, 0x6a, 0x3a, 0x1f, 0x37, + 0xa6, 0xea, 0xea, 0x8f, 0xe3, 0x91, 0xdb, 0x98, 0x12, 0xa3, 0xdb, 0xa9, 0xcc, 0xdb, 0xd4, 0x16, + 0x7a, 0x5d, 0x4e, 0xd2, 0x1f, 0xdb, 0xae, 0x52, 0x39, 0x7a, 0x1a, 0x59, 0x18, 0x1e, 0x6f, 0x66, + 0x31, 0x74, 0x85, 0x43, 0xda, 0x34, 0x80, 0x3f, 0xb0, 0x6c, 0xcb, 0x3f, 0x64, 0xed, 0x73, 0x2c, + 0x80, 0x17, 0xa0, 0x36, 0xbd, 0xbc, 0xc3, 0x2f, 0xac, 0x40, 0xef, 0x39, 0x26, 0xa6, 0x56, 0x3b, + 0xab, 0x95, 0x09, 0x60, 0xc3, 0x31, 0x71, 0xb4, 0x9e, 0xca, 0xc7, 0x5d, 0x4f, 0x95, 0xc4, 0x7a, + 0x5a, 0x81, 0x39, 0x0f, 0x1b, 0xbe, 0x63, 0xb3, 0x33, 0xbd, 0xc6, 0x9f, 0xc8, 0x44, 0x0c, 0xb1, + 0xef, 0x93, 0x3e, 0x78, 0x20, 0xc5, 0x1f, 0x63, 0x41, 0xdf, 0x42, 0x4e, 0xd0, 0x97, 0x53, 0xc0, + 0x94, 0x08, 0xfa, 0x6a, 0x39, 0x41, 0xdf, 0x54, 0xf5, 0x4b, 0x51, 0x78, 0x5b, 0x9f, 0x14, 0xde, + 0xc6, 0xe3, 0xc3, 0x45, 0x39, 0x3e, 0xbc, 0x1b, 0x3f, 0x48, 0x36, 0xd2, 0x69, 0xdb, 0xfc, 0xb2, + 0xe8, 0xcf, 0x71, 0x01, 0xff, 0x8b, 0x02, 0xab, 0xa9, 0x05, 0xc7, 0x97, 0xf0, 0x5b, 0x89, 0xca, + 0xa8, 0xb5, 0x1c, 0x2d, 0x87, 0x85, 0x51, 0x6d, 0xa9, 0x30, 0xea, 0x8d, 0x3c, 0x92, 0xcf, 0xbc, + 0x2e, 0xea, 0xfb, 0x0a, 0xa0, 0x8c, 0xa3, 0xf2, 0x6d, 0x11, 0x75, 0x1f, 0xe3, 0xd2, 0x88, 0x07, + 0xde, 0xef, 0x47, 0x81, 0x77, 0xe1, 0x38, 0xd7, 0x03, 0x61, 0xc2, 0xf6, 0x57, 0x05, 0x78, 0x69, + 0xdf, 0x35, 0x13, 0x61, 0x24, 0xc7, 0x9a, 0xde, 0xb3, 0xdd, 0x96, 0xb3, 0xcd, 0x27, 0x1c, 0x42, + 0xf1, 0x24, 0x43, 0x40, 0xdf, 0xc9, 0xaa, 0x07, 0xb8, 0x2b, 0xe5, 0xd3, 0xf2, 0x07, 0xf8, 0x3b, + 0xce, 0x82, 0xa9, 0x70, 0x61, 0xbc, 0x00, 0x3c, 0xe4, 0xfc, 0xbf, 0xb0, 0xb8, 0xf5, 0x02, 0xf7, + 0xba, 0x47, 0x76, 0xef, 0x18, 0x5a, 0x6f, 0x40, 0xb1, 0x37, 0x34, 0x79, 0x92, 0x80, 0xfc, 0x8d, + 0x47, 0xd1, 0x45, 0x39, 0x8a, 0xd6, 0xa1, 0x11, 0xf5, 0xc0, 0x17, 0xd0, 0x0a, 0x59, 0x40, 0x26, + 0x41, 0x26, 0xcc, 0x17, 0x34, 0xfe, 0xc4, 0xe1, 0xd8, 0x63, 0x35, 0xd7, 0x0c, 0x8e, 0x3d, 0x4f, + 0xf6, 0xda, 0x45, 0xd9, 0x6b, 0xab, 0x3f, 0x56, 0xa0, 0x4a, 0x7a, 0xf8, 0x54, 0xf2, 0xf3, 0x23, + 0x69, 0x31, 0x3a, 0x92, 0x86, 0x27, 0xdb, 0x52, 0xfc, 0x64, 0x1b, 0x49, 0x3e, 0x4b, 0xc1, 0x69, + 0xc9, 0xe7, 0x42, 0x38, 0xf6, 0x3c, 0xf5, 0x02, 0x2c, 0x30, 0xd9, 0xf8, 0xc8, 0x1b, 0x50, 0x1c, + 0x79, 0x03, 0x31, 0x7f, 0x23, 0x6f, 0xa0, 0xfe, 0xa1, 0x02, 0xb5, 0x76, 0x10, 0x18, 0xbd, 0xc3, + 0x63, 0x0c, 0x20, 0x14, 0xae, 0x10, 0x17, 0x2e, 0x3d, 0x88, 0x48, 0xdc, 0xd2, 0x18, 0x71, 0x67, + 0x25, 0x71, 0x55, 0xa8, 0x0b, 0x59, 0xc6, 0x0a, 0xbc, 0x03, 0xa8, 0xe3, 0x78, 0xc1, 0x07, 0x8e, + 0xf7, 0xdc, 0xf0, 0xcc, 0xe3, 0x9d, 0x5a, 0x11, 0x94, 0xf8, 0x3b, 0xa9, 0xc5, 0xd7, 0x66, 0x35, + 0xfa, 0x5f, 0x7d, 0x15, 0x4e, 0x49, 0xfc, 0xc6, 0x76, 0x7c, 0x07, 0xaa, 0x74, 0x17, 0xe6, 0x07, + 0x9a, 0xab, 0xf1, 0x24, 0xf4, 0x84, 0xdd, 0x5a, 0xdd, 0x84, 0x25, 0x12, 0x8f, 0x51, 0x78, 0xe8, + 0x5f, 0xae, 0x25, 0x62, 0xfe, 0xd5, 0x14, 0x8b, 0x44, 0xbc, 0xff, 0x1b, 0x05, 0x66, 0x29, 0x3c, + 0x15, 0x23, 0xad, 0x91, 0x7d, 0xce, 0x75, 0xf4, 0xc0, 0xe8, 0x87, 0xef, 0xfb, 0x12, 0xc0, 0x9e, + 0xd1, 0xa7, 0x89, 0x0d, 0xda, 0x68, 0x5a, 0x7d, 0xec, 0x07, 0x22, 0x51, 0x56, 0x25, 0xb0, 0x4d, + 0x06, 0x22, 0x8a, 0xa1, 0xf9, 0xc4, 0x12, 0x4d, 0x1b, 0xd2, 0xff, 0xe8, 0x35, 0xf6, 0xba, 0x4e, + 0x7e, 0x76, 0x88, 0xbe, 0xc6, 0xd3, 0x82, 0x72, 0x22, 0xad, 0x13, 0x3e, 0xa3, 0xcb, 0x50, 0xa2, + 0xd7, 0xc4, 0xf3, 0x79, 0x5a, 0xa2, 0x28, 0xc4, 0x2a, 0x5c, 0xcb, 0xb6, 0xb1, 0x49, 0x03, 0xa0, + 0xb2, 0xc6, 0x9f, 0xd4, 0xf7, 0x01, 0xc5, 0x95, 0xc7, 0x27, 0xe8, 0x32, 0xcc, 0x51, 0xdd, 0x8a, + 0x20, 0x76, 0x29, 0xc5, 0x5a, 0xe3, 0x08, 0xea, 0xb7, 0x01, 0xb1, 0xbe, 0xa4, 0xc0, 0xf5, 0x38, + 0x13, 0x98, 0x13, 0xc2, 0xfe, 0x8d, 0x02, 0xa7, 0x24, 0xee, 0x5c, 0xbe, 0x57, 0x65, 0xf6, 0x19, + 0xe2, 0x71, 0xd6, 0xef, 0x4a, 0x3b, 0xf3, 0xe5, 0xb4, 0x18, 0xbf, 0xa3, 0x5d, 0xf9, 0xe7, 0x0a, + 0x40, 0x7b, 0x14, 0x1c, 0xf2, 0x0b, 0xd3, 0xf8, 0x24, 0x2a, 0x89, 0x49, 0x6c, 0x41, 0xd9, 0x35, + 0x7c, 0xff, 0xb9, 0xe3, 0x89, 0x43, 0x64, 0xf8, 0x4c, 0xaf, 0x39, 0x47, 0xfc, 0xb5, 0xe3, 0x8a, + 0x46, 0xff, 0xa3, 0x97, 0xa1, 0xce, 0x5e, 0x44, 0xd7, 0x0d, 0xd3, 0xf4, 0x44, 0xbd, 0x51, 0x45, + 0xab, 0x31, 0x68, 0x9b, 0x01, 0x09, 0x9a, 0x45, 0x93, 0x06, 0xc1, 0x91, 0x1e, 0x38, 0x4f, 0xb1, + 0xcd, 0x0f, 0x86, 0x35, 0x01, 0xdd, 0x23, 0x40, 0x96, 0x75, 0xeb, 0x5b, 0x7e, 0xe0, 0x09, 0x34, + 0x91, 0x3b, 0xe4, 0x50, 0x8a, 0xa6, 0xfe, 0x95, 0x02, 0x8d, 0xce, 0x68, 0x30, 0x60, 0xca, 0x3d, + 0xc9, 0x24, 0x5f, 0xe1, 0x43, 0x29, 0xa4, 0x4d, 0x3e, 0x52, 0x14, 0x1f, 0xe2, 0x67, 0x72, 0x97, + 0x75, 0x1d, 0x96, 0x62, 0x12, 0x73, 0xc3, 0x91, 0x22, 0x7b, 0x45, 0x8e, 0xec, 0xd5, 0x36, 0x20, + 0x76, 0x7d, 0x73, 0xe2, 0x51, 0xaa, 0xa7, 0xe1, 0x94, 0xc4, 0x82, 0x6f, 0xc5, 0x57, 0xa0, 0xc6, + 0xeb, 0x99, 0xb8, 0x41, 0x9c, 0x81, 0x32, 0x71, 0xa9, 0x3d, 0xcb, 0x14, 0x85, 0x02, 0xf3, 0xae, + 0x63, 0x6e, 0x58, 0xa6, 0xa7, 0x7e, 0x0d, 0x6a, 0xfc, 0x1d, 0x4e, 0x8e, 0x7b, 0x0f, 0xea, 0xbc, + 0xc8, 0x4c, 0x97, 0x5e, 0x7a, 0x3a, 0x93, 0x51, 0x54, 0x25, 0x54, 0x61, 0xc7, 0x1f, 0xd5, 0xef, + 0x40, 0x8b, 0x45, 0x0b, 0x12, 0x63, 0x31, 0xc0, 0x7b, 0x20, 0xaa, 0x8f, 0x73, 0xf8, 0xcb, 0x94, + 0x35, 0x2f, 0xfe, 0xa8, 0x9e, 0x83, 0xb5, 0x4c, 0xfe, 0x7c, 0xf4, 0x2e, 0x34, 0xa2, 0x06, 0xf6, + 0x66, 0x4e, 0x58, 0xfd, 0xa0, 0xc4, 0xaa, 0x1f, 0x56, 0xc2, 0xd8, 0xbb, 0x20, 0x76, 0x2e, 0x1a, + 0x5e, 0x47, 0x27, 0xae, 0xe2, 0xb8, 0x13, 0x57, 0x49, 0x3a, 0x71, 0xa9, 0x8f, 0x42, 0x1d, 0xf2, + 0x73, 0xef, 0x5d, 0x7a, 0x32, 0x67, 0x7d, 0x0b, 0xa7, 0x76, 0x36, 0x7b, 0x7c, 0x0c, 0x49, 0x8b, + 0xe1, 0xab, 0x97, 0xa1, 0x26, 0xbb, 0xb7, 0x98, 0xc7, 0x52, 0x52, 0x1e, 0xab, 0x9e, 0x70, 0x56, + 0x6f, 0x26, 0x8e, 0x14, 0x59, 0x7a, 0x4d, 0x1c, 0x28, 0x6e, 0x49, 0x6e, 0xeb, 0x4b, 0x52, 0xa6, + 0xfa, 0x77, 0xe4, 0xb1, 0x96, 0xb9, 0x1f, 0xff, 0xc0, 0x27, 0xf4, 0x7c, 0xa0, 0xea, 0x25, 0xa8, + 0xee, 0x8f, 0x7b, 0x93, 0xbe, 0x24, 0xca, 0xab, 0xde, 0x81, 0xe5, 0x0f, 0xac, 0x01, 0xf6, 0x8f, + 0xfc, 0x00, 0x0f, 0xb7, 0xa9, 0x7b, 0x39, 0xb0, 0xb0, 0x87, 0xce, 0x03, 0xd0, 0x53, 0xa4, 0xeb, + 0x58, 0xe1, 0xdb, 0xc3, 0x31, 0x88, 0xfa, 0x4b, 0x05, 0x16, 0x23, 0xc2, 0x69, 0x0a, 0xdd, 0xde, + 0x86, 0xd9, 0x03, 0x5f, 0xdc, 0xb6, 0x25, 0x72, 0x09, 0x59, 0x22, 0x68, 0xa5, 0x03, 0x7f, 0xdb, + 0x44, 0xef, 0x00, 0x8c, 0x7c, 0x6c, 0xf2, 0xec, 0xdc, 0x84, 0x72, 0xbf, 0x0a, 0x41, 0x65, 0xf9, + 0xbd, 0x5b, 0x50, 0xb5, 0x6c, 0xc7, 0xc4, 0x34, 0x73, 0x6b, 0x4e, 0x2a, 0xf9, 0x03, 0x86, 0xbb, + 0xef, 0x63, 0x53, 0xd5, 0xf9, 0xbe, 0x25, 0xb4, 0xc9, 0x4d, 0xe1, 0x43, 0x58, 0x62, 0xee, 0xe7, + 0x20, 0x14, 0x36, 0xb3, 0xa0, 0x3a, 0xa1, 0x15, 0xad, 0x61, 0xf1, 0x88, 0x45, 0x10, 0xa9, 0x77, + 0xe0, 0x74, 0xa2, 0x38, 0x74, 0xfa, 0x6b, 0xea, 0x8f, 0x12, 0xf7, 0x4d, 0x91, 0xa9, 0x5e, 0x97, + 0x0b, 0xeb, 0xf3, 0x6a, 0x51, 0x79, 0x8d, 0xf7, 0x3e, 0x9c, 0x91, 0x2e, 0xc3, 0x24, 0x59, 0x6e, + 0x25, 0x82, 0xb0, 0x0b, 0xe3, 0xf9, 0x25, 0xa2, 0xb1, 0xff, 0x54, 0x60, 0x39, 0x0b, 0xe1, 0x84, + 0x17, 0xb1, 0xdf, 0x1a, 0xf3, 0x52, 0xce, 0x5b, 0x93, 0x04, 0xfa, 0xbd, 0x5c, 0x5c, 0xef, 0xb0, + 0x92, 0xfe, 0xc9, 0x73, 0x52, 0x9c, 0x6e, 0x4e, 0x7e, 0x53, 0x88, 0x25, 0x1b, 0x72, 0xca, 0xee, + 0x3f, 0xc5, 0xe5, 0xdf, 0x46, 0xa2, 0xea, 0xfe, 0x6a, 0x26, 0xe1, 0x84, 0xa2, 0x7b, 0x2d, 0xeb, + 0x90, 0x7d, 0x7d, 0x12, 0xa7, 0x2f, 0xec, 0xbd, 0xf0, 0x7f, 0x29, 0x50, 0x97, 0x27, 0x04, 0xbd, + 0x9f, 0x51, 0x72, 0xff, 0xd2, 0x84, 0x01, 0x4a, 0x15, 0xf7, 0xbc, 0xc4, 0xbd, 0x30, 0x7d, 0x89, + 0x7b, 0x71, 0xba, 0x12, 0xf7, 0xfb, 0x50, 0x7f, 0xee, 0x59, 0x81, 0xf1, 0x64, 0x80, 0xf5, 0x81, + 0x71, 0x84, 0x3d, 0xee, 0xdd, 0x72, 0xdd, 0x50, 0x4d, 0x90, 0x3c, 0x24, 0x14, 0xea, 0xdf, 0x29, + 0x50, 0x16, 0x62, 0x4c, 0x2c, 0x32, 0x5f, 0x1d, 0x11, 0x34, 0x9d, 0x16, 0xb6, 0xda, 0x86, 0xed, + 0xe8, 0x3e, 0x26, 0x3b, 0xec, 0xc4, 0x92, 0xed, 0x65, 0x4a, 0xb7, 0xe1, 0x78, 0x78, 0xc7, 0xb0, + 0x9d, 0x2e, 0x23, 0x42, 0x6d, 0x68, 0x30, 0x7e, 0x94, 0x15, 0x61, 0x3a, 0xd1, 0xaf, 0xd7, 0x29, + 0x01, 0x61, 0x42, 0x98, 0xf9, 0xea, 0x9f, 0x17, 0xa1, 0x1a, 0xd3, 0xcc, 0x84, 0x01, 0x6c, 0xc0, + 0x92, 0x28, 0x2e, 0xf0, 0x71, 0x30, 0x5d, 0xb5, 0xf9, 0x22, 0xa7, 0xe8, 0xe2, 0x80, 0xed, 0x27, + 0xf7, 0x60, 0xd1, 0x78, 0x66, 0x58, 0x03, 0xaa, 0xf5, 0xa9, 0x36, 0xa3, 0x7a, 0x88, 0x1f, 0xee, + 0x48, 0x6c, 0xdc, 0x53, 0x15, 0xa1, 0x03, 0xc5, 0x8d, 0x2a, 0xde, 0x7d, 0x3f, 0x56, 0xa0, 0x92, + 0x5b, 0xf1, 0xee, 0xfb, 0x61, 0x7f, 0xb4, 0x20, 0x96, 0xd6, 0xf8, 0xfb, 0xfc, 0xdd, 0xdd, 0xf1, + 0xfd, 0x11, 0xdc, 0x0f, 0x28, 0x2a, 0x51, 0xd8, 0xd0, 0xf8, 0xd8, 0xf1, 0xf4, 0x38, 0xfd, 0xfc, + 0x04, 0x85, 0x51, 0x8a, 0x4e, 0xc8, 0x44, 0x7d, 0x0f, 0xce, 0x68, 0xd8, 0x71, 0xb1, 0x1d, 0xae, + 0x93, 0x87, 0x4e, 0xff, 0x18, 0x3b, 0xdd, 0x59, 0x68, 0x65, 0xd1, 0xf3, 0xb8, 0x74, 0x04, 0xad, + 0x8d, 0x43, 0xdc, 0x7b, 0x4a, 0xa3, 0x91, 0x93, 0xe4, 0x97, 0x5b, 0x50, 0x1e, 0x38, 0x3d, 0xf6, + 0x75, 0x2a, 0x7e, 0x74, 0x13, 0xcf, 0x39, 0xb7, 0x66, 0xe7, 0x60, 0x2d, 0xb3, 0x5b, 0x2e, 0x15, + 0x82, 0xc6, 0x03, 0x1c, 0x6c, 0x3d, 0xc3, 0x76, 0xb8, 0x91, 0xaa, 0xff, 0xa3, 0xc4, 0xb6, 0x6c, + 0xda, 0x74, 0x8c, 0xbc, 0x3c, 0xea, 0xc0, 0x72, 0x84, 0x82, 0x09, 0x35, 0xfb, 0x3a, 0x0d, 0xfb, + 0xae, 0x53, 0xf6, 0x9d, 0x3d, 0xed, 0x84, 0x7e, 0x94, 0x06, 0xf5, 0x52, 0xb0, 0x44, 0x26, 0xa7, + 0x98, 0xcc, 0xe4, 0x74, 0x60, 0x39, 0xbe, 0x29, 0x87, 0x9b, 0x4c, 0x69, 0xaa, 0x77, 0xbb, 0x90, + 0x9b, 0x82, 0x5d, 0x79, 0x05, 0xca, 0xe2, 0x83, 0x68, 0x68, 0x1e, 0x8a, 0x7b, 0x1b, 0x9d, 0xc6, + 0x0c, 0xf9, 0xb3, 0xbf, 0xd9, 0x69, 0x28, 0xa8, 0x0c, 0xa5, 0xee, 0xc6, 0x5e, 0xa7, 0x51, 0xb8, + 0x32, 0x84, 0x46, 0xf2, 0x9b, 0x60, 0x68, 0x15, 0x4e, 0x75, 0xb4, 0xdd, 0x4e, 0xfb, 0x41, 0x7b, + 0x6f, 0x7b, 0x77, 0x47, 0xef, 0x68, 0xdb, 0x8f, 0xdb, 0x7b, 0x5b, 0x8d, 0x19, 0x74, 0x11, 0xce, + 0xc5, 0x1b, 0x3e, 0xdc, 0xed, 0xee, 0xe9, 0x7b, 0xbb, 0xfa, 0xc6, 0xee, 0xce, 0x5e, 0x7b, 0x7b, + 0x67, 0x4b, 0x6b, 0x28, 0xe8, 0x1c, 0x9c, 0x89, 0xa3, 0xdc, 0xdf, 0xde, 0xdc, 0xd6, 0xb6, 0x36, + 0xc8, 0xff, 0xf6, 0xc3, 0x46, 0xe1, 0xca, 0xbb, 0x50, 0x93, 0x3e, 0x6e, 0x45, 0x44, 0xea, 0xec, + 0x6e, 0x36, 0x66, 0x50, 0x0d, 0x2a, 0x71, 0x3e, 0x65, 0x28, 0xed, 0xec, 0x6e, 0x6e, 0x35, 0x0a, + 0x08, 0x60, 0x6e, 0xaf, 0xad, 0x3d, 0xd8, 0xda, 0x6b, 0x14, 0xaf, 0xdc, 0x49, 0xbe, 0xa4, 0x85, + 0xd1, 0x12, 0xd4, 0xba, 0xed, 0x9d, 0xcd, 0xfb, 0xbb, 0xdf, 0xd0, 0xb5, 0xad, 0xf6, 0xe6, 0x37, + 0x1b, 0x33, 0x68, 0x19, 0x1a, 0x02, 0xb4, 0xb3, 0xbb, 0xc7, 0xa0, 0xca, 0x95, 0xa7, 0x89, 0xcd, + 0x06, 0xa3, 0xd3, 0xb0, 0x14, 0x76, 0xa9, 0x6f, 0x68, 0x5b, 0xed, 0xbd, 0x2d, 0x22, 0x89, 0x04, + 0xd6, 0xf6, 0x77, 0x76, 0xb6, 0x77, 0x1e, 0x34, 0x14, 0xc2, 0x35, 0x02, 0x6f, 0x7d, 0x63, 0x9b, + 0x20, 0x17, 0x64, 0xe4, 0xfd, 0x9d, 0xaf, 0xee, 0xec, 0x7e, 0x7d, 0xa7, 0x51, 0xbc, 0xf2, 0xff, + 0xe3, 0x49, 0x86, 0xc8, 0x0c, 0xd6, 0x60, 0x35, 0xd5, 0xa3, 0xbe, 0xf5, 0x78, 0x6b, 0x67, 0xaf, + 0x31, 0x23, 0x37, 0x76, 0xf7, 0xda, 0x5a, 0xd4, 0xa8, 0x24, 0x1b, 0x77, 0x3b, 0x9d, 0xb0, 0xb1, + 0x20, 0x37, 0x6e, 0x6e, 0x3d, 0xdc, 0x8a, 0x28, 0x8b, 0x37, 0x7e, 0x1a, 0x7d, 0xe3, 0xa8, 0x8b, + 0x3d, 0x5a, 0x08, 0xb7, 0x09, 0xf3, 0xe2, 0x8b, 0x7f, 0x52, 0x74, 0x24, 0x7f, 0xa1, 0xb0, 0xb5, + 0x96, 0xd9, 0xc6, 0x57, 0xdd, 0x0c, 0x7a, 0x4c, 0xcf, 0x8c, 0xb1, 0x37, 0x9a, 0x2f, 0x24, 0xce, + 0x69, 0xa9, 0x17, 0xa7, 0x5b, 0x17, 0x73, 0x30, 0x42, 0xbe, 0xdf, 0x24, 0x07, 0xc2, 0xf8, 0xe7, + 0x3c, 0xd0, 0x45, 0xf9, 0x3c, 0x97, 0xf1, 0xa5, 0x90, 0x96, 0x9a, 0x87, 0x12, 0xb2, 0xd6, 0xa1, + 0x91, 0xfc, 0x9c, 0x07, 0x92, 0xd2, 0x24, 0x63, 0xbe, 0x16, 0xd2, 0xfa, 0x52, 0x3e, 0x52, 0xbc, + 0x83, 0xd4, 0x57, 0x2a, 0x2e, 0xe5, 0xbf, 0xf7, 0x9f, 0xd1, 0xc1, 0xb8, 0x8f, 0x03, 0x30, 0xe5, + 0xc8, 0x2f, 0x9d, 0xa2, 0xc4, 0x87, 0x21, 0x32, 0xde, 0x57, 0x97, 0x95, 0x93, 0xfd, 0xae, 0xb2, + 0x3a, 0x83, 0xfe, 0x0f, 0x2c, 0x26, 0x6a, 0x99, 0x90, 0x44, 0x98, 0x5d, 0xa2, 0xd5, 0xba, 0x94, + 0x8b, 0x23, 0xcf, 0x6a, 0xbc, 0x5e, 0x29, 0x39, 0xab, 0x19, 0x75, 0x50, 0xc9, 0x59, 0xcd, 0x2c, + 0x77, 0xa2, 0x86, 0x28, 0xd5, 0x26, 0xc9, 0x86, 0x98, 0x55, 0x0b, 0xd5, 0xba, 0x98, 0x83, 0x11, + 0x57, 0x48, 0xa2, 0x3a, 0x49, 0x56, 0x48, 0x76, 0xdd, 0x53, 0xeb, 0x52, 0x2e, 0x4e, 0x72, 0x26, + 0xa3, 0xaa, 0x88, 0xf4, 0x4c, 0xa6, 0x2a, 0x73, 0xd2, 0x33, 0x99, 0x2e, 0xaa, 0xe0, 0x33, 0x99, + 0xa8, 0x63, 0x50, 0x73, 0x73, 0xac, 0x59, 0x33, 0x99, 0x9d, 0x87, 0x55, 0x67, 0xd0, 0x73, 0x68, + 0x8e, 0x4b, 0xa5, 0xa1, 0xab, 0xc7, 0xc8, 0xf8, 0xb5, 0x5e, 0x9f, 0x0e, 0x39, 0xec, 0x18, 0x03, + 0x4a, 0x07, 0x27, 0xe8, 0x65, 0x59, 0xdd, 0x63, 0x82, 0x9f, 0xd6, 0x2b, 0x93, 0xd0, 0xc2, 0x6e, + 0x1e, 0x40, 0x59, 0x24, 0xe9, 0x90, 0xe4, 0x02, 0x13, 0xc9, 0xc1, 0xd6, 0xd9, 0xec, 0xc6, 0x90, + 0xd1, 0x57, 0xa0, 0x44, 0xa0, 0x68, 0x35, 0x89, 0x27, 0x18, 0x34, 0xd3, 0x0d, 0x21, 0x71, 0x1b, + 0xe6, 0x58, 0xf6, 0x09, 0x49, 0xd7, 0x5f, 0x52, 0x76, 0xac, 0xd5, 0xca, 0x6a, 0x0a, 0x59, 0x74, + 0xd8, 0xf7, 0x53, 0x79, 0x32, 0x09, 0x9d, 0x4f, 0x7e, 0xc8, 0x4b, 0xce, 0x5a, 0xb5, 0x5e, 0x1a, + 0xdb, 0x1e, 0xb7, 0xd9, 0xc4, 0x81, 0xed, 0x62, 0xce, 0xe9, 0x3a, 0xcb, 0x66, 0xb3, 0xcf, 0xec, + 0x6c, 0x72, 0xd3, 0x67, 0x7a, 0x79, 0x72, 0xc7, 0xde, 0x9b, 0xc8, 0x93, 0x3b, 0xfe, 0x6a, 0x80, + 0x2d, 0x8d, 0xe4, 0x5b, 0xd1, 0x6a, 0xde, 0x9b, 0xf9, 0x59, 0x4b, 0x63, 0xcc, 0x1b, 0xff, 0xea, + 0x0c, 0x3a, 0x84, 0x53, 0x19, 0x9f, 0x04, 0x40, 0xaf, 0x8c, 0xf7, 0xbf, 0x52, 0x2f, 0xaf, 0x4e, + 0xc4, 0x8b, 0xf7, 0x94, 0x71, 0x83, 0x2c, 0xf7, 0x34, 0xfe, 0x0a, 0x5b, 0xee, 0x29, 0xef, 0x2a, + 0x9a, 0x1a, 0x22, 0xf7, 0x21, 0x67, 0xb2, 0xae, 0x55, 0x33, 0x0c, 0x31, 0xe5, 0x31, 0x0e, 0xe1, + 0x54, 0x46, 0x00, 0x2f, 0x0b, 0x3b, 0xfe, 0x60, 0x21, 0x0b, 0x9b, 0x77, 0x12, 0x98, 0x41, 0xdf, + 0x02, 0xf4, 0x00, 0x07, 0x72, 0xe4, 0xe5, 0x23, 0x69, 0xa1, 0x26, 0xcf, 0x0a, 0x63, 0xec, 0x53, + 0x3a, 0x34, 0xa8, 0x33, 0xd7, 0x95, 0x1b, 0x7f, 0x56, 0x84, 0x05, 0x96, 0xbf, 0xe0, 0x61, 0xd4, + 0x23, 0x80, 0x28, 0x15, 0x88, 0xce, 0x25, 0x27, 0x4f, 0xca, 0xaf, 0xb6, 0xce, 0x8f, 0x6b, 0x8e, + 0x2f, 0xd7, 0x58, 0x8a, 0x4d, 0x5e, 0xae, 0xe9, 0x8c, 0xa1, 0xbc, 0x5c, 0x33, 0x72, 0x73, 0xea, + 0x0c, 0xfa, 0x08, 0x2a, 0x61, 0x46, 0x47, 0x56, 0x42, 0x32, 0x35, 0xd5, 0x3a, 0x37, 0xa6, 0x35, + 0x2e, 0x5d, 0x2c, 0x51, 0x23, 0x4b, 0x97, 0x4e, 0x02, 0xc9, 0xd2, 0x65, 0x65, 0x78, 0xa2, 0xf1, + 0xb2, 0x2b, 0xdf, 0x8c, 0xf1, 0x4a, 0x37, 0xeb, 0x19, 0xe3, 0x95, 0xef, 0x8a, 0xd5, 0x99, 0xfb, + 0xf7, 0x7e, 0xf6, 0xeb, 0xf3, 0xca, 0x2f, 0x7f, 0x7d, 0x7e, 0xe6, 0xff, 0x7d, 0x72, 0x5e, 0xf9, + 0xd9, 0x27, 0xe7, 0x95, 0x5f, 0x7c, 0x72, 0x5e, 0xf9, 0xd5, 0x27, 0xe7, 0x95, 0xef, 0xff, 0xc7, + 0xf9, 0x99, 0x6f, 0xa9, 0x4f, 0x6f, 0xf9, 0xeb, 0x96, 0x73, 0xad, 0xe7, 0x59, 0x6f, 0x18, 0xae, + 0x75, 0xcd, 0x7d, 0xda, 0xbf, 0x66, 0xb8, 0x96, 0x7f, 0x8d, 0xf3, 0xbd, 0xf6, 0xec, 0xcd, 0x27, + 0x73, 0xf4, 0xdb, 0xd1, 0x6f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x94, 0xf5, 0x05, 0x82, + 0xf5, 0x5b, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -8656,7 +8995,8 @@ type RuntimeServiceClient interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -8686,6 +9026,10 @@ type RuntimeServiceClient interface { UpdateRuntimeConfig(ctx context.Context, in *UpdateRuntimeConfigRequest, opts ...grpc.CallOption) (*UpdateRuntimeConfigResponse, error) // Status returns the status of the runtime. Status(ctx context.Context, in *StatusRequest, opts ...grpc.CallOption) (*StatusResponse, error) + // CheckpointContainer checkpoints a container + CheckpointContainer(ctx context.Context, in *CheckpointContainerRequest, opts ...grpc.CallOption) (*CheckpointContainerResponse, error) + // GetContainerEvents gets container events from the CRI runtime + GetContainerEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (RuntimeService_GetContainerEventsClient, error) } type runtimeServiceClient struct { @@ -8912,6 +9256,47 @@ func (c *runtimeServiceClient) Status(ctx context.Context, in *StatusRequest, op return out, nil } +func (c *runtimeServiceClient) CheckpointContainer(ctx context.Context, in *CheckpointContainerRequest, opts ...grpc.CallOption) (*CheckpointContainerResponse, error) { + out := new(CheckpointContainerResponse) + err := c.cc.Invoke(ctx, "/runtime.v1.RuntimeService/CheckpointContainer", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *runtimeServiceClient) GetContainerEvents(ctx context.Context, in *GetEventsRequest, opts ...grpc.CallOption) (RuntimeService_GetContainerEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &_RuntimeService_serviceDesc.Streams[0], "/runtime.v1.RuntimeService/GetContainerEvents", opts...) + if err != nil { + return nil, err + } + x := &runtimeServiceGetContainerEventsClient{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 RuntimeService_GetContainerEventsClient interface { + Recv() (*ContainerEventResponse, error) + grpc.ClientStream +} + +type runtimeServiceGetContainerEventsClient struct { + grpc.ClientStream +} + +func (x *runtimeServiceGetContainerEventsClient) Recv() (*ContainerEventResponse, error) { + m := new(ContainerEventResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + // RuntimeServiceServer is the server API for RuntimeService service. type RuntimeServiceServer interface { // Version returns the runtime name, runtime version, and runtime API version. @@ -8959,7 +9344,8 @@ type RuntimeServiceServer interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(context.Context, *ContainerStatusRequest) (*ContainerStatusResponse, error) - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. UpdateContainerResources(context.Context, *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error) // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -8989,6 +9375,10 @@ type RuntimeServiceServer interface { UpdateRuntimeConfig(context.Context, *UpdateRuntimeConfigRequest) (*UpdateRuntimeConfigResponse, error) // Status returns the status of the runtime. Status(context.Context, *StatusRequest) (*StatusResponse, error) + // CheckpointContainer checkpoints a container + CheckpointContainer(context.Context, *CheckpointContainerRequest) (*CheckpointContainerResponse, error) + // GetContainerEvents gets container events from the CRI runtime + GetContainerEvents(*GetEventsRequest, RuntimeService_GetContainerEventsServer) error } // UnimplementedRuntimeServiceServer can be embedded to have forward compatible implementations. @@ -9067,6 +9457,12 @@ func (*UnimplementedRuntimeServiceServer) UpdateRuntimeConfig(ctx context.Contex func (*UnimplementedRuntimeServiceServer) Status(ctx context.Context, req *StatusRequest) (*StatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method Status not implemented") } +func (*UnimplementedRuntimeServiceServer) CheckpointContainer(ctx context.Context, req *CheckpointContainerRequest) (*CheckpointContainerResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CheckpointContainer not implemented") +} +func (*UnimplementedRuntimeServiceServer) GetContainerEvents(req *GetEventsRequest, srv RuntimeService_GetContainerEventsServer) error { + return status.Errorf(codes.Unimplemented, "method GetContainerEvents not implemented") +} func RegisterRuntimeServiceServer(s *grpc.Server, srv RuntimeServiceServer) { s.RegisterService(&_RuntimeService_serviceDesc, srv) @@ -9504,6 +9900,45 @@ func _RuntimeService_Status_Handler(srv interface{}, ctx context.Context, dec fu return interceptor(ctx, in, info, handler) } +func _RuntimeService_CheckpointContainer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CheckpointContainerRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RuntimeServiceServer).CheckpointContainer(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/runtime.v1.RuntimeService/CheckpointContainer", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RuntimeServiceServer).CheckpointContainer(ctx, req.(*CheckpointContainerRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _RuntimeService_GetContainerEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(GetEventsRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RuntimeServiceServer).GetContainerEvents(m, &runtimeServiceGetContainerEventsServer{stream}) +} + +type RuntimeService_GetContainerEventsServer interface { + Send(*ContainerEventResponse) error + grpc.ServerStream +} + +type runtimeServiceGetContainerEventsServer struct { + grpc.ServerStream +} + +func (x *runtimeServiceGetContainerEventsServer) Send(m *ContainerEventResponse) error { + return x.ServerStream.SendMsg(m) +} + var _RuntimeService_serviceDesc = grpc.ServiceDesc{ ServiceName: "runtime.v1.RuntimeService", HandlerType: (*RuntimeServiceServer)(nil), @@ -9604,8 +10039,18 @@ var _RuntimeService_serviceDesc = grpc.ServiceDesc{ MethodName: "Status", Handler: _RuntimeService_Status_Handler, }, + { + MethodName: "CheckpointContainer", + Handler: _RuntimeService_CheckpointContainer_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "GetContainerEvents", + Handler: _RuntimeService_GetContainerEvents_Handler, + ServerStreams: true, + }, }, - Streams: []grpc.StreamDesc{}, Metadata: "api.proto", } @@ -13783,6 +14228,20 @@ func (m *ContainerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Resources != nil { + { + size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } if len(m.LogPath) > 0 { i -= len(m.LogPath) copy(dAtA[i:], m.LogPath) @@ -13976,6 +14435,53 @@ func (m *ContainerStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *ContainerResources) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerResources) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Windows != nil { + { + size, err := m.Windows.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Linux != nil { + { + size, err := m.Linux.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *UpdateContainerResourcesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14388,21 +14894,21 @@ func (m *PortForwardRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.Port) > 0 { - dAtA73 := make([]byte, len(m.Port)*10) - var j72 int + dAtA76 := make([]byte, len(m.Port)*10) + var j75 int for _, num1 := range m.Port { num := uint64(num1) for num >= 1<<7 { - dAtA73[j72] = uint8(uint64(num)&0x7f | 0x80) + dAtA76[j75] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j72++ + j75++ } - dAtA73[j72] = uint8(num) - j72++ + dAtA76[j75] = uint8(num) + j75++ } - i -= j72 - copy(dAtA[i:], dAtA73[:j72]) - i = encodeVarintApi(dAtA, i, uint64(j72)) + i -= j75 + copy(dAtA[i:], dAtA76[:j75]) + i = encodeVarintApi(dAtA, i, uint64(j75)) i-- dAtA[i] = 0x12 } @@ -15990,6 +16496,146 @@ func (m *ReopenContainerLogResponse) MarshalToSizedBuffer(dAtA []byte) (int, err return len(dAtA) - i, nil } +func (m *CheckpointContainerRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CheckpointContainerRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CheckpointContainerRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Timeout != 0 { + i = encodeVarintApi(dAtA, i, uint64(m.Timeout)) + i-- + dAtA[i] = 0x18 + } + if len(m.Location) > 0 { + i -= len(m.Location) + copy(dAtA[i:], m.Location) + i = encodeVarintApi(dAtA, i, uint64(len(m.Location))) + i-- + dAtA[i] = 0x12 + } + if len(m.ContainerId) > 0 { + i -= len(m.ContainerId) + copy(dAtA[i:], m.ContainerId) + i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CheckpointContainerResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CheckpointContainerResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CheckpointContainerResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *GetEventsRequest) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GetEventsRequest) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GetEventsRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + return len(dAtA) - i, nil +} + +func (m *ContainerEventResponse) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerEventResponse) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerEventResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.PodSandboxMetadata != nil { + { + size, err := m.PodSandboxMetadata.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.CreatedAt != 0 { + i = encodeVarintApi(dAtA, i, uint64(m.CreatedAt)) + i-- + dAtA[i] = 0x18 + } + if m.ContainerEventType != 0 { + i = encodeVarintApi(dAtA, i, uint64(m.ContainerEventType)) + i-- + dAtA[i] = 0x10 + } + if len(m.ContainerId) > 0 { + i -= len(m.ContainerId) + copy(dAtA[i:], m.ContainerId) + i = encodeVarintApi(dAtA, i, uint64(len(m.ContainerId))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintApi(dAtA []byte, offset int, v uint64) int { offset -= sovApi(v) base := offset @@ -17714,6 +18360,10 @@ func (m *ContainerStatus) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Resources != nil { + l = m.Resources.Size() + n += 2 + l + sovApi(uint64(l)) + } return n } @@ -17738,6 +18388,23 @@ func (m *ContainerStatusResponse) Size() (n int) { return n } +func (m *ContainerResources) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Linux != nil { + l = m.Linux.Size() + n += 1 + l + sovApi(uint64(l)) + } + if m.Windows != nil { + l = m.Windows.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + func (m *UpdateContainerResourcesRequest) Size() (n int) { if m == nil { return 0 @@ -18551,6 +19218,67 @@ func (m *ReopenContainerLogResponse) Size() (n int) { return n } +func (m *CheckpointContainerRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContainerId) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + l = len(m.Location) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.Timeout != 0 { + n += 1 + sovApi(uint64(m.Timeout)) + } + return n +} + +func (m *CheckpointContainerResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *GetEventsRequest) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + return n +} + +func (m *ContainerEventResponse) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ContainerId) + if l > 0 { + n += 1 + l + sovApi(uint64(l)) + } + if m.ContainerEventType != 0 { + n += 1 + sovApi(uint64(m.ContainerEventType)) + } + if m.CreatedAt != 0 { + n += 1 + sovApi(uint64(m.CreatedAt)) + } + if m.PodSandboxMetadata != nil { + l = m.PodSandboxMetadata.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + func sovApi(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -19748,6 +20476,7 @@ func (this *ContainerStatus) String() string { `Annotations:` + mapStringForAnnotations + `,`, `Mounts:` + repeatedStringForMounts + `,`, `LogPath:` + fmt.Sprintf("%v", this.LogPath) + `,`, + `Resources:` + strings.Replace(this.Resources.String(), "ContainerResources", "ContainerResources", 1) + `,`, `}`, }, "") return s @@ -19773,6 +20502,17 @@ func (this *ContainerStatusResponse) String() string { }, "") return s } +func (this *ContainerResources) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ContainerResources{`, + `Linux:` + strings.Replace(this.Linux.String(), "LinuxContainerResources", "LinuxContainerResources", 1) + `,`, + `Windows:` + strings.Replace(this.Windows.String(), "WindowsContainerResources", "WindowsContainerResources", 1) + `,`, + `}`, + }, "") + return s +} func (this *UpdateContainerResourcesRequest) String() string { if this == nil { return "nil" @@ -20354,6 +21094,49 @@ func (this *ReopenContainerLogResponse) String() string { }, "") return s } +func (this *CheckpointContainerRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CheckpointContainerRequest{`, + `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `Location:` + fmt.Sprintf("%v", this.Location) + `,`, + `Timeout:` + fmt.Sprintf("%v", this.Timeout) + `,`, + `}`, + }, "") + return s +} +func (this *CheckpointContainerResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CheckpointContainerResponse{`, + `}`, + }, "") + return s +} +func (this *GetEventsRequest) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GetEventsRequest{`, + `}`, + }, "") + return s +} +func (this *ContainerEventResponse) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ContainerEventResponse{`, + `ContainerId:` + fmt.Sprintf("%v", this.ContainerId) + `,`, + `ContainerEventType:` + fmt.Sprintf("%v", this.ContainerEventType) + `,`, + `CreatedAt:` + fmt.Sprintf("%v", this.CreatedAt) + `,`, + `PodSandboxMetadata:` + strings.Replace(this.PodSandboxMetadata.String(), "PodSandboxMetadata", "PodSandboxMetadata", 1) + `,`, + `}`, + }, "") + return s +} func valueToStringApi(v interface{}) string { rv := reflect.ValueOf(v) if rv.IsNil() { @@ -33411,6 +34194,42 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { } m.LogPath = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resources == nil { + m.Resources = &ContainerResources{} + } + if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -33645,6 +34464,128 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *ContainerResources) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerResources: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerResources: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Linux == nil { + m.Linux = &LinuxContainerResources{} + } + if err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Windows", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Windows == nil { + m.Windows = &WindowsContainerResources{} + } + if err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -39490,6 +40431,395 @@ func (m *ReopenContainerLogResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *CheckpointContainerRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CheckpointContainerRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CheckpointContainerRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Location", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Location = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType) + } + m.Timeout = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Timeout |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CheckpointContainerResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CheckpointContainerResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CheckpointContainerResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GetEventsRequest) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GetEventsRequest: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GetEventsRequest: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ContainerEventResponse) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerEventResponse: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerEventResponse: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerId", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerId = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerEventType", wireType) + } + m.ContainerEventType = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ContainerEventType |= ContainerEventType(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedAt", wireType) + } + m.CreatedAt = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.CreatedAt |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field PodSandboxMetadata", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.PodSandboxMetadata == nil { + m.PodSandboxMetadata = &PodSandboxMetadata{} + } + if err := m.PodSandboxMetadata.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipApi(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto index 05466a16c..9feb4b245 100644 --- a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto +++ b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1/api.proto @@ -79,7 +79,8 @@ service RuntimeService { // ContainerStatus returns status of the container. If the container is not // present, returns an error. rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -114,6 +115,13 @@ service RuntimeService { // Status returns the status of the runtime. rpc Status(StatusRequest) returns (StatusResponse) {} + + // CheckpointContainer checkpoints a container + rpc CheckpointContainer(CheckpointContainerRequest) returns (CheckpointContainerResponse) {} + + // GetContainerEvents gets container events from the CRI runtime + rpc GetContainerEvents(GetEventsRequest) returns (stream ContainerEventResponse) {} + } // ImageService defines the public APIs for managing images. @@ -755,7 +763,7 @@ message SELinuxOption { // Capability contains the container capabilities to add or drop // Dropping a capability will drop it from all sets. -// If a capability is added to only the add_capabilities list then it gets added to permitted, +// If a capability is added to only the add_capabilities list then it gets added to permitted, // inheritable, effective and bounding sets, i.e. all sets except the ambient set. // If a capability is added to only the add_ambient_capabilities list then it gets added to all sets, i.e permitted // inheritable, effective, bounding and ambient sets. @@ -1151,6 +1159,8 @@ message ContainerStatus { repeated Mount mounts = 14; // Log path of container. string log_path = 15; + // Resource limits configuration of the container. + ContainerResources resources = 16; } message ContainerStatusResponse { @@ -1163,6 +1173,14 @@ message ContainerStatusResponse { map info = 2; } +// ContainerResources holds resource limits configuration for a container. +message ContainerResources { + // Resource limits configuration specific to Linux container. + LinuxContainerResources linux = 1; + // Resource limits configuration specific to Windows container. + WindowsContainerResources windows = 2; +} + message UpdateContainerResourcesRequest { // ID of the container to update. string container_id = 1; @@ -1543,3 +1561,46 @@ message ReopenContainerLogRequest { message ReopenContainerLogResponse{ } + +message CheckpointContainerRequest { + // ID of the container to be checkpointed. + string container_id = 1; + // Location of the checkpoint archive used for export + string location = 2; + // Timeout in seconds for the checkpoint to complete. + // Timeout of zero means to use the CRI default. + // Timeout > 0 means to use the user specified timeout. + int64 timeout = 3; +} + +message CheckpointContainerResponse {} + +message GetEventsRequest {} + +message ContainerEventResponse { + // ID of the container + string container_id = 1; + + // Type of the container event + ContainerEventType container_event_type = 2; + + // Creation timestamp of this event + int64 created_at = 3; + + // ID of the sandbox container + PodSandboxMetadata pod_sandbox_metadata = 4; +} + +enum ContainerEventType { + // Container created + CONTAINER_CREATED_EVENT = 0; + + // Container started + CONTAINER_STARTED_EVENT = 1; + + // Container stopped + CONTAINER_STOPPED_EVENT = 2; + + // Container deleted + CONTAINER_DELETED_EVENT = 3; +} diff --git a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go index 3538c17b9..df3e37de7 100644 --- a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go +++ b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.pb.go @@ -865,9 +865,9 @@ func (m *Int64Value) GetValue() int64 { // LinuxSandboxSecurityContext holds linux security configuration that will be // applied to a sandbox. Note that: -// 1) It does not apply to containers in the pods. -// 2) It may not be applicable to a PodSandbox which does not contain any running -// process. +// 1. It does not apply to containers in the pods. +// 2. It may not be applicable to a PodSandbox which does not contain any running +// process. type LinuxSandboxSecurityContext struct { // Configurations for the sandbox's namespaces. // This will be used only if the PodSandbox uses namespace for isolation. @@ -895,10 +895,11 @@ type LinuxSandboxSecurityContext struct { // AppArmor profile for the sandbox. Apparmor *SecurityProfile `protobuf:"bytes,10,opt,name=apparmor,proto3" json:"apparmor,omitempty"` // Seccomp profile for the sandbox, candidate values are: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. + // - runtime/default: the default profile for the container runtime + // - unconfined: unconfined profile, ie, no seccomp sandboxing + // - localhost/: the profile installed on the node. + // is the full path of the profile. + // // Default: "", which is identical with unconfined. SeccompProfilePath string `protobuf:"bytes,7,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` // Deprecated: Do not use. XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1249,8 +1250,9 @@ type PodSandboxConfig struct { // containers. For example, the files might be newline separated JSON // structured logs, systemd-journald journal files, gRPC trace files, etc. // E.g., - // PodSandboxConfig.LogDirectory = `/var/log/pods//` - // ContainerConfig.LogPath = `containerName/Instance#.log` + // + // PodSandboxConfig.LogDirectory = `/var/log/pods//` + // ContainerConfig.LogPath = `containerName/Instance#.log` LogDirectory string `protobuf:"bytes,3,opt,name=log_directory,json=logDirectory,proto3" json:"log_directory,omitempty"` // DNS config for the sandbox. DnsConfig *DNSConfig `protobuf:"bytes,4,opt,name=dns_config,json=dnsConfig,proto3" json:"dns_config,omitempty"` @@ -3603,17 +3605,18 @@ type LinuxContainerSecurityContext struct { // AppArmor profile for the container. Apparmor *SecurityProfile `protobuf:"bytes,16,opt,name=apparmor,proto3" json:"apparmor,omitempty"` // AppArmor profile for the container, candidate values are: - // * runtime/default: equivalent to not specifying a profile. - // * unconfined: no profiles are loaded - // * localhost/: profile loaded on the node - // (localhost) by name. The possible profile names are detailed at - // https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference + // - runtime/default: equivalent to not specifying a profile. + // - unconfined: no profiles are loaded + // - localhost/: profile loaded on the node + // (localhost) by name. The possible profile names are detailed at + // https://gitlab.com/apparmor/apparmor/-/wikis/AppArmor_Core_Policy_Reference ApparmorProfile string `protobuf:"bytes,9,opt,name=apparmor_profile,json=apparmorProfile,proto3" json:"apparmor_profile,omitempty"` // Deprecated: Do not use. // Seccomp profile for the container, candidate values are: - // * runtime/default: the default profile for the container runtime - // * unconfined: unconfined profile, ie, no seccomp sandboxing - // * localhost/: the profile installed on the node. - // is the full path of the profile. + // - runtime/default: the default profile for the container runtime + // - unconfined: unconfined profile, ie, no seccomp sandboxing + // - localhost/: the profile installed on the node. + // is the full path of the profile. + // // Default: "", which is identical with unconfined. SeccompProfilePath string `protobuf:"bytes,10,opt,name=seccomp_profile_path,json=seccompProfilePath,proto3" json:"seccomp_profile_path,omitempty"` // Deprecated: Do not use. XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -4300,10 +4303,11 @@ type ContainerConfig struct { Devices []*Device `protobuf:"bytes,8,rep,name=devices,proto3" json:"devices,omitempty"` // Key-value pairs that may be used to scope and select individual resources. // Label keys are of the form: - // label-key ::= prefixed-name | name - // prefixed-name ::= prefix '/' name - // prefix ::= DNS_SUBDOMAIN - // name ::= DNS_LABEL + // + // label-key ::= prefixed-name | name + // prefixed-name ::= prefix '/' name + // prefix ::= DNS_SUBDOMAIN + // name ::= DNS_LABEL Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Unstructured key-value map that may be used by the kubelet to store and // retrieve arbitrary metadata. @@ -4319,8 +4323,9 @@ type ContainerConfig struct { // Path relative to PodSandboxConfig.LogDirectory for container to store // the log (STDOUT and STDERR) on the host. // E.g., - // PodSandboxConfig.LogDirectory = `/var/log/pods//` - // ContainerConfig.LogPath = `containerName/Instance#.log` + // + // PodSandboxConfig.LogDirectory = `/var/log/pods//` + // ContainerConfig.LogPath = `containerName/Instance#.log` // // WARNING: Log management and how kubelet should interface with the // container logs are under active discussion in @@ -5287,9 +5292,11 @@ type ContainerStatus struct { // Mounts for the container. Mounts []*Mount `protobuf:"bytes,14,rep,name=mounts,proto3" json:"mounts,omitempty"` // Log path of container. - LogPath string `protobuf:"bytes,15,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_sizecache int32 `json:"-"` + LogPath string `protobuf:"bytes,15,opt,name=log_path,json=logPath,proto3" json:"log_path,omitempty"` + // Resource limits configuration of the container. + Resources *ContainerResources `protobuf:"bytes,16,opt,name=resources,proto3" json:"resources,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } @@ -5429,6 +5436,13 @@ func (m *ContainerStatus) GetLogPath() string { return "" } +func (m *ContainerStatus) GetResources() *ContainerResources { + if m != nil { + return m.Resources + } + return nil +} + type ContainerStatusResponse struct { // Status of the container. Status *ContainerStatus `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` @@ -5487,6 +5501,62 @@ func (m *ContainerStatusResponse) GetInfo() map[string]string { return nil } +// ContainerResources holds resource limits configuration for a container. +type ContainerResources struct { + // Resource limits configuration specific to Linux container. + Linux *LinuxContainerResources `protobuf:"bytes,1,opt,name=linux,proto3" json:"linux,omitempty"` + // Resource limits configuration specific to Windows container. + Windows *WindowsContainerResources `protobuf:"bytes,2,opt,name=windows,proto3" json:"windows,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ContainerResources) Reset() { *m = ContainerResources{} } +func (*ContainerResources) ProtoMessage() {} +func (*ContainerResources) Descriptor() ([]byte, []int) { + return fileDescriptor_00212fb1f9d3bf1c, []int{76} +} +func (m *ContainerResources) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerResources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_ContainerResources.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *ContainerResources) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerResources.Merge(m, src) +} +func (m *ContainerResources) XXX_Size() int { + return m.Size() +} +func (m *ContainerResources) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerResources.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerResources proto.InternalMessageInfo + +func (m *ContainerResources) GetLinux() *LinuxContainerResources { + if m != nil { + return m.Linux + } + return nil +} + +func (m *ContainerResources) GetWindows() *WindowsContainerResources { + if m != nil { + return m.Windows + } + return nil +} + type UpdateContainerResourcesRequest struct { // ID of the container to update. ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` @@ -5505,7 +5575,7 @@ type UpdateContainerResourcesRequest struct { func (m *UpdateContainerResourcesRequest) Reset() { *m = UpdateContainerResourcesRequest{} } func (*UpdateContainerResourcesRequest) ProtoMessage() {} func (*UpdateContainerResourcesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{76} + return fileDescriptor_00212fb1f9d3bf1c, []int{77} } func (m *UpdateContainerResourcesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5570,7 +5640,7 @@ type UpdateContainerResourcesResponse struct { func (m *UpdateContainerResourcesResponse) Reset() { *m = UpdateContainerResourcesResponse{} } func (*UpdateContainerResourcesResponse) ProtoMessage() {} func (*UpdateContainerResourcesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{77} + return fileDescriptor_00212fb1f9d3bf1c, []int{78} } func (m *UpdateContainerResourcesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5613,7 +5683,7 @@ type ExecSyncRequest struct { func (m *ExecSyncRequest) Reset() { *m = ExecSyncRequest{} } func (*ExecSyncRequest) ProtoMessage() {} func (*ExecSyncRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{78} + return fileDescriptor_00212fb1f9d3bf1c, []int{79} } func (m *ExecSyncRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5677,7 +5747,7 @@ type ExecSyncResponse struct { func (m *ExecSyncResponse) Reset() { *m = ExecSyncResponse{} } func (*ExecSyncResponse) ProtoMessage() {} func (*ExecSyncResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{79} + return fileDescriptor_00212fb1f9d3bf1c, []int{80} } func (m *ExecSyncResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5753,7 +5823,7 @@ type ExecRequest struct { func (m *ExecRequest) Reset() { *m = ExecRequest{} } func (*ExecRequest) ProtoMessage() {} func (*ExecRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{80} + return fileDescriptor_00212fb1f9d3bf1c, []int{81} } func (m *ExecRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5834,7 +5904,7 @@ type ExecResponse struct { func (m *ExecResponse) Reset() { *m = ExecResponse{} } func (*ExecResponse) ProtoMessage() {} func (*ExecResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{81} + return fileDescriptor_00212fb1f9d3bf1c, []int{82} } func (m *ExecResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5895,7 +5965,7 @@ type AttachRequest struct { func (m *AttachRequest) Reset() { *m = AttachRequest{} } func (*AttachRequest) ProtoMessage() {} func (*AttachRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{82} + return fileDescriptor_00212fb1f9d3bf1c, []int{83} } func (m *AttachRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -5969,7 +6039,7 @@ type AttachResponse struct { func (m *AttachResponse) Reset() { *m = AttachResponse{} } func (*AttachResponse) ProtoMessage() {} func (*AttachResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{83} + return fileDescriptor_00212fb1f9d3bf1c, []int{84} } func (m *AttachResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6017,7 +6087,7 @@ type PortForwardRequest struct { func (m *PortForwardRequest) Reset() { *m = PortForwardRequest{} } func (*PortForwardRequest) ProtoMessage() {} func (*PortForwardRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{84} + return fileDescriptor_00212fb1f9d3bf1c, []int{85} } func (m *PortForwardRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6070,7 +6140,7 @@ type PortForwardResponse struct { func (m *PortForwardResponse) Reset() { *m = PortForwardResponse{} } func (*PortForwardResponse) ProtoMessage() {} func (*PortForwardResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{85} + return fileDescriptor_00212fb1f9d3bf1c, []int{86} } func (m *PortForwardResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6116,7 +6186,7 @@ type ImageFilter struct { func (m *ImageFilter) Reset() { *m = ImageFilter{} } func (*ImageFilter) ProtoMessage() {} func (*ImageFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{86} + return fileDescriptor_00212fb1f9d3bf1c, []int{87} } func (m *ImageFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6162,7 +6232,7 @@ type ListImagesRequest struct { func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} } func (*ListImagesRequest) ProtoMessage() {} func (*ListImagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{87} + return fileDescriptor_00212fb1f9d3bf1c, []int{88} } func (m *ListImagesRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6228,7 +6298,7 @@ type Image struct { func (m *Image) Reset() { *m = Image{} } func (*Image) ProtoMessage() {} func (*Image) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{88} + return fileDescriptor_00212fb1f9d3bf1c, []int{89} } func (m *Image) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6323,7 +6393,7 @@ type ListImagesResponse struct { func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} } func (*ListImagesResponse) ProtoMessage() {} func (*ListImagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{89} + return fileDescriptor_00212fb1f9d3bf1c, []int{90} } func (m *ListImagesResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6371,7 +6441,7 @@ type ImageStatusRequest struct { func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} } func (*ImageStatusRequest) ProtoMessage() {} func (*ImageStatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{90} + return fileDescriptor_00212fb1f9d3bf1c, []int{91} } func (m *ImageStatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6429,7 +6499,7 @@ type ImageStatusResponse struct { func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} } func (*ImageStatusResponse) ProtoMessage() {} func (*ImageStatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{91} + return fileDescriptor_00212fb1f9d3bf1c, []int{92} } func (m *ImageStatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6490,7 +6560,7 @@ type AuthConfig struct { func (m *AuthConfig) Reset() { *m = AuthConfig{} } func (*AuthConfig) ProtoMessage() {} func (*AuthConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{92} + return fileDescriptor_00212fb1f9d3bf1c, []int{93} } func (m *AuthConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6575,7 +6645,7 @@ type PullImageRequest struct { func (m *PullImageRequest) Reset() { *m = PullImageRequest{} } func (*PullImageRequest) ProtoMessage() {} func (*PullImageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{93} + return fileDescriptor_00212fb1f9d3bf1c, []int{94} } func (m *PullImageRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6636,7 +6706,7 @@ type PullImageResponse struct { func (m *PullImageResponse) Reset() { *m = PullImageResponse{} } func (*PullImageResponse) ProtoMessage() {} func (*PullImageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{94} + return fileDescriptor_00212fb1f9d3bf1c, []int{95} } func (m *PullImageResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6682,7 +6752,7 @@ type RemoveImageRequest struct { func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} } func (*RemoveImageRequest) ProtoMessage() {} func (*RemoveImageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{95} + return fileDescriptor_00212fb1f9d3bf1c, []int{96} } func (m *RemoveImageRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6726,7 +6796,7 @@ type RemoveImageResponse struct { func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} } func (*RemoveImageResponse) ProtoMessage() {} func (*RemoveImageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{96} + return fileDescriptor_00212fb1f9d3bf1c, []int{97} } func (m *RemoveImageResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6766,7 +6836,7 @@ type NetworkConfig struct { func (m *NetworkConfig) Reset() { *m = NetworkConfig{} } func (*NetworkConfig) ProtoMessage() {} func (*NetworkConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{97} + return fileDescriptor_00212fb1f9d3bf1c, []int{98} } func (m *NetworkConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6811,7 +6881,7 @@ type RuntimeConfig struct { func (m *RuntimeConfig) Reset() { *m = RuntimeConfig{} } func (*RuntimeConfig) ProtoMessage() {} func (*RuntimeConfig) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{98} + return fileDescriptor_00212fb1f9d3bf1c, []int{99} } func (m *RuntimeConfig) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6856,7 +6926,7 @@ type UpdateRuntimeConfigRequest struct { func (m *UpdateRuntimeConfigRequest) Reset() { *m = UpdateRuntimeConfigRequest{} } func (*UpdateRuntimeConfigRequest) ProtoMessage() {} func (*UpdateRuntimeConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{99} + return fileDescriptor_00212fb1f9d3bf1c, []int{100} } func (m *UpdateRuntimeConfigRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6900,7 +6970,7 @@ type UpdateRuntimeConfigResponse struct { func (m *UpdateRuntimeConfigResponse) Reset() { *m = UpdateRuntimeConfigResponse{} } func (*UpdateRuntimeConfigResponse) ProtoMessage() {} func (*UpdateRuntimeConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{100} + return fileDescriptor_00212fb1f9d3bf1c, []int{101} } func (m *UpdateRuntimeConfigResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6934,10 +7004,11 @@ var xxx_messageInfo_UpdateRuntimeConfigResponse proto.InternalMessageInfo // 1. Required conditions: Conditions are required for kubelet to work // properly. If any required condition is unmet, the node will be not ready. // The required conditions include: -// * RuntimeReady: RuntimeReady means the runtime is up and ready to accept -// basic containers e.g. container only needs host network. -// * NetworkReady: NetworkReady means the runtime network is up and ready to -// accept containers which require container network. +// - RuntimeReady: RuntimeReady means the runtime is up and ready to accept +// basic containers e.g. container only needs host network. +// - NetworkReady: NetworkReady means the runtime network is up and ready to +// accept containers which require container network. +// // 2. Optional conditions: Conditions are informative to the user, but kubelet // will not rely on. Since condition type is an arbitrary string, all conditions // not required are optional. These conditions will be exposed to users to help @@ -6958,7 +7029,7 @@ type RuntimeCondition struct { func (m *RuntimeCondition) Reset() { *m = RuntimeCondition{} } func (*RuntimeCondition) ProtoMessage() {} func (*RuntimeCondition) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{101} + return fileDescriptor_00212fb1f9d3bf1c, []int{102} } func (m *RuntimeCondition) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7026,7 +7097,7 @@ type RuntimeStatus struct { func (m *RuntimeStatus) Reset() { *m = RuntimeStatus{} } func (*RuntimeStatus) ProtoMessage() {} func (*RuntimeStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{102} + return fileDescriptor_00212fb1f9d3bf1c, []int{103} } func (m *RuntimeStatus) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7072,7 +7143,7 @@ type StatusRequest struct { func (m *StatusRequest) Reset() { *m = StatusRequest{} } func (*StatusRequest) ProtoMessage() {} func (*StatusRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{103} + return fileDescriptor_00212fb1f9d3bf1c, []int{104} } func (m *StatusRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7123,7 +7194,7 @@ type StatusResponse struct { func (m *StatusResponse) Reset() { *m = StatusResponse{} } func (*StatusResponse) ProtoMessage() {} func (*StatusResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{104} + return fileDescriptor_00212fb1f9d3bf1c, []int{105} } func (m *StatusResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7174,7 +7245,7 @@ type ImageFsInfoRequest struct { func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} } func (*ImageFsInfoRequest) ProtoMessage() {} func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{105} + return fileDescriptor_00212fb1f9d3bf1c, []int{106} } func (m *ImageFsInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7214,7 +7285,7 @@ type UInt64Value struct { func (m *UInt64Value) Reset() { *m = UInt64Value{} } func (*UInt64Value) ProtoMessage() {} func (*UInt64Value) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{106} + return fileDescriptor_00212fb1f9d3bf1c, []int{107} } func (m *UInt64Value) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7261,7 +7332,7 @@ type FilesystemIdentifier struct { func (m *FilesystemIdentifier) Reset() { *m = FilesystemIdentifier{} } func (*FilesystemIdentifier) ProtoMessage() {} func (*FilesystemIdentifier) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{107} + return fileDescriptor_00212fb1f9d3bf1c, []int{108} } func (m *FilesystemIdentifier) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7318,7 +7389,7 @@ type FilesystemUsage struct { func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} } func (*FilesystemUsage) ProtoMessage() {} func (*FilesystemUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{108} + return fileDescriptor_00212fb1f9d3bf1c, []int{109} } func (m *FilesystemUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7385,7 +7456,7 @@ type ImageFsInfoResponse struct { func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} } func (*ImageFsInfoResponse) ProtoMessage() {} func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{109} + return fileDescriptor_00212fb1f9d3bf1c, []int{110} } func (m *ImageFsInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7431,7 +7502,7 @@ type ContainerStatsRequest struct { func (m *ContainerStatsRequest) Reset() { *m = ContainerStatsRequest{} } func (*ContainerStatsRequest) ProtoMessage() {} func (*ContainerStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{110} + return fileDescriptor_00212fb1f9d3bf1c, []int{111} } func (m *ContainerStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7477,7 +7548,7 @@ type ContainerStatsResponse struct { func (m *ContainerStatsResponse) Reset() { *m = ContainerStatsResponse{} } func (*ContainerStatsResponse) ProtoMessage() {} func (*ContainerStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{111} + return fileDescriptor_00212fb1f9d3bf1c, []int{112} } func (m *ContainerStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7523,7 +7594,7 @@ type ListContainerStatsRequest struct { func (m *ListContainerStatsRequest) Reset() { *m = ListContainerStatsRequest{} } func (*ListContainerStatsRequest) ProtoMessage() {} func (*ListContainerStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{112} + return fileDescriptor_00212fb1f9d3bf1c, []int{113} } func (m *ListContainerStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7577,7 +7648,7 @@ type ContainerStatsFilter struct { func (m *ContainerStatsFilter) Reset() { *m = ContainerStatsFilter{} } func (*ContainerStatsFilter) ProtoMessage() {} func (*ContainerStatsFilter) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{113} + return fileDescriptor_00212fb1f9d3bf1c, []int{114} } func (m *ContainerStatsFilter) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7637,7 +7708,7 @@ type ListContainerStatsResponse struct { func (m *ListContainerStatsResponse) Reset() { *m = ListContainerStatsResponse{} } func (*ListContainerStatsResponse) ProtoMessage() {} func (*ListContainerStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{114} + return fileDescriptor_00212fb1f9d3bf1c, []int{115} } func (m *ListContainerStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7693,7 +7764,7 @@ type ContainerAttributes struct { func (m *ContainerAttributes) Reset() { *m = ContainerAttributes{} } func (*ContainerAttributes) ProtoMessage() {} func (*ContainerAttributes) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{115} + return fileDescriptor_00212fb1f9d3bf1c, []int{116} } func (m *ContainerAttributes) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7767,7 +7838,7 @@ type ContainerStats struct { func (m *ContainerStats) Reset() { *m = ContainerStats{} } func (*ContainerStats) ProtoMessage() {} func (*ContainerStats) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{116} + return fileDescriptor_00212fb1f9d3bf1c, []int{117} } func (m *ContainerStats) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7840,7 +7911,7 @@ type CpuUsage struct { func (m *CpuUsage) Reset() { *m = CpuUsage{} } func (*CpuUsage) ProtoMessage() {} func (*CpuUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{117} + return fileDescriptor_00212fb1f9d3bf1c, []int{118} } func (m *CpuUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7913,7 +7984,7 @@ type MemoryUsage struct { func (m *MemoryUsage) Reset() { *m = MemoryUsage{} } func (*MemoryUsage) ProtoMessage() {} func (*MemoryUsage) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{118} + return fileDescriptor_00212fb1f9d3bf1c, []int{119} } func (m *MemoryUsage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8001,7 +8072,7 @@ type ReopenContainerLogRequest struct { func (m *ReopenContainerLogRequest) Reset() { *m = ReopenContainerLogRequest{} } func (*ReopenContainerLogRequest) ProtoMessage() {} func (*ReopenContainerLogRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{119} + return fileDescriptor_00212fb1f9d3bf1c, []int{120} } func (m *ReopenContainerLogRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8045,7 +8116,7 @@ type ReopenContainerLogResponse struct { func (m *ReopenContainerLogResponse) Reset() { *m = ReopenContainerLogResponse{} } func (*ReopenContainerLogResponse) ProtoMessage() {} func (*ReopenContainerLogResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_00212fb1f9d3bf1c, []int{120} + return fileDescriptor_00212fb1f9d3bf1c, []int{121} } func (m *ReopenContainerLogResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -8179,6 +8250,7 @@ func init() { proto.RegisterMapType((map[string]string)(nil), "runtime.v1alpha2.ContainerStatus.LabelsEntry") proto.RegisterType((*ContainerStatusResponse)(nil), "runtime.v1alpha2.ContainerStatusResponse") proto.RegisterMapType((map[string]string)(nil), "runtime.v1alpha2.ContainerStatusResponse.InfoEntry") + proto.RegisterType((*ContainerResources)(nil), "runtime.v1alpha2.ContainerResources") proto.RegisterType((*UpdateContainerResourcesRequest)(nil), "runtime.v1alpha2.UpdateContainerResourcesRequest") proto.RegisterMapType((map[string]string)(nil), "runtime.v1alpha2.UpdateContainerResourcesRequest.AnnotationsEntry") proto.RegisterType((*UpdateContainerResourcesResponse)(nil), "runtime.v1alpha2.UpdateContainerResourcesResponse") @@ -8235,371 +8307,373 @@ func init() { func init() { proto.RegisterFile("api.proto", fileDescriptor_00212fb1f9d3bf1c) } var fileDescriptor_00212fb1f9d3bf1c = []byte{ - // 5810 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3c, 0x5b, 0x6c, 0x1b, 0xd9, - 0x75, 0x1a, 0x92, 0x92, 0xc8, 0x43, 0x91, 0xa2, 0xae, 0x65, 0x89, 0xa6, 0xd7, 0x5a, 0x7b, 0xf6, - 0x61, 0xaf, 0xb3, 0x96, 0x62, 0xed, 0xc6, 0x6b, 0xcb, 0xbb, 0xb6, 0x65, 0x3d, 0x6c, 0x26, 0xb6, - 0xc4, 0x0e, 0xa5, 0xcd, 0x6e, 0x92, 0x62, 0x32, 0xe2, 0x5c, 0x51, 0x13, 0x93, 0x33, 0x93, 0x99, - 0xa1, 0x6d, 0xa5, 0x3f, 0x01, 0x02, 0xe4, 0x23, 0x5f, 0x05, 0x8a, 0x22, 0x40, 0x3f, 0x0a, 0xa4, - 0x05, 0xda, 0xef, 0xb4, 0xe8, 0x57, 0xbf, 0x5a, 0xb4, 0x68, 0xd0, 0x07, 0xd0, 0xaf, 0xa0, 0x45, - 0xfa, 0xd1, 0x6c, 0x51, 0xa0, 0x28, 0x50, 0xa0, 0xe8, 0x77, 0x3f, 0x8a, 0xfb, 0x9a, 0x17, 0x67, - 0xc8, 0xa1, 0xbd, 0xaf, 0x7e, 0x91, 0xf7, 0xcc, 0x39, 0xe7, 0x9e, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, - 0x7b, 0xcf, 0x99, 0x81, 0x92, 0x66, 0x1b, 0xab, 0xb6, 0x63, 0x79, 0x16, 0xaa, 0x39, 0x03, 0xd3, - 0x33, 0xfa, 0x78, 0xf5, 0xe9, 0x75, 0xad, 0x67, 0x9f, 0x68, 0xeb, 0x8d, 0x6b, 0x5d, 0xc3, 0x3b, - 0x19, 0x1c, 0xad, 0x76, 0xac, 0xfe, 0x5a, 0xd7, 0xea, 0x5a, 0x6b, 0x14, 0xf1, 0x68, 0x70, 0x4c, - 0x5b, 0xb4, 0x41, 0xff, 0x31, 0x06, 0xf2, 0x55, 0xa8, 0x7e, 0x88, 0x1d, 0xd7, 0xb0, 0x4c, 0x05, - 0x7f, 0x7f, 0x80, 0x5d, 0x0f, 0xd5, 0x61, 0xf6, 0x29, 0x83, 0xd4, 0xa5, 0x8b, 0xd2, 0x95, 0x92, - 0x22, 0x9a, 0xf2, 0x1f, 0x4b, 0x30, 0xef, 0x23, 0xbb, 0xb6, 0x65, 0xba, 0x38, 0x1d, 0x1b, 0x5d, - 0x82, 0x39, 0x2e, 0x9c, 0x6a, 0x6a, 0x7d, 0x5c, 0xcf, 0xd1, 0xc7, 0x65, 0x0e, 0xdb, 0xd3, 0xfa, - 0x18, 0x5d, 0x86, 0x79, 0x81, 0x22, 0x98, 0xe4, 0x29, 0x56, 0x95, 0x83, 0x79, 0x6f, 0x68, 0x15, - 0xce, 0x08, 0x44, 0xcd, 0x36, 0x7c, 0xe4, 0x02, 0x45, 0x5e, 0xe0, 0x8f, 0x36, 0x6d, 0x83, 0xe3, - 0xcb, 0xdf, 0x86, 0xd2, 0xf6, 0x5e, 0x7b, 0xcb, 0x32, 0x8f, 0x8d, 0x2e, 0x11, 0xd1, 0xc5, 0x0e, - 0xa1, 0xa9, 0x4b, 0x17, 0xf3, 0x44, 0x44, 0xde, 0x44, 0x0d, 0x28, 0xba, 0x58, 0x73, 0x3a, 0x27, - 0xd8, 0xad, 0xe7, 0xe8, 0x23, 0xbf, 0x4d, 0xa8, 0x2c, 0xdb, 0x33, 0x2c, 0xd3, 0xad, 0xe7, 0x19, - 0x15, 0x6f, 0xca, 0x7f, 0x20, 0x41, 0xb9, 0x65, 0x39, 0xde, 0x63, 0xcd, 0xb6, 0x0d, 0xb3, 0x8b, - 0x6e, 0x40, 0x91, 0xea, 0xb2, 0x63, 0xf5, 0xa8, 0x0e, 0xaa, 0xeb, 0x8d, 0xd5, 0xf8, 0xb4, 0xac, - 0xb6, 0x38, 0x86, 0xe2, 0xe3, 0xa2, 0x37, 0xa0, 0xda, 0xb1, 0x4c, 0x4f, 0x33, 0x4c, 0xec, 0xa8, - 0xb6, 0xe5, 0x78, 0x54, 0x45, 0xd3, 0x4a, 0xc5, 0x87, 0x92, 0x5e, 0xd0, 0x79, 0x28, 0x9d, 0x58, - 0xae, 0xc7, 0x30, 0xf2, 0x14, 0xa3, 0x48, 0x00, 0xf4, 0xe1, 0x32, 0xcc, 0xd2, 0x87, 0x86, 0xcd, - 0x95, 0x31, 0x43, 0x9a, 0x4d, 0x5b, 0xfe, 0xa5, 0x04, 0xd3, 0x8f, 0xad, 0x81, 0xe9, 0xc5, 0xba, - 0xd1, 0xbc, 0x13, 0x3e, 0x51, 0xa1, 0x6e, 0x34, 0xef, 0x24, 0xe8, 0x86, 0x60, 0xb0, 0xb9, 0x62, - 0xdd, 0x90, 0x87, 0x0d, 0x28, 0x3a, 0x58, 0xd3, 0x2d, 0xb3, 0x77, 0x4a, 0x45, 0x28, 0x2a, 0x7e, - 0x9b, 0x4c, 0xa2, 0x8b, 0x7b, 0x86, 0x39, 0x78, 0xae, 0x3a, 0xb8, 0xa7, 0x1d, 0xe1, 0x1e, 0x15, - 0xa5, 0xa8, 0x54, 0x39, 0x58, 0x61, 0x50, 0xb4, 0x0d, 0x65, 0xdb, 0xb1, 0x6c, 0xad, 0xab, 0x11, - 0x3d, 0xd6, 0xa7, 0xa9, 0xaa, 0xe4, 0x61, 0x55, 0x51, 0xb1, 0x5b, 0x01, 0xa6, 0x12, 0x26, 0x93, - 0x55, 0x28, 0x35, 0xb7, 0x85, 0xea, 0xfd, 0xe1, 0xeb, 0x74, 0x50, 0x15, 0x3e, 0x7c, 0x9d, 0x18, - 0x5f, 0x30, 0x68, 0x43, 0xa7, 0x03, 0xaa, 0x28, 0x65, 0x1f, 0xd6, 0xd4, 0xd1, 0x12, 0xcc, 0xf4, - 0xb0, 0xd9, 0xf5, 0x4e, 0xe8, 0x88, 0x2a, 0x0a, 0x6f, 0xc9, 0x7f, 0x24, 0x41, 0xe5, 0xd0, 0xc5, - 0x0e, 0xb1, 0x50, 0xd7, 0xd6, 0x3a, 0x18, 0xbd, 0x03, 0x85, 0xbe, 0xa5, 0x63, 0x3e, 0xb9, 0xaf, - 0x0e, 0x4b, 0xec, 0xa3, 0x3e, 0xb6, 0x74, 0xac, 0x50, 0x64, 0xb4, 0x06, 0x85, 0x81, 0xa1, 0x33, - 0xbb, 0x2a, 0xaf, 0x9f, 0x1f, 0x26, 0xf2, 0x47, 0xa1, 0x50, 0x44, 0x42, 0xd0, 0x25, 0x04, 0xf9, - 0x0c, 0x04, 0x04, 0x51, 0xfe, 0x69, 0x0e, 0xe6, 0xfd, 0x9e, 0xf7, 0xa9, 0x71, 0xa2, 0x5b, 0x30, - 0x6b, 0x62, 0xef, 0x99, 0xe5, 0x3c, 0xc9, 0x2a, 0xad, 0xc0, 0x47, 0xd7, 0x21, 0x6f, 0x73, 0x4d, - 0x65, 0x20, 0x23, 0xb8, 0x84, 0xc4, 0xb0, 0x3b, 0x54, 0x7f, 0x59, 0x48, 0x0c, 0xbb, 0x43, 0xcc, - 0xcc, 0xd3, 0x9c, 0x2e, 0xa6, 0x73, 0xc6, 0x4c, 0xb6, 0xc8, 0x00, 0x4d, 0x1d, 0xed, 0x42, 0x75, - 0xe0, 0x62, 0xc7, 0x74, 0x55, 0xb1, 0xf4, 0x88, 0x91, 0x94, 0x93, 0x58, 0x47, 0x66, 0x48, 0xa9, - 0x30, 0xb2, 0x7d, 0xbe, 0x42, 0x65, 0x80, 0xa6, 0xe9, 0xdd, 0x78, 0xf7, 0x43, 0xad, 0x37, 0xc0, - 0x68, 0x11, 0xa6, 0x9f, 0x92, 0x3f, 0x54, 0x23, 0x79, 0x85, 0x35, 0xe4, 0x5f, 0x17, 0xe0, 0xfc, - 0x23, 0x62, 0x9e, 0x6d, 0xcd, 0xd4, 0x8f, 0xac, 0xe7, 0x6d, 0xdc, 0x19, 0x38, 0x86, 0x77, 0xba, - 0x65, 0x99, 0x1e, 0x7e, 0xee, 0xa1, 0x3d, 0x58, 0x30, 0x05, 0x7f, 0x5f, 0x1c, 0x89, 0x8a, 0x73, - 0x69, 0xc4, 0x48, 0x99, 0x08, 0x4a, 0xcd, 0x8c, 0x02, 0x5c, 0xf4, 0x30, 0x58, 0x26, 0x82, 0x5b, - 0x2e, 0x6d, 0x70, 0xed, 0x1d, 0x2a, 0x19, 0xe7, 0x25, 0xd6, 0x91, 0xe0, 0xf4, 0x3e, 0x10, 0x27, - 0xaa, 0x6a, 0xae, 0x4a, 0x46, 0x4d, 0xb5, 0x5f, 0x5e, 0x7f, 0x25, 0xc1, 0x5e, 0x7c, 0x15, 0x28, - 0x25, 0x67, 0x60, 0x6e, 0xba, 0x44, 0x67, 0xe8, 0x0e, 0x75, 0xcb, 0x84, 0xba, 0xeb, 0x58, 0x03, - 0xbb, 0x5e, 0xcc, 0x40, 0x0e, 0x94, 0xfc, 0x01, 0xc1, 0xa7, 0x3e, 0x9b, 0x2f, 0x7d, 0xd5, 0xb1, - 0x2c, 0xef, 0xd8, 0x15, 0xcb, 0x5d, 0x80, 0x15, 0x0a, 0x45, 0x6b, 0x70, 0xc6, 0x1d, 0xd8, 0x76, - 0x0f, 0xf7, 0xb1, 0xe9, 0x69, 0x3d, 0xd6, 0x1d, 0x99, 0xd1, 0xfc, 0x95, 0xbc, 0x82, 0xc2, 0x8f, - 0x28, 0x63, 0x17, 0xad, 0x00, 0xd8, 0x8e, 0xf1, 0xd4, 0xe8, 0xe1, 0x2e, 0xd6, 0xeb, 0x33, 0x94, - 0x69, 0x08, 0x82, 0x6e, 0x13, 0x3f, 0xde, 0xe9, 0x58, 0x7d, 0xbb, 0x5e, 0x4a, 0x9b, 0x07, 0x31, - 0x8b, 0x2d, 0xc7, 0x3a, 0x36, 0x7a, 0x58, 0x11, 0x14, 0xe8, 0x03, 0x28, 0x6a, 0xb6, 0xad, 0x39, - 0x7d, 0xcb, 0xa9, 0x43, 0x56, 0x6a, 0x9f, 0x04, 0xbd, 0x0b, 0x8b, 0x9c, 0x93, 0x6a, 0xb3, 0x87, - 0xcc, 0x51, 0xce, 0x12, 0x0b, 0xbe, 0x9f, 0xab, 0x4b, 0x0a, 0xe2, 0xcf, 0x39, 0x2d, 0x71, 0x9b, - 0xf2, 0xdf, 0x4a, 0x30, 0x1f, 0xe3, 0x89, 0x5a, 0x30, 0x27, 0x38, 0x78, 0xa7, 0xb6, 0x70, 0x2a, - 0xd7, 0xc6, 0x0a, 0xb3, 0xca, 0x7f, 0x0f, 0x4e, 0x6d, 0x4c, 0x3d, 0xa2, 0x68, 0xa0, 0xd7, 0xa0, - 0xd2, 0xb3, 0x3a, 0x5a, 0x8f, 0x7a, 0x42, 0x07, 0x1f, 0x73, 0xef, 0x3d, 0xe7, 0x03, 0x15, 0x7c, - 0x2c, 0xdf, 0x83, 0x72, 0x88, 0x01, 0x42, 0x50, 0x55, 0x58, 0x87, 0xdb, 0xf8, 0x58, 0x1b, 0xf4, - 0xbc, 0xda, 0x14, 0xaa, 0x02, 0x1c, 0x9a, 0x1d, 0xb2, 0x67, 0x9a, 0x58, 0xaf, 0x49, 0xa8, 0x02, - 0xa5, 0x47, 0x82, 0x45, 0x2d, 0x27, 0xff, 0x49, 0x1e, 0xce, 0x52, 0xb3, 0x6c, 0x59, 0x3a, 0x5f, - 0x33, 0x7c, 0x83, 0x7d, 0x0d, 0x2a, 0x1d, 0x3a, 0xbb, 0xaa, 0xad, 0x39, 0xd8, 0xf4, 0xf8, 0x06, - 0x33, 0xc7, 0x80, 0x2d, 0x0a, 0x43, 0x1f, 0x41, 0xcd, 0xe5, 0x23, 0x52, 0x3b, 0x6c, 0x8d, 0xf1, - 0x05, 0x90, 0x30, 0xf6, 0x11, 0x0b, 0x53, 0x99, 0x77, 0x87, 0x56, 0xea, 0xac, 0x7b, 0xea, 0x76, - 0xbc, 0x9e, 0xf0, 0x9d, 0xef, 0xa6, 0x30, 0x8c, 0x0b, 0xbe, 0xda, 0x66, 0x64, 0x3b, 0xa6, 0xe7, - 0x9c, 0x2a, 0x82, 0x09, 0xda, 0x81, 0xa2, 0xf5, 0x14, 0x3b, 0x27, 0x58, 0x63, 0x1e, 0xaa, 0xbc, - 0xfe, 0x56, 0x0a, 0xc3, 0x2d, 0xb1, 0x9d, 0x28, 0xd8, 0xb5, 0x06, 0x4e, 0x07, 0xbb, 0x8a, 0x4f, - 0x8a, 0x1e, 0x40, 0xc9, 0x11, 0x60, 0xee, 0xc7, 0x26, 0xe0, 0x13, 0xd0, 0x36, 0x36, 0x60, 0x2e, - 0x2c, 0x28, 0xaa, 0x41, 0xfe, 0x09, 0x3e, 0xe5, 0x4a, 0x26, 0x7f, 0x03, 0x0f, 0xc7, 0x66, 0x9e, - 0x35, 0x36, 0x72, 0x37, 0x25, 0xd9, 0x01, 0x14, 0x8c, 0xfa, 0x31, 0xf6, 0x34, 0x5d, 0xf3, 0x34, - 0x84, 0xa0, 0x40, 0x43, 0x32, 0xc6, 0x82, 0xfe, 0x27, 0x5c, 0x07, 0xdc, 0xfd, 0x97, 0x14, 0xf2, - 0x17, 0xbd, 0x02, 0x25, 0xdf, 0x8b, 0xf1, 0xb8, 0x2c, 0x00, 0x90, 0xf8, 0x48, 0xf3, 0x3c, 0xdc, - 0xb7, 0x3d, 0xaa, 0xa4, 0x8a, 0x22, 0x9a, 0xf2, 0x9f, 0x4e, 0x43, 0x6d, 0xc8, 0x46, 0xee, 0x41, - 0xb1, 0xcf, 0xbb, 0xe7, 0x5e, 0xf4, 0xf5, 0x84, 0x20, 0x69, 0x48, 0x54, 0xc5, 0xa7, 0x22, 0x31, - 0x08, 0xb1, 0xc4, 0x50, 0x2c, 0xe9, 0xb7, 0xd9, 0x12, 0xe8, 0xaa, 0xba, 0xe1, 0xe0, 0x8e, 0x67, - 0x39, 0xa7, 0x5c, 0xdc, 0xb9, 0x9e, 0xd5, 0xdd, 0x16, 0x30, 0xb4, 0x01, 0xa0, 0x9b, 0xae, 0x4a, - 0x2d, 0xbc, 0xcb, 0x67, 0x36, 0x61, 0x9b, 0xf5, 0x03, 0x47, 0xa5, 0xa4, 0x9b, 0x2e, 0x17, 0xff, - 0x3e, 0x54, 0x48, 0xfc, 0xa5, 0xf6, 0xd9, 0x0e, 0xcc, 0xdc, 0x58, 0x79, 0xfd, 0x42, 0xd2, 0x18, - 0xfc, 0xc8, 0x50, 0x99, 0xb3, 0x83, 0x86, 0x8b, 0x76, 0x61, 0x86, 0x06, 0x42, 0x6e, 0x7d, 0x86, - 0x12, 0xaf, 0x8e, 0x52, 0x00, 0xb7, 0xd0, 0x47, 0x94, 0x80, 0x19, 0x28, 0xa7, 0x46, 0x87, 0x50, - 0xd6, 0x4c, 0xd3, 0xf2, 0x34, 0xb6, 0x8b, 0xcc, 0x52, 0x66, 0xef, 0x64, 0x60, 0xb6, 0x19, 0x50, - 0x31, 0x8e, 0x61, 0x3e, 0xe8, 0x03, 0x98, 0xa6, 0xdb, 0x0c, 0xdf, 0x11, 0x2e, 0x67, 0x5c, 0x44, - 0x0a, 0xa3, 0x42, 0x5b, 0x30, 0xfb, 0xcc, 0x30, 0x75, 0xeb, 0x99, 0xcb, 0xbd, 0x73, 0x82, 0xb1, - 0x7f, 0x93, 0x21, 0x0c, 0xb1, 0x10, 0x94, 0x8d, 0x5b, 0x50, 0x0e, 0x8d, 0x78, 0x12, 0x4b, 0x6f, - 0xdc, 0x81, 0x5a, 0x7c, 0x7c, 0x13, 0xad, 0x94, 0xdf, 0x82, 0x45, 0x65, 0x60, 0x06, 0xa2, 0x89, - 0xe3, 0xd0, 0x06, 0xcc, 0x70, 0x8b, 0x61, 0x66, 0x2b, 0x8f, 0x57, 0xb4, 0xc2, 0x29, 0xc2, 0xe7, - 0x9b, 0x13, 0xcd, 0xd4, 0x7b, 0xd8, 0xe1, 0xfd, 0x8a, 0xf3, 0xcd, 0x43, 0x06, 0x95, 0x3f, 0x80, - 0xb3, 0xb1, 0xce, 0xf9, 0xf1, 0xea, 0x75, 0xa8, 0xda, 0x96, 0xae, 0xba, 0x0c, 0x2c, 0xe2, 0xdc, - 0x12, 0xb1, 0x2c, 0x81, 0xdb, 0xd4, 0x09, 0x79, 0xdb, 0xb3, 0xec, 0x61, 0xe1, 0xb3, 0x91, 0xd7, - 0x61, 0x29, 0x4e, 0xce, 0xba, 0x97, 0xef, 0xc2, 0xb2, 0x82, 0xfb, 0xd6, 0x53, 0xfc, 0xa2, 0xac, - 0x1b, 0x50, 0x1f, 0x66, 0xc0, 0x99, 0x7f, 0x0c, 0xcb, 0x01, 0xb4, 0xed, 0x69, 0xde, 0xc0, 0x9d, - 0x88, 0x39, 0x3f, 0x7b, 0x1e, 0x59, 0x2e, 0x9b, 0xce, 0xa2, 0x22, 0x9a, 0xf2, 0x32, 0x4c, 0xb7, - 0x2c, 0xbd, 0xd9, 0x42, 0x55, 0xc8, 0x19, 0x36, 0x27, 0xce, 0x19, 0xb6, 0x6c, 0x84, 0xfb, 0xdc, - 0x63, 0x91, 0x2f, 0xeb, 0x3a, 0x8e, 0x8a, 0xee, 0x40, 0x55, 0xd3, 0x75, 0x83, 0x98, 0x93, 0xd6, - 0x53, 0x0d, 0x5b, 0x84, 0xf2, 0xcb, 0x89, 0x06, 0xd0, 0x6c, 0x29, 0x95, 0x00, 0xbd, 0x69, 0xbb, - 0xf2, 0x43, 0x28, 0x05, 0x47, 0x88, 0xdb, 0xc1, 0x69, 0x32, 0x97, 0x35, 0x86, 0xf4, 0x0f, 0x9c, - 0x07, 0x43, 0x1b, 0x2f, 0x17, 0xf9, 0x36, 0x80, 0xef, 0x90, 0x45, 0x70, 0x7a, 0x7e, 0x04, 0x63, - 0x25, 0x84, 0x2e, 0xff, 0x28, 0xe2, 0xa6, 0x43, 0x4a, 0xd0, 0x7d, 0x25, 0xe8, 0x11, 0xb7, 0x9d, - 0x7b, 0x21, 0xb7, 0xfd, 0x1e, 0x4c, 0xbb, 0x9e, 0xe6, 0x61, 0x7e, 0x4a, 0xb8, 0x34, 0x8a, 0x9c, - 0x08, 0x81, 0x15, 0x86, 0x8f, 0x2e, 0x00, 0x74, 0x1c, 0xac, 0x79, 0x58, 0x57, 0x35, 0xb6, 0xc7, - 0xe4, 0x95, 0x12, 0x87, 0x6c, 0x7a, 0xc4, 0xdf, 0x88, 0x93, 0x4e, 0xea, 0xe6, 0x9a, 0x32, 0xd5, - 0xc1, 0x99, 0xc7, 0xf7, 0x79, 0x33, 0x19, 0x7d, 0x1e, 0x67, 0xc0, 0x7d, 0x5e, 0xe0, 0xd1, 0x67, - 0xc7, 0x7b, 0x74, 0x46, 0x9a, 0xc5, 0xa3, 0x17, 0xc7, 0x7b, 0x74, 0xce, 0x6c, 0xb4, 0x47, 0x4f, - 0x70, 0x3f, 0xa5, 0x24, 0xf7, 0xf3, 0x45, 0xba, 0xdd, 0x7f, 0x96, 0xa0, 0x3e, 0xec, 0x05, 0xb8, - 0xf7, 0xdb, 0x80, 0x19, 0x97, 0x42, 0xb2, 0xf8, 0x5e, 0x4e, 0xcb, 0x29, 0xd0, 0x43, 0x28, 0x18, - 0xe6, 0xb1, 0xc5, 0x17, 0xed, 0xbb, 0x19, 0x28, 0x79, 0xaf, 0xab, 0x4d, 0xf3, 0xd8, 0x62, 0xda, - 0xa4, 0x1c, 0x1a, 0xef, 0x41, 0xc9, 0x07, 0x4d, 0x34, 0xb6, 0x7d, 0x58, 0x8c, 0xd9, 0x36, 0x3b, - 0x90, 0xfa, 0x4b, 0x42, 0x9a, 0x6c, 0x49, 0xc8, 0x3f, 0xcc, 0x85, 0x97, 0xec, 0xae, 0xd1, 0xf3, - 0xb0, 0x33, 0xb4, 0x64, 0xdf, 0x17, 0xdc, 0xd9, 0x7a, 0x7d, 0x73, 0x2c, 0x77, 0x76, 0xc6, 0xe3, - 0xab, 0xee, 0x3b, 0x50, 0xa5, 0x46, 0xa9, 0xba, 0xb8, 0x47, 0xe3, 0x26, 0x1e, 0x53, 0x7f, 0x6d, - 0x14, 0x1b, 0x26, 0x09, 0x33, 0xed, 0x36, 0xa7, 0x63, 0x1a, 0xac, 0xf4, 0xc2, 0xb0, 0xc6, 0x3d, - 0x40, 0xc3, 0x48, 0x13, 0xe9, 0xb4, 0x4d, 0x7c, 0xa1, 0xeb, 0x25, 0xee, 0xd3, 0xc7, 0x54, 0x8c, - 0x2c, 0xb6, 0xc2, 0x04, 0x56, 0x38, 0x85, 0xfc, 0x5f, 0x79, 0x80, 0xe0, 0xe1, 0xff, 0x23, 0x27, - 0x78, 0xcf, 0x77, 0x40, 0x2c, 0x1e, 0xbd, 0x32, 0x8a, 0x71, 0xa2, 0xeb, 0xd9, 0x8f, 0xba, 0x1e, - 0x16, 0x99, 0x5e, 0x1b, 0xc9, 0x66, 0x62, 0xa7, 0x33, 0xfb, 0x65, 0x73, 0x3a, 0x8f, 0x60, 0x29, - 0x6e, 0x44, 0xdc, 0xe3, 0xac, 0xc3, 0xb4, 0xe1, 0xe1, 0x3e, 0xbb, 0x29, 0x4e, 0xbc, 0x16, 0x09, - 0x11, 0x31, 0x54, 0xf9, 0x0e, 0x2c, 0x45, 0x67, 0x6f, 0xb2, 0x30, 0x46, 0x56, 0xe2, 0x71, 0x50, - 0xe0, 0x00, 0xb9, 0xdd, 0x8c, 0xb8, 0x78, 0x8a, 0x53, 0x32, 0x7c, 0xf9, 0xef, 0x25, 0x38, 0x1b, - 0x7b, 0x94, 0xe2, 0x2e, 0xb4, 0xa1, 0x05, 0xcf, 0x3c, 0xe6, 0xc6, 0xd8, 0xbe, 0x3e, 0xc7, 0x55, - 0xff, 0x9b, 0xd0, 0x88, 0x4e, 0x58, 0x44, 0xcd, 0x77, 0x63, 0x4b, 0xff, 0x72, 0x46, 0xd1, 0xfd, - 0xf5, 0xff, 0x21, 0x9c, 0x4f, 0x64, 0x3f, 0x3c, 0x0b, 0xf9, 0x89, 0x66, 0xe1, 0x27, 0xf9, 0xf0, - 0x0e, 0xb0, 0xe9, 0x79, 0x8e, 0x71, 0x34, 0xf0, 0xf0, 0x67, 0x11, 0x66, 0x7d, 0xdd, 0xf7, 0x04, - 0xcc, 0x5f, 0xaf, 0x8f, 0xa2, 0x0f, 0x24, 0x49, 0xf4, 0x09, 0x1f, 0x47, 0x7d, 0x42, 0x81, 0x32, - 0x7c, 0x2f, 0x23, 0xc3, 0x91, 0xde, 0xe1, 0x8b, 0x5c, 0xf4, 0xbf, 0x92, 0x60, 0x3e, 0x36, 0x4f, - 0x68, 0x17, 0x40, 0xf3, 0x45, 0xe7, 0xd6, 0xf3, 0x66, 0xb6, 0x81, 0x2a, 0x21, 0x4a, 0xb2, 0xe7, - 0xb2, 0x38, 0x32, 0x75, 0xcf, 0x4d, 0x88, 0x23, 0xfd, 0x30, 0xf2, 0x7e, 0x70, 0x74, 0x66, 0x97, - 0xb9, 0x57, 0x32, 0x1c, 0x9d, 0x19, 0x07, 0x41, 0x28, 0xff, 0x3c, 0x07, 0x8b, 0x49, 0x7d, 0xa0, - 0xb7, 0x21, 0xdf, 0xb1, 0x07, 0x7c, 0x6c, 0x09, 0x89, 0xa9, 0x2d, 0x7b, 0x70, 0xe8, 0x6a, 0x5d, - 0xac, 0x10, 0x34, 0xf4, 0x35, 0x98, 0xe9, 0xe3, 0xbe, 0xe5, 0x9c, 0xf2, 0x91, 0x24, 0x5c, 0x70, - 0x3c, 0xa6, 0xcf, 0x19, 0x0d, 0x47, 0x46, 0x37, 0x83, 0x60, 0x9c, 0x8d, 0x60, 0x25, 0xe1, 0x14, - 0xc2, 0x10, 0x18, 0xa1, 0x1f, 0x81, 0xdf, 0x84, 0x59, 0xdb, 0xb1, 0x3a, 0xd8, 0x75, 0xf9, 0x8d, - 0xcc, 0x4a, 0x62, 0xee, 0x8c, 0x20, 0x70, 0x4a, 0x8e, 0x8e, 0xee, 0x01, 0xf8, 0xe9, 0x1c, 0xb1, - 0xff, 0x5d, 0x4c, 0x18, 0x9f, 0xc0, 0x61, 0x0a, 0x0b, 0xd1, 0x90, 0x73, 0x6f, 0xb2, 0x5a, 0xe5, - 0xbf, 0x93, 0x60, 0x2e, 0x2c, 0x2f, 0x7a, 0x05, 0x4a, 0x84, 0xad, 0xeb, 0x69, 0x7d, 0x9b, 0xe7, - 0x11, 0x02, 0x00, 0x3a, 0x80, 0x05, 0x9d, 0x5d, 0xa3, 0xaa, 0x86, 0xe9, 0x61, 0xe7, 0x58, 0xeb, - 0x88, 0xf0, 0xeb, 0x72, 0xaa, 0x22, 0x9a, 0x02, 0x93, 0x8d, 0xab, 0xc6, 0x39, 0xf8, 0x60, 0xf4, - 0x00, 0xc0, 0xe7, 0x26, 0x96, 0x75, 0x66, 0x76, 0x21, 0x52, 0xf9, 0xa7, 0x39, 0x38, 0x9b, 0x88, - 0x95, 0x78, 0x11, 0x78, 0x13, 0x8a, 0xce, 0x73, 0xf5, 0xe8, 0xd4, 0xc3, 0x6e, 0xba, 0x11, 0x1c, - 0x86, 0xb2, 0x03, 0xb3, 0xce, 0xf3, 0xfb, 0x04, 0x1b, 0x6d, 0x40, 0xc9, 0x79, 0xae, 0x62, 0xc7, - 0xb1, 0x1c, 0x61, 0xc9, 0x63, 0x48, 0x8b, 0xce, 0xf3, 0x1d, 0x8a, 0x4e, 0x7a, 0xf5, 0x44, 0xaf, - 0x85, 0x4c, 0xbd, 0x7a, 0x41, 0xaf, 0x9e, 0xdf, 0xeb, 0x74, 0xa6, 0x5e, 0x3d, 0xde, 0xab, 0x6c, - 0xc3, 0x5c, 0xd8, 0xb8, 0xc6, 0x4c, 0xf3, 0x7d, 0xa8, 0x70, 0xe3, 0x53, 0x3b, 0xd6, 0xc0, 0xf4, - 0xb2, 0xa9, 0x67, 0x8e, 0xd3, 0x6c, 0x11, 0x12, 0xf9, 0xe7, 0x12, 0x94, 0x9a, 0x7d, 0xad, 0x8b, - 0xdb, 0x36, 0xee, 0x10, 0x6f, 0x65, 0x90, 0x06, 0x9f, 0x00, 0xd6, 0x40, 0x7b, 0x51, 0xff, 0xcb, - 0xf6, 0xe3, 0xb7, 0x13, 0x32, 0x34, 0x82, 0xcf, 0x18, 0xa7, 0xfb, 0xb2, 0x9e, 0x73, 0x1d, 0x8a, - 0xdf, 0xc0, 0xa7, 0xec, 0xec, 0x92, 0x91, 0x4e, 0xfe, 0x59, 0x01, 0x96, 0x53, 0xee, 0xb6, 0x69, - 0x50, 0x6b, 0x0f, 0x54, 0x1b, 0x3b, 0x86, 0xa5, 0x0b, 0x35, 0x77, 0xec, 0x41, 0x8b, 0x02, 0xd0, - 0x79, 0x20, 0x0d, 0xf5, 0xfb, 0x03, 0x8b, 0xef, 0x86, 0x79, 0xa5, 0xd8, 0xb1, 0x07, 0xbf, 0x41, - 0xda, 0x82, 0xd6, 0x3d, 0xd1, 0x1c, 0xcc, 0x8c, 0x8c, 0xd1, 0xb6, 0x29, 0x00, 0x5d, 0x87, 0xb3, - 0xcc, 0x25, 0xa9, 0x3d, 0xa3, 0x6f, 0x90, 0xe5, 0x18, 0xb2, 0xa9, 0xbc, 0x82, 0xd8, 0xc3, 0x47, - 0xe4, 0x59, 0xd3, 0x64, 0xf6, 0x23, 0x43, 0xc5, 0xb2, 0xfa, 0xaa, 0xdb, 0xb1, 0x1c, 0xac, 0x6a, - 0xfa, 0xf7, 0xa8, 0x0d, 0xe5, 0x95, 0xb2, 0x65, 0xf5, 0xdb, 0x04, 0xb6, 0xa9, 0x7f, 0x0f, 0xbd, - 0x0a, 0xe5, 0x8e, 0x3d, 0x70, 0xb1, 0xa7, 0x92, 0x1f, 0x7a, 0x5b, 0x50, 0x52, 0x80, 0x81, 0xb6, - 0xec, 0x81, 0x1b, 0x42, 0xe8, 0x93, 0xe8, 0x71, 0x36, 0x8c, 0xf0, 0x18, 0xf7, 0x69, 0xfa, 0xef, - 0x64, 0xd0, 0xc5, 0xb6, 0xd6, 0xc5, 0x4c, 0x34, 0x71, 0xcc, 0x4f, 0x48, 0xff, 0x3d, 0xe4, 0x88, - 0x54, 0x4c, 0xa5, 0x7a, 0x12, 0x6e, 0xba, 0xa8, 0x05, 0xb3, 0x03, 0xd3, 0x38, 0x36, 0xb0, 0x5e, - 0x2f, 0x51, 0x0e, 0x37, 0x32, 0x67, 0x15, 0x56, 0x0f, 0x19, 0x21, 0x4f, 0x78, 0x70, 0x36, 0x68, - 0x03, 0x1a, 0x5c, 0x69, 0xee, 0x33, 0xcd, 0x8e, 0x6b, 0x0e, 0xa8, 0x3a, 0x96, 0x18, 0x46, 0xfb, - 0x99, 0x66, 0x87, 0xb5, 0xd7, 0xd8, 0x80, 0xb9, 0x30, 0xd3, 0x89, 0xec, 0xea, 0x3e, 0x54, 0x22, - 0x43, 0x25, 0x33, 0x4f, 0x15, 0xe4, 0x1a, 0x3f, 0x10, 0x4b, 0xa2, 0x48, 0x00, 0x6d, 0xe3, 0x07, - 0x34, 0x8d, 0x4b, 0x25, 0xa3, 0x7c, 0x0a, 0x0a, 0x6b, 0xc8, 0x1a, 0x54, 0x22, 0xd9, 0x52, 0xe2, - 0xd2, 0x68, 0x5a, 0x94, 0xbb, 0x34, 0xf2, 0x9f, 0xc0, 0x1c, 0xab, 0x27, 0x24, 0xa0, 0xff, 0x09, - 0x8c, 0xe6, 0xdf, 0x58, 0xa6, 0x80, 0xfe, 0xa7, 0x5d, 0xe0, 0xa7, 0xbc, 0x80, 0xa1, 0xa4, 0xb0, - 0x86, 0xfc, 0xfb, 0x12, 0xc0, 0x96, 0x66, 0x6b, 0x47, 0x46, 0xcf, 0xf0, 0x4e, 0xd1, 0x5b, 0x50, - 0xd3, 0x74, 0x5d, 0xed, 0x08, 0x88, 0x81, 0x45, 0x5d, 0xc9, 0xbc, 0xa6, 0xeb, 0x5b, 0x21, 0x30, - 0xfa, 0x0a, 0x2c, 0xe8, 0x8e, 0x65, 0x47, 0x71, 0x59, 0xa1, 0x49, 0x8d, 0x3c, 0x88, 0x20, 0xdf, - 0x84, 0x3a, 0xe1, 0xab, 0xf5, 0x8f, 0x0c, 0x6c, 0x7a, 0x51, 0x1a, 0x56, 0x81, 0xb2, 0xa4, 0xe9, - 0xfa, 0x26, 0x7b, 0x1c, 0xa6, 0x94, 0xff, 0x63, 0x06, 0x2e, 0x44, 0x67, 0x3c, 0x9e, 0xcc, 0xbe, - 0x07, 0x73, 0x31, 0x79, 0x53, 0x92, 0xbe, 0xc1, 0x38, 0x95, 0x08, 0x45, 0x2c, 0x39, 0x9b, 0x1b, - 0x4a, 0xce, 0x26, 0xa6, 0xcb, 0xf3, 0x9f, 0x6a, 0xba, 0xbc, 0xf0, 0xa9, 0xa4, 0xcb, 0xa7, 0x5f, - 0x2e, 0x5d, 0x3e, 0x37, 0x61, 0xba, 0xfc, 0x4d, 0x7a, 0x1c, 0x16, 0xbd, 0xd3, 0xcd, 0x96, 0x79, - 0x8f, 0x8a, 0xdf, 0x87, 0x29, 0x4a, 0xa1, 0x62, 0x69, 0xf5, 0xd9, 0x49, 0xd2, 0xea, 0xc5, 0xd4, - 0xb4, 0xfa, 0x45, 0x98, 0x33, 0x2d, 0xd5, 0xc4, 0xcf, 0x54, 0x32, 0x5d, 0x6e, 0xbd, 0xcc, 0xe6, - 0xce, 0xb4, 0xf6, 0xf0, 0xb3, 0x16, 0x81, 0xa0, 0x4b, 0x30, 0xd7, 0xd7, 0xdc, 0x27, 0x58, 0xa7, - 0x39, 0x6d, 0xb7, 0x5e, 0xa1, 0xd6, 0x56, 0x66, 0xb0, 0x16, 0x01, 0xa1, 0x37, 0xc0, 0x97, 0x83, - 0x23, 0x55, 0x29, 0x52, 0x45, 0x40, 0x19, 0x5a, 0x28, 0x45, 0x3f, 0xff, 0x52, 0x29, 0xfa, 0xda, - 0xe4, 0x29, 0xfa, 0x6b, 0x50, 0x13, 0xff, 0x45, 0x8e, 0x9e, 0x5d, 0x77, 0xd2, 0xf4, 0xfc, 0xbc, - 0x78, 0x26, 0xf2, 0xf0, 0x69, 0x19, 0x7d, 0x18, 0x99, 0xd1, 0xff, 0x73, 0x89, 0x87, 0xd9, 0xfe, - 0x52, 0xe3, 0x09, 0xc2, 0x48, 0xb6, 0x57, 0x7a, 0xf1, 0x6c, 0x2f, 0xfa, 0x56, 0x6a, 0x9e, 0x7c, - 0x6d, 0x1c, 0xbf, 0x71, 0x99, 0x72, 0xf9, 0x77, 0x24, 0xb8, 0xc0, 0x23, 0xde, 0x94, 0xaa, 0x97, - 0x04, 0x73, 0x95, 0x52, 0xcc, 0xb5, 0xe3, 0x60, 0x1d, 0x9b, 0x9e, 0xa1, 0xf5, 0x54, 0xd7, 0xc6, - 0x1d, 0x91, 0xd9, 0x0a, 0xc0, 0x34, 0xc2, 0xb9, 0x04, 0x73, 0xac, 0xac, 0x8c, 0x07, 0xf9, 0xac, - 0x7a, 0xac, 0x4c, 0x2b, 0xcb, 0x18, 0x48, 0x1e, 0xc0, 0x72, 0x4a, 0x62, 0x30, 0x51, 0x19, 0x52, - 0x9a, 0x32, 0x46, 0x8e, 0x6c, 0x58, 0x19, 0xbf, 0x2b, 0xc1, 0xab, 0x9c, 0x24, 0xd5, 0x6f, 0x7e, - 0x11, 0xea, 0xf8, 0x0b, 0xc9, 0x3f, 0x96, 0xc4, 0x8d, 0xac, 0x39, 0x6c, 0x64, 0x5f, 0x49, 0xd5, - 0xc3, 0x68, 0x33, 0xfb, 0x4e, 0xaa, 0x99, 0x5d, 0x1f, 0xcf, 0x71, 0xac, 0x6e, 0xff, 0x45, 0x82, - 0x73, 0xa9, 0x62, 0xc4, 0x62, 0x38, 0x29, 0x1e, 0xc3, 0xf1, 0xf8, 0x2f, 0x08, 0xb1, 0x59, 0xfc, - 0x47, 0xe3, 0x67, 0x1e, 0x68, 0xa9, 0x7d, 0xed, 0xb9, 0xd1, 0x1f, 0xf4, 0x79, 0x00, 0x48, 0xd8, - 0x3d, 0x66, 0x90, 0x17, 0x89, 0x00, 0xd7, 0x60, 0x91, 0xb9, 0x5c, 0x1a, 0x78, 0x04, 0x14, 0x2c, - 0x10, 0x5c, 0x60, 0xcf, 0x48, 0x0c, 0xc2, 0x09, 0xe4, 0x4d, 0x58, 0xf0, 0x87, 0x35, 0xb2, 0xa8, - 0x22, 0x54, 0x24, 0x91, 0x8b, 0x16, 0x49, 0x98, 0x30, 0xb3, 0x8d, 0x9f, 0x1a, 0x1d, 0xfc, 0xa9, - 0xd4, 0x67, 0x5e, 0x84, 0xb2, 0x8d, 0x9d, 0xbe, 0xe1, 0xba, 0xfe, 0xbe, 0x5b, 0x52, 0xc2, 0x20, - 0xf9, 0xdf, 0x67, 0x60, 0x3e, 0x6e, 0x4e, 0x77, 0x87, 0x6a, 0x32, 0x5e, 0x1b, 0x71, 0x7e, 0x4e, - 0xb8, 0x74, 0xba, 0x2e, 0x8e, 0x2f, 0xb9, 0xb4, 0xd4, 0xa3, 0x7f, 0x44, 0x11, 0x67, 0x9b, 0x3a, - 0xcc, 0x76, 0xac, 0x7e, 0x5f, 0x33, 0x75, 0x51, 0x56, 0xcb, 0x9b, 0x44, 0x7f, 0x9a, 0xd3, 0x65, - 0xd7, 0x4d, 0x25, 0x85, 0xfe, 0x27, 0xb3, 0x4d, 0x4e, 0xad, 0x86, 0x49, 0x6b, 0x3b, 0xe8, 0x84, - 0x94, 0x14, 0xe0, 0xa0, 0x6d, 0xc3, 0x41, 0xab, 0x50, 0xc0, 0xe6, 0x53, 0x71, 0x6f, 0x9d, 0x70, - 0xbd, 0x21, 0x0e, 0x2e, 0x0a, 0xc5, 0x43, 0x6b, 0x30, 0xd3, 0x27, 0x76, 0x24, 0x32, 0x76, 0xcb, - 0x29, 0xe5, 0xa7, 0x0a, 0x47, 0x43, 0xeb, 0x30, 0xab, 0xd3, 0x79, 0x12, 0xf1, 0x7a, 0x3d, 0xa1, - 0x62, 0x84, 0x22, 0x28, 0x02, 0x11, 0xed, 0xf8, 0x77, 0x71, 0xa5, 0xb4, 0xeb, 0xf4, 0xd8, 0x54, - 0x24, 0x5e, 0xc3, 0x1d, 0x44, 0x8f, 0x81, 0x90, 0x76, 0xaf, 0x17, 0xe7, 0x35, 0xfa, 0x7e, 0xfe, - 0x1c, 0x14, 0x7b, 0x56, 0x97, 0x99, 0x51, 0x99, 0x55, 0x6c, 0xf7, 0xac, 0x2e, 0xb5, 0xa2, 0x45, - 0x98, 0x76, 0x3d, 0xdd, 0x30, 0x69, 0x90, 0x53, 0x54, 0x58, 0x83, 0xac, 0x56, 0xfa, 0x47, 0xb5, - 0xcc, 0x0e, 0xae, 0x57, 0xe8, 0xa3, 0x12, 0x85, 0xec, 0x9b, 0x1d, 0x7a, 0x20, 0xf4, 0xbc, 0xd3, - 0x7a, 0x95, 0xc2, 0xc9, 0xdf, 0xe0, 0x32, 0x6c, 0x7e, 0xe4, 0x65, 0x58, 0x4c, 0xec, 0x84, 0xcb, - 0xb0, 0xda, 0x98, 0xcb, 0xb0, 0x38, 0x87, 0x2f, 0x43, 0x19, 0xc9, 0x5f, 0x49, 0xb0, 0xb4, 0x45, - 0xf3, 0x33, 0x21, 0xc7, 0x37, 0x49, 0x51, 0xc3, 0x2d, 0xbf, 0xde, 0x24, 0xb5, 0x50, 0x20, 0x3e, - 0x6e, 0x51, 0x6e, 0xd2, 0x84, 0xaa, 0x60, 0xce, 0x59, 0xe4, 0x33, 0x97, 0xac, 0x54, 0xdc, 0x70, - 0x53, 0x7e, 0x1f, 0x96, 0x87, 0x46, 0xc1, 0x6f, 0xc3, 0xe3, 0xa5, 0xd5, 0x6c, 0x10, 0xe1, 0xd2, - 0x6a, 0x79, 0x03, 0xce, 0xb6, 0x3d, 0xcd, 0xf1, 0x86, 0x54, 0x90, 0x81, 0x96, 0x16, 0xa3, 0x44, - 0x69, 0x79, 0xbd, 0x48, 0x1b, 0x16, 0xdb, 0x9e, 0x65, 0xbf, 0x00, 0x53, 0xe2, 0x75, 0xc8, 0xf8, - 0xad, 0x81, 0xd8, 0x50, 0x44, 0x53, 0x5e, 0x66, 0xa5, 0x33, 0xc3, 0xbd, 0xdd, 0x86, 0x25, 0x56, - 0xb9, 0xf2, 0x22, 0x83, 0x38, 0x27, 0xea, 0x66, 0x86, 0xf9, 0x3e, 0x86, 0x33, 0x91, 0x2b, 0x49, - 0x9e, 0x13, 0xbe, 0x11, 0xcd, 0x09, 0x8f, 0xbb, 0xc8, 0xf4, 0x53, 0xc2, 0x7f, 0x98, 0x0b, 0xf9, - 0xf5, 0x94, 0x14, 0xcf, 0xed, 0x68, 0x46, 0xf8, 0x8d, 0x71, 0xbc, 0x23, 0x09, 0xe1, 0x61, 0xab, - 0xcd, 0x27, 0x58, 0xed, 0xb7, 0x87, 0xb2, 0x48, 0x85, 0xb4, 0xbc, 0x7b, 0x4c, 0xda, 0xcf, 0x25, - 0x7f, 0xa4, 0xb0, 0xac, 0xb1, 0xdf, 0xb5, 0x9f, 0x3a, 0xba, 0x15, 0x4b, 0x1d, 0x5d, 0x1a, 0x2b, - 0xaf, 0x9f, 0x34, 0xfa, 0xb3, 0x02, 0x94, 0xfc, 0x67, 0x43, 0x3a, 0x1f, 0x56, 0x5b, 0x2e, 0x41, - 0x6d, 0xe1, 0x1d, 0x38, 0xff, 0x52, 0x3b, 0x70, 0x21, 0xf3, 0x0e, 0x7c, 0x1e, 0x4a, 0xf4, 0x0f, - 0x2d, 0x15, 0x66, 0x3b, 0x6a, 0x91, 0x02, 0x14, 0x7c, 0x1c, 0x98, 0xe1, 0xcc, 0x44, 0x66, 0x18, - 0xcb, 0x53, 0xcf, 0xc6, 0xf3, 0xd4, 0x77, 0xfd, 0x1d, 0xb1, 0x98, 0x76, 0x8d, 0xed, 0xf3, 0x4d, - 0xdc, 0x0b, 0x63, 0x57, 0xa2, 0xa5, 0xb4, 0x2b, 0xd1, 0x80, 0xcb, 0x97, 0x36, 0x0f, 0x75, 0xc8, - 0x92, 0xcf, 0x61, 0x5b, 0xe4, 0x9e, 0xf5, 0x76, 0x24, 0xa3, 0x21, 0xa5, 0xbd, 0x07, 0x12, 0xf8, - 0x94, 0x70, 0x32, 0xe3, 0x10, 0x96, 0x22, 0x53, 0x13, 0x14, 0xd3, 0x65, 0xf3, 0x8f, 0x29, 0x95, - 0x74, 0xff, 0x3b, 0x1d, 0xf2, 0x2f, 0x29, 0x45, 0x62, 0x77, 0x87, 0xb2, 0x97, 0x13, 0x5a, 0xf1, - 0x8d, 0x68, 0x79, 0xc4, 0x0b, 0x5a, 0xdd, 0x50, 0x75, 0x04, 0x8d, 0x5c, 0x34, 0x87, 0x3f, 0x66, - 0xd1, 0x7c, 0x89, 0x43, 0x36, 0xe9, 0x51, 0xe2, 0xd8, 0x30, 0x0d, 0xf7, 0x84, 0x3d, 0x9f, 0x61, - 0x47, 0x09, 0x01, 0xda, 0xa4, 0xd7, 0x91, 0xf8, 0xb9, 0xe1, 0xa9, 0x1d, 0x4b, 0xc7, 0xd4, 0xa6, - 0xa7, 0x95, 0x22, 0x01, 0x6c, 0x59, 0x3a, 0x0e, 0x56, 0x5e, 0xf1, 0xc5, 0x56, 0x5e, 0x29, 0xb6, - 0xf2, 0x96, 0x60, 0xc6, 0xc1, 0x9a, 0x6b, 0x99, 0xec, 0x06, 0x42, 0xe1, 0x2d, 0x32, 0x35, 0x7d, - 0xec, 0xba, 0xa4, 0x27, 0x1e, 0xae, 0xf1, 0x66, 0x28, 0xcc, 0x9c, 0x1b, 0x1b, 0x66, 0x8e, 0x28, - 0x3e, 0x8b, 0x85, 0x99, 0x95, 0xb1, 0x61, 0x66, 0xa6, 0xda, 0xb3, 0x20, 0xd0, 0xae, 0x66, 0x0b, - 0xb4, 0xc3, 0x71, 0xe9, 0x7c, 0x24, 0x2e, 0xfd, 0x22, 0x17, 0xeb, 0x2f, 0x25, 0x58, 0x1e, 0x5a, - 0x56, 0x7c, 0xb9, 0xde, 0x8a, 0x55, 0xa7, 0x5d, 0x1a, 0xab, 0x33, 0xbf, 0x38, 0xed, 0x41, 0xa4, - 0x38, 0xed, 0x9d, 0xf1, 0x84, 0x9f, 0x7a, 0x6d, 0xda, 0xff, 0xe4, 0xe0, 0xd5, 0x43, 0x5b, 0x8f, - 0x45, 0x78, 0xfc, 0x9e, 0x20, 0xbb, 0xe3, 0xb8, 0x1b, 0x4d, 0x7c, 0x4f, 0x70, 0xe5, 0xc5, 0xc3, - 0xfd, 0x9d, 0x78, 0xee, 0x7b, 0xa2, 0x0b, 0x0d, 0x41, 0x8b, 0xf4, 0xa4, 0x92, 0x85, 0xfb, 0x09, - 0x89, 0xb9, 0xd1, 0x43, 0xfe, 0x8c, 0x13, 0x69, 0x32, 0x5c, 0x4c, 0x17, 0x80, 0xc7, 0x87, 0xdf, - 0x85, 0xf9, 0x9d, 0xe7, 0xb8, 0xd3, 0x3e, 0x35, 0x3b, 0x13, 0xcc, 0x43, 0x0d, 0xf2, 0x9d, 0xbe, - 0xce, 0x73, 0x0b, 0xe4, 0x6f, 0x38, 0xe4, 0xcd, 0x47, 0x43, 0x5e, 0x15, 0x6a, 0x41, 0x0f, 0xdc, - 0x96, 0x97, 0x88, 0x2d, 0xeb, 0x04, 0x99, 0x30, 0x9f, 0x53, 0x78, 0x8b, 0xc3, 0xb1, 0xc3, 0x0a, - 0xd7, 0x19, 0x1c, 0x3b, 0x4e, 0xd4, 0x35, 0xe6, 0xa3, 0xae, 0x51, 0xfe, 0x3d, 0x09, 0xca, 0xa4, - 0x87, 0x97, 0x92, 0x9f, 0x9f, 0x2b, 0xf3, 0xc1, 0xb9, 0xd2, 0x3f, 0x9e, 0x16, 0xc2, 0xc7, 0xd3, - 0x40, 0xf2, 0x69, 0x0a, 0x1e, 0x96, 0x7c, 0xc6, 0x87, 0x63, 0xc7, 0x91, 0x2f, 0xc2, 0x1c, 0x93, - 0x8d, 0x8f, 0xbc, 0x06, 0xf9, 0x81, 0xd3, 0x13, 0xf3, 0x37, 0x70, 0x7a, 0xf2, 0x4f, 0x24, 0xa8, - 0x6c, 0x7a, 0x9e, 0xd6, 0x39, 0x99, 0x60, 0x00, 0xbe, 0x70, 0xb9, 0xb0, 0x70, 0xc3, 0x83, 0x08, - 0xc4, 0x2d, 0xa4, 0x88, 0x3b, 0x1d, 0x11, 0x57, 0x86, 0xaa, 0x90, 0x25, 0x55, 0xe0, 0x3d, 0x40, - 0x2d, 0xcb, 0xf1, 0x76, 0x2d, 0xe7, 0x99, 0xe6, 0xe8, 0x93, 0x1d, 0x37, 0x11, 0x14, 0xf8, 0xab, - 0xc7, 0xf9, 0x2b, 0xd3, 0x0a, 0xfd, 0x2f, 0x5f, 0x86, 0x33, 0x11, 0x7e, 0xa9, 0x1d, 0xdf, 0x83, - 0x32, 0xdd, 0xe4, 0xf8, 0xb9, 0xe3, 0x7a, 0x38, 0x9b, 0x9d, 0x69, 0x4b, 0x94, 0xbf, 0x0e, 0x0b, - 0x24, 0x18, 0xa2, 0x70, 0xdf, 0xef, 0x7c, 0x2d, 0x16, 0x94, 0x5f, 0x48, 0x61, 0x14, 0x0b, 0xc8, - 0x7f, 0x98, 0x83, 0x69, 0x0a, 0x1f, 0x0a, 0x50, 0xce, 0x43, 0xc9, 0xc1, 0xb6, 0xa5, 0x7a, 0x5a, - 0xd7, 0x7f, 0xd1, 0x9b, 0x00, 0x0e, 0xb4, 0x2e, 0xcd, 0x7e, 0xd0, 0x87, 0xba, 0xd1, 0xc5, 0xae, - 0x27, 0x72, 0x6d, 0x65, 0x02, 0xdb, 0x66, 0x20, 0xa2, 0x24, 0x9a, 0x92, 0x2c, 0xd0, 0xcc, 0x23, - 0xfd, 0x8f, 0x56, 0xd9, 0xfb, 0x52, 0x59, 0xd2, 0x49, 0xf4, 0x6d, 0xaa, 0x06, 0x14, 0x63, 0x19, - 0x20, 0xbf, 0x8d, 0xd6, 0xa0, 0x40, 0xef, 0x8c, 0x67, 0xc7, 0xeb, 0x8d, 0x22, 0x12, 0x6b, 0xb1, - 0x0d, 0xd3, 0xc4, 0x3a, 0x8d, 0x3e, 0x8a, 0x0a, 0x6f, 0xc9, 0x3b, 0x80, 0xc2, 0xea, 0xe4, 0x13, - 0xb7, 0x06, 0x33, 0x54, 0xdb, 0x22, 0xa6, 0x5c, 0x4e, 0xe9, 0x40, 0xe1, 0x68, 0xb2, 0x06, 0x88, - 0xf5, 0x18, 0x89, 0x23, 0x27, 0x9f, 0xde, 0x11, 0x71, 0xe5, 0x5f, 0x4a, 0x70, 0x26, 0xd2, 0x07, - 0x97, 0xf5, 0x5a, 0xb4, 0x93, 0x54, 0x51, 0x79, 0x07, 0x5b, 0x91, 0x8d, 0x74, 0x2d, 0x4d, 0xa4, - 0xcf, 0x68, 0x13, 0xfd, 0x07, 0x09, 0x60, 0x73, 0xe0, 0x9d, 0xf0, 0xfb, 0xd4, 0xf0, 0x14, 0x4b, - 0xb1, 0x29, 0x6e, 0x40, 0xd1, 0xd6, 0x5c, 0xf7, 0x99, 0xe5, 0x88, 0x93, 0xa0, 0xdf, 0xa6, 0x37, - 0x9f, 0x03, 0xfe, 0x1e, 0x7a, 0x49, 0xa1, 0xff, 0xd1, 0x1b, 0x50, 0x65, 0x5f, 0x29, 0x50, 0x35, - 0x5d, 0x77, 0x44, 0x79, 0x54, 0x49, 0xa9, 0x30, 0xe8, 0x26, 0x03, 0x12, 0x34, 0x83, 0xe6, 0x17, - 0xbc, 0x53, 0xd5, 0xb3, 0x9e, 0x60, 0x93, 0x9f, 0xe8, 0x2a, 0x02, 0x7a, 0x40, 0x80, 0x2c, 0x7d, - 0xd7, 0x35, 0x5c, 0xcf, 0x11, 0x68, 0x22, 0x09, 0xc9, 0xa1, 0x14, 0x8d, 0x4c, 0x4a, 0xad, 0x35, - 0xe8, 0xf5, 0x98, 0x8a, 0x5f, 0x7c, 0xda, 0xbf, 0xca, 0x07, 0x94, 0x4b, 0x5b, 0x1c, 0x81, 0xd2, - 0xf8, 0x70, 0x3f, 0xc5, 0xab, 0xab, 0xaf, 0xc2, 0x42, 0x68, 0x0c, 0xdc, 0xac, 0x22, 0xa1, 0xb7, - 0x14, 0x0d, 0xbd, 0xe5, 0x07, 0x80, 0xd8, 0x6d, 0xcd, 0x4b, 0x8e, 0x5b, 0x3e, 0x0b, 0x67, 0x22, - 0x8c, 0xf8, 0x96, 0x7e, 0x15, 0x2a, 0xbc, 0xfc, 0x8a, 0x1b, 0xca, 0x39, 0x28, 0x12, 0xd7, 0xdc, - 0x31, 0x74, 0x51, 0xa7, 0x30, 0x6b, 0x5b, 0xfa, 0x96, 0xa1, 0x3b, 0xf2, 0x37, 0xa1, 0xc2, 0x5f, - 0xcc, 0xe5, 0xb8, 0xbb, 0x50, 0xe5, 0xb5, 0x72, 0x6a, 0xe4, 0x3d, 0xb4, 0x57, 0x53, 0x2b, 0xc1, - 0x84, 0x5a, 0xcc, 0x70, 0x53, 0xd6, 0xa1, 0xc1, 0x62, 0x8f, 0x08, 0x7b, 0x31, 0xd8, 0x5d, 0x10, - 0xe5, 0xd9, 0x63, 0x7b, 0x89, 0xd2, 0x57, 0x9c, 0x70, 0x53, 0xbe, 0x00, 0xe7, 0x13, 0x7b, 0xe1, - 0x9a, 0xb0, 0xa1, 0x16, 0x3c, 0x60, 0x2f, 0x4b, 0xf9, 0x85, 0x18, 0x52, 0xa8, 0x10, 0x63, 0xc9, - 0x0f, 0xad, 0x73, 0x62, 0x37, 0xa4, 0x71, 0x73, 0x70, 0x48, 0xca, 0xa7, 0x1d, 0x92, 0x0a, 0x91, - 0x43, 0x92, 0xdc, 0xf6, 0xf5, 0xc9, 0x0f, 0xaf, 0xf7, 0xe9, 0x21, 0x9b, 0xf5, 0x2d, 0x1c, 0xa2, - 0x3c, 0x6a, 0x94, 0x0c, 0x55, 0x09, 0x51, 0xc9, 0x6f, 0x41, 0x25, 0xea, 0x1a, 0x43, 0x7e, 0x4e, - 0x1a, 0xf2, 0x73, 0xd5, 0x98, 0x8b, 0x7b, 0x2f, 0x76, 0x6e, 0x48, 0xd7, 0x71, 0xec, 0xd4, 0x70, - 0x27, 0xe2, 0xec, 0xae, 0x26, 0x24, 0xc7, 0x3f, 0x23, 0x3f, 0xb7, 0xc8, 0xf7, 0x83, 0x5d, 0x97, - 0xd0, 0xf3, 0x41, 0xcb, 0xaf, 0x41, 0xf9, 0x30, 0xed, 0x33, 0x0b, 0x05, 0x51, 0x07, 0x76, 0x03, - 0x16, 0x77, 0x8d, 0x1e, 0x76, 0x4f, 0x5d, 0x0f, 0xf7, 0x9b, 0xd4, 0x29, 0x1d, 0x1b, 0xd8, 0x41, - 0x2b, 0x00, 0xf4, 0xe0, 0x67, 0x5b, 0x86, 0xff, 0xc2, 0x78, 0x08, 0x22, 0xff, 0xa7, 0x04, 0xf3, - 0x01, 0x61, 0x96, 0xea, 0xbc, 0xdb, 0x30, 0x7d, 0xec, 0x8a, 0x8b, 0xb6, 0xc4, 0xb4, 0x43, 0x92, - 0x20, 0x4a, 0xe1, 0xd8, 0x6d, 0xea, 0xe8, 0x7d, 0x80, 0x81, 0x8b, 0x75, 0x9e, 0xf8, 0xcb, 0x54, - 0xbb, 0x58, 0x22, 0x04, 0x2c, 0x81, 0x78, 0x07, 0xca, 0x86, 0x69, 0xe9, 0x98, 0xa6, 0x89, 0xf5, - 0x6c, 0xf5, 0x8b, 0xc0, 0x28, 0x0e, 0x5d, 0xac, 0xcb, 0x98, 0xef, 0x85, 0x42, 0xbf, 0xdc, 0x50, - 0xf6, 0x60, 0x81, 0x39, 0xad, 0x63, 0x5f, 0xf0, 0x11, 0x35, 0xe8, 0x31, 0x6d, 0x29, 0x35, 0x83, - 0xc7, 0x48, 0x82, 0x54, 0xde, 0x80, 0xb3, 0xb1, 0x6a, 0xd8, 0xec, 0x37, 0xda, 0xad, 0xd8, 0xf5, - 0x52, 0x60, 0xce, 0x37, 0xa2, 0xef, 0x28, 0x8c, 0x2f, 0xc1, 0xe5, 0xc5, 0xf1, 0xdf, 0x86, 0x73, - 0x91, 0x7b, 0xb0, 0x88, 0x44, 0x77, 0x62, 0x21, 0xe0, 0x9b, 0xe3, 0xb8, 0xc6, 0x62, 0xc1, 0xff, - 0x96, 0x60, 0x31, 0x09, 0xe1, 0x05, 0xef, 0x69, 0xbf, 0x9b, 0xf2, 0x56, 0xd4, 0xad, 0x6c, 0x62, - 0x7d, 0x2e, 0x77, 0xdc, 0x07, 0xec, 0x1d, 0x89, 0xf1, 0xb3, 0x94, 0x9f, 0x64, 0x96, 0x7e, 0x9c, - 0x0f, 0xe5, 0x2b, 0x46, 0xbc, 0xc1, 0xf0, 0xd2, 0x77, 0x80, 0xcd, 0xd8, 0x0b, 0x0c, 0xd7, 0x47, - 0x90, 0x8f, 0x79, 0x7f, 0xe1, 0xa3, 0xa4, 0xcb, 0x80, 0x1b, 0xd9, 0xf8, 0x7d, 0x69, 0xaf, 0x8d, - 0x7f, 0x9c, 0x83, 0x6a, 0x74, 0x8a, 0xd0, 0x4e, 0xc2, 0xdb, 0x0b, 0x6f, 0x64, 0x1a, 0x66, 0xe4, - 0xe5, 0x05, 0xfe, 0x86, 0x40, 0x6e, 0xd2, 0x37, 0x04, 0xf2, 0x93, 0xbc, 0x21, 0xf0, 0x10, 0xaa, - 0xcf, 0x1c, 0xc3, 0xd3, 0x8e, 0x7a, 0x58, 0xed, 0x69, 0xa7, 0xd8, 0xe1, 0x5e, 0x32, 0x83, 0x23, - 0xab, 0x08, 0xc2, 0x47, 0x84, 0x4e, 0xfe, 0x1b, 0x09, 0x8a, 0x42, 0xa4, 0xb1, 0x75, 0xf9, 0xcb, - 0x03, 0x82, 0xa6, 0xd2, 0xda, 0x5e, 0x53, 0x33, 0x2d, 0xd5, 0xc5, 0x64, 0x1f, 0xcf, 0x58, 0xd9, - 0xbe, 0x48, 0xa9, 0xb7, 0x2c, 0x07, 0xef, 0x69, 0xa6, 0xd5, 0x66, 0xa4, 0xe8, 0x01, 0xd4, 0x18, - 0x57, 0xca, 0x90, 0xb0, 0xce, 0xb8, 0x63, 0x54, 0x29, 0x19, 0x61, 0x45, 0x58, 0xba, 0xf2, 0x5f, - 0xe7, 0xa1, 0x1c, 0xd2, 0xd5, 0x98, 0xc1, 0x34, 0x61, 0x41, 0xd4, 0x42, 0xb8, 0xd8, 0x9b, 0xa4, - 0x40, 0x7f, 0x9e, 0xd3, 0xb5, 0xb1, 0xc7, 0xf6, 0xab, 0x5d, 0x98, 0xd7, 0x9e, 0x6a, 0x46, 0x8f, - 0xce, 0xc6, 0x04, 0x5b, 0x5e, 0xd5, 0xa7, 0xf2, 0xf7, 0x3d, 0xa6, 0x89, 0x09, 0xea, 0xf6, 0x81, - 0x52, 0x04, 0x2f, 0x0c, 0xb8, 0x6e, 0xa8, 0xda, 0x26, 0xc3, 0x0b, 0x03, 0xae, 0xeb, 0xf7, 0x4d, - 0x6b, 0x85, 0xe9, 0x4b, 0x13, 0x2e, 0x7f, 0x81, 0x7b, 0x5c, 0xdf, 0x84, 0x62, 0x97, 0x12, 0x10, - 0x75, 0xf6, 0xb5, 0xef, 0x59, 0x8e, 0x1a, 0xe6, 0x32, 0x9b, 0x49, 0x9d, 0x94, 0xae, 0xe5, 0xb3, - 0x92, 0xef, 0xc0, 0x39, 0x05, 0x5b, 0x36, 0x36, 0xfd, 0x95, 0xf6, 0xc8, 0xea, 0x4e, 0xb0, 0xb7, - 0xbe, 0x02, 0x8d, 0x24, 0x7a, 0xe6, 0xb9, 0xaf, 0xbe, 0x09, 0x45, 0xf1, 0xf1, 0x38, 0x34, 0x0b, - 0xf9, 0x83, 0xad, 0x56, 0x6d, 0x8a, 0xfc, 0x39, 0xdc, 0x6e, 0xd5, 0x24, 0x54, 0x84, 0x42, 0x7b, - 0xeb, 0xa0, 0x55, 0xcb, 0x5d, 0xed, 0x43, 0x2d, 0xfe, 0xe5, 0x34, 0xb4, 0x0c, 0x67, 0x5a, 0xca, - 0x7e, 0x6b, 0xf3, 0xc1, 0xe6, 0x41, 0x73, 0x7f, 0x4f, 0x6d, 0x29, 0xcd, 0x0f, 0x37, 0x0f, 0x76, - 0x6a, 0x53, 0xe8, 0x12, 0x5c, 0x08, 0x3f, 0x78, 0xb8, 0xdf, 0x3e, 0x50, 0x0f, 0xf6, 0xd5, 0xad, - 0xfd, 0xbd, 0x83, 0xcd, 0xe6, 0xde, 0x8e, 0x52, 0x93, 0xd0, 0x05, 0x38, 0x17, 0x46, 0xb9, 0xdf, - 0xdc, 0x6e, 0x2a, 0x3b, 0x5b, 0xe4, 0xff, 0xe6, 0xa3, 0x5a, 0xee, 0xea, 0x07, 0x50, 0x89, 0x7c, - 0xde, 0x8b, 0x88, 0xd4, 0xda, 0xdf, 0xae, 0x4d, 0xa1, 0x0a, 0x94, 0xc2, 0x7c, 0x8a, 0x50, 0xd8, - 0xdb, 0xdf, 0xde, 0xa9, 0xe5, 0x10, 0xc0, 0xcc, 0xc1, 0xa6, 0xf2, 0x60, 0xe7, 0xa0, 0x96, 0xbf, - 0xba, 0x11, 0x7f, 0x19, 0x0b, 0xa3, 0x05, 0xa8, 0xb4, 0x37, 0xf7, 0xb6, 0xef, 0xef, 0x7f, 0xa4, - 0x2a, 0x3b, 0x9b, 0xdb, 0x1f, 0xd7, 0xa6, 0xd0, 0x22, 0xd4, 0x04, 0x68, 0x6f, 0xff, 0x80, 0x41, - 0xa5, 0xab, 0x4f, 0x62, 0x9e, 0x10, 0xa3, 0xb3, 0xb0, 0xe0, 0x77, 0xa9, 0x6e, 0x29, 0x3b, 0x9b, - 0x07, 0x3b, 0x44, 0x92, 0x08, 0x58, 0x39, 0xdc, 0xdb, 0x6b, 0xee, 0x3d, 0xa8, 0x49, 0x84, 0x6b, - 0x00, 0xde, 0xf9, 0xa8, 0x49, 0x90, 0x73, 0x51, 0xe4, 0xc3, 0xbd, 0x6f, 0xec, 0xed, 0x7f, 0x73, - 0xaf, 0x96, 0x5f, 0xff, 0xd9, 0x19, 0xff, 0x53, 0x49, 0x6d, 0xec, 0xd0, 0x8a, 0xad, 0x16, 0xcc, - 0x8a, 0x0f, 0x13, 0x26, 0xec, 0xa3, 0xd1, 0xcf, 0x29, 0x36, 0x2e, 0x8d, 0xc0, 0xe0, 0xa7, 0xa2, - 0x29, 0x74, 0x44, 0x4f, 0x29, 0xa1, 0x57, 0x90, 0xdf, 0x4c, 0x3c, 0x13, 0x0c, 0xbd, 0xf5, 0xdc, - 0xb8, 0x3c, 0x16, 0xcf, 0xef, 0x03, 0x93, 0x83, 0x48, 0xf8, 0x2b, 0x1f, 0xe8, 0x72, 0xd2, 0x09, - 0x22, 0xe1, 0x33, 0x22, 0x8d, 0x2b, 0xe3, 0x11, 0xfd, 0x6e, 0x9e, 0x40, 0x2d, 0xfe, 0xc5, 0x0f, - 0x94, 0x90, 0x16, 0x48, 0xf9, 0xac, 0x48, 0xe3, 0x6a, 0x16, 0xd4, 0x70, 0x67, 0x43, 0x9f, 0xb0, - 0x78, 0x2b, 0xcb, 0xab, 0xfe, 0xa9, 0x9d, 0xa5, 0x7d, 0x15, 0x80, 0x29, 0x30, 0xfa, 0x96, 0x28, - 0x4a, 0xfc, 0x5e, 0x44, 0xc2, 0xcb, 0xe9, 0x49, 0x0a, 0x4c, 0x7e, 0x01, 0x59, 0x9e, 0x42, 0x27, - 0x30, 0x1f, 0x2b, 0xbd, 0x41, 0x09, 0xe4, 0xc9, 0x35, 0x46, 0x8d, 0xb7, 0x32, 0x60, 0x46, 0x2d, - 0x22, 0x5c, 0x6a, 0x93, 0x6c, 0x11, 0x09, 0x85, 0x3c, 0xc9, 0x16, 0x91, 0x58, 0xb5, 0x43, 0x8d, - 0x3b, 0x52, 0x62, 0x93, 0x64, 0xdc, 0x49, 0x85, 0x3d, 0x8d, 0xcb, 0x63, 0xf1, 0xc2, 0x4a, 0x8b, - 0x15, 0xdc, 0x24, 0x29, 0x2d, 0xb9, 0xa0, 0xa7, 0xf1, 0x56, 0x06, 0xcc, 0xb8, 0x15, 0x04, 0xe9, - 0xfb, 0x34, 0x2b, 0x18, 0x2a, 0x36, 0x49, 0xb3, 0x82, 0xe1, 0x4a, 0x00, 0x6e, 0x05, 0xb1, 0xb4, - 0xfb, 0x95, 0x0c, 0x69, 0xc2, 0x74, 0x2b, 0x48, 0x4e, 0x28, 0xca, 0x53, 0xe8, 0x47, 0x12, 0xd4, - 0xd3, 0xb2, 0x52, 0xe8, 0xfa, 0xc4, 0x29, 0xb4, 0xc6, 0xfa, 0x24, 0x24, 0xbe, 0x14, 0xdf, 0x07, - 0x34, 0xbc, 0x07, 0xa2, 0xaf, 0x24, 0xcd, 0x4c, 0xca, 0x4e, 0xdb, 0x78, 0x3b, 0x1b, 0xb2, 0xdf, - 0x65, 0x1b, 0x8a, 0x22, 0x0f, 0x86, 0x12, 0xbc, 0x74, 0x2c, 0x0b, 0xd7, 0x90, 0x47, 0xa1, 0xf8, - 0x4c, 0x1f, 0x40, 0x81, 0x40, 0xd1, 0x85, 0x64, 0x6c, 0xc1, 0x6c, 0x25, 0xed, 0xb1, 0xcf, 0xe8, - 0x31, 0xcc, 0xb0, 0xc4, 0x0f, 0x4a, 0xb8, 0x1f, 0x8a, 0xa4, 0xa7, 0x1a, 0x17, 0xd3, 0x11, 0x7c, - 0x76, 0xdf, 0x61, 0xdf, 0xac, 0xe5, 0x39, 0x1d, 0xf4, 0x7a, 0xf2, 0x87, 0xcb, 0xa2, 0x29, 0xa4, - 0xc6, 0x1b, 0x63, 0xb0, 0xc2, 0x8b, 0x22, 0x76, 0x36, 0xb9, 0x3c, 0xf6, 0x80, 0x99, 0xbe, 0x28, - 0x92, 0x8f, 0xb0, 0xcc, 0x48, 0x86, 0x8f, 0xb8, 0x49, 0x46, 0x92, 0x7a, 0xb1, 0x90, 0x64, 0x24, - 0xe9, 0xa7, 0x66, 0xb6, 0x0e, 0xe3, 0x6f, 0x54, 0x5f, 0x19, 0xff, 0xfe, 0x7f, 0xfa, 0x3a, 0x4c, - 0xf9, 0xc6, 0x80, 0x3c, 0x85, 0x3c, 0x38, 0x93, 0xf0, 0x11, 0x02, 0xf4, 0xf6, 0xb8, 0xad, 0x23, - 0xd2, 0xe3, 0xb5, 0x8c, 0xd8, 0xe1, 0x5e, 0x13, 0x2e, 0x6c, 0x93, 0x7a, 0x4d, 0xbf, 0x3d, 0x4e, - 0xea, 0x75, 0xd4, 0x2d, 0x30, 0x35, 0x6e, 0xee, 0xd4, 0x5e, 0x4d, 0xbf, 0xc5, 0x4c, 0x35, 0xee, - 0xb8, 0x0b, 0x5b, 0xff, 0x55, 0x1e, 0xe6, 0xd8, 0x65, 0x3c, 0x8f, 0xd0, 0x3e, 0x06, 0x08, 0xf2, - 0x60, 0xe8, 0xb5, 0x64, 0xa5, 0x44, 0x92, 0x8e, 0x8d, 0xd7, 0x47, 0x23, 0x85, 0x17, 0x52, 0x28, - 0xa7, 0x94, 0xb4, 0x90, 0x86, 0x53, 0x67, 0x49, 0x0b, 0x29, 0x21, 0x31, 0x25, 0x4f, 0xa1, 0x0f, - 0xa1, 0xe4, 0x27, 0x2f, 0x50, 0x52, 0xf2, 0x23, 0x96, 0x9d, 0x69, 0xbc, 0x36, 0x12, 0x27, 0x2c, - 0x75, 0x28, 0x33, 0x91, 0x24, 0xf5, 0x70, 0x06, 0x24, 0x49, 0xea, 0xa4, 0xf4, 0x46, 0xa0, 0x13, - 0x76, 0x7f, 0x99, 0xaa, 0x93, 0xc8, 0xf5, 0x71, 0xaa, 0x4e, 0xa2, 0x97, 0xa0, 0xf2, 0xd4, 0xfd, - 0xdd, 0x5f, 0xfc, 0x7a, 0x45, 0xfa, 0xa7, 0x5f, 0xaf, 0x4c, 0xfd, 0xf0, 0x93, 0x15, 0xe9, 0x17, - 0x9f, 0xac, 0x48, 0xff, 0xf8, 0xc9, 0x8a, 0xf4, 0xaf, 0x9f, 0xac, 0x48, 0xbf, 0xfd, 0x6f, 0x2b, - 0x53, 0xdf, 0xba, 0xf2, 0xe4, 0xa6, 0xbb, 0x6a, 0x58, 0x6b, 0x1d, 0xc7, 0xb8, 0xa6, 0xd9, 0xc6, - 0x9a, 0xfd, 0xa4, 0xbb, 0xa6, 0xd9, 0x86, 0xbb, 0xc6, 0xb9, 0xaf, 0x09, 0xee, 0x47, 0x33, 0xf4, - 0xcb, 0xdb, 0xef, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x58, 0x83, 0xb8, 0x3f, 0x5d, - 0x00, 0x00, + // 5841 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x7c, 0xdd, 0x6f, 0x1b, 0xd9, + 0x75, 0xb8, 0x86, 0xa4, 0x24, 0xf2, 0x50, 0xa4, 0xa8, 0x6b, 0x59, 0xa2, 0xe9, 0xb5, 0xd6, 0x9e, + 0xfd, 0xb0, 0xd7, 0x59, 0x4b, 0xb1, 0x76, 0xe3, 0xdd, 0x95, 0x77, 0x6d, 0xeb, 0xd3, 0x66, 0x62, + 0x4b, 0xfc, 0x0d, 0xa5, 0xcd, 0x6e, 0x92, 0x1f, 0x26, 0x23, 0xce, 0x15, 0x35, 0x31, 0x39, 0x33, + 0x99, 0x19, 0xda, 0x56, 0xfa, 0x12, 0x20, 0x40, 0x1e, 0xf2, 0x54, 0xa0, 0x28, 0x02, 0x14, 0x45, + 0x81, 0xb4, 0x40, 0xfb, 0x9c, 0x16, 0x7d, 0xea, 0x4b, 0x5b, 0xb4, 0x68, 0xd0, 0x0f, 0xa0, 0x4f, + 0x41, 0x8b, 0xf4, 0xa1, 0xd9, 0xa2, 0x40, 0x51, 0xa0, 0x40, 0xd1, 0xbf, 0xa0, 0xb8, 0x5f, 0xf3, + 0xc5, 0x19, 0x72, 0x68, 0xef, 0x57, 0x9f, 0xc8, 0x39, 0x73, 0xce, 0xb9, 0xe7, 0x9e, 0x7b, 0xee, + 0xb9, 0xe7, 0xde, 0x73, 0xee, 0x40, 0x49, 0xb3, 0x8d, 0x55, 0xdb, 0xb1, 0x3c, 0x0b, 0xd5, 0x9c, + 0x81, 0xe9, 0x19, 0x7d, 0xbc, 0xfa, 0xe4, 0xa6, 0xd6, 0xb3, 0x4f, 0xb5, 0xf5, 0xc6, 0x8d, 0xae, + 0xe1, 0x9d, 0x0e, 0x8e, 0x57, 0x3b, 0x56, 0x7f, 0xad, 0x6b, 0x75, 0xad, 0x35, 0x8a, 0x78, 0x3c, + 0x38, 0xa1, 0x4f, 0xf4, 0x81, 0xfe, 0x63, 0x0c, 0xe4, 0xeb, 0x50, 0xfd, 0x10, 0x3b, 0xae, 0x61, + 0x99, 0x0a, 0xfe, 0xfe, 0x00, 0xbb, 0x1e, 0xaa, 0xc3, 0xec, 0x13, 0x06, 0xa9, 0x4b, 0x97, 0xa5, + 0x6b, 0x25, 0x45, 0x3c, 0xca, 0x7f, 0x24, 0xc1, 0xbc, 0x8f, 0xec, 0xda, 0x96, 0xe9, 0xe2, 0x74, + 0x6c, 0x74, 0x05, 0xe6, 0xb8, 0x70, 0xaa, 0xa9, 0xf5, 0x71, 0x3d, 0x47, 0x5f, 0x97, 0x39, 0x6c, + 0x5f, 0xeb, 0x63, 0x74, 0x15, 0xe6, 0x05, 0x8a, 0x60, 0x92, 0xa7, 0x58, 0x55, 0x0e, 0xe6, 0xad, + 0xa1, 0x55, 0x38, 0x27, 0x10, 0x35, 0xdb, 0xf0, 0x91, 0x0b, 0x14, 0x79, 0x81, 0xbf, 0xda, 0xb4, + 0x0d, 0x8e, 0x2f, 0x7f, 0x1b, 0x4a, 0x3b, 0xfb, 0xed, 0x6d, 0xcb, 0x3c, 0x31, 0xba, 0x44, 0x44, + 0x17, 0x3b, 0x84, 0xa6, 0x2e, 0x5d, 0xce, 0x13, 0x11, 0xf9, 0x23, 0x6a, 0x40, 0xd1, 0xc5, 0x9a, + 0xd3, 0x39, 0xc5, 0x6e, 0x3d, 0x47, 0x5f, 0xf9, 0xcf, 0x84, 0xca, 0xb2, 0x3d, 0xc3, 0x32, 0xdd, + 0x7a, 0x9e, 0x51, 0xf1, 0x47, 0xf9, 0xf7, 0x25, 0x28, 0xb7, 0x2c, 0xc7, 0x7b, 0xa4, 0xd9, 0xb6, + 0x61, 0x76, 0xd1, 0x2d, 0x28, 0x52, 0x5d, 0x76, 0xac, 0x1e, 0xd5, 0x41, 0x75, 0xbd, 0xb1, 0x1a, + 0x1f, 0x96, 0xd5, 0x16, 0xc7, 0x50, 0x7c, 0x5c, 0xf4, 0x1a, 0x54, 0x3b, 0x96, 0xe9, 0x69, 0x86, + 0x89, 0x1d, 0xd5, 0xb6, 0x1c, 0x8f, 0xaa, 0x68, 0x5a, 0xa9, 0xf8, 0x50, 0xd2, 0x0a, 0xba, 0x08, + 0xa5, 0x53, 0xcb, 0xf5, 0x18, 0x46, 0x9e, 0x62, 0x14, 0x09, 0x80, 0xbe, 0x5c, 0x86, 0x59, 0xfa, + 0xd2, 0xb0, 0xb9, 0x32, 0x66, 0xc8, 0x63, 0xd3, 0x96, 0x7f, 0x29, 0xc1, 0xf4, 0x23, 0x6b, 0x60, + 0x7a, 0xb1, 0x66, 0x34, 0xef, 0x94, 0x0f, 0x54, 0xa8, 0x19, 0xcd, 0x3b, 0x0d, 0x9a, 0x21, 0x18, + 0x6c, 0xac, 0x58, 0x33, 0xe4, 0x65, 0x03, 0x8a, 0x0e, 0xd6, 0x74, 0xcb, 0xec, 0x9d, 0x51, 0x11, + 0x8a, 0x8a, 0xff, 0x4c, 0x06, 0xd1, 0xc5, 0x3d, 0xc3, 0x1c, 0x3c, 0x53, 0x1d, 0xdc, 0xd3, 0x8e, + 0x71, 0x8f, 0x8a, 0x52, 0x54, 0xaa, 0x1c, 0xac, 0x30, 0x28, 0xda, 0x81, 0xb2, 0xed, 0x58, 0xb6, + 0xd6, 0xd5, 0x88, 0x1e, 0xeb, 0xd3, 0x54, 0x55, 0xf2, 0xb0, 0xaa, 0xa8, 0xd8, 0xad, 0x00, 0x53, + 0x09, 0x93, 0xc9, 0x2a, 0x94, 0x9a, 0x3b, 0x42, 0xf5, 0x7e, 0xf7, 0x75, 0xda, 0xa9, 0x0a, 0xef, + 0xbe, 0x4e, 0x8c, 0x2f, 0xe8, 0xb4, 0xa1, 0xd3, 0x0e, 0x55, 0x94, 0xb2, 0x0f, 0x6b, 0xea, 0x68, + 0x09, 0x66, 0x7a, 0xd8, 0xec, 0x7a, 0xa7, 0xb4, 0x47, 0x15, 0x85, 0x3f, 0xc9, 0x7f, 0x28, 0x41, + 0xe5, 0xc8, 0xc5, 0x0e, 0xb1, 0x50, 0xd7, 0xd6, 0x3a, 0x18, 0xbd, 0x05, 0x85, 0xbe, 0xa5, 0x63, + 0x3e, 0xb8, 0x2f, 0x0f, 0x4b, 0xec, 0xa3, 0x3e, 0xb2, 0x74, 0xac, 0x50, 0x64, 0xb4, 0x06, 0x85, + 0x81, 0xa1, 0x33, 0xbb, 0x2a, 0xaf, 0x5f, 0x1c, 0x26, 0xf2, 0x7b, 0xa1, 0x50, 0x44, 0x42, 0xd0, + 0x25, 0x04, 0xf9, 0x0c, 0x04, 0x04, 0x51, 0xfe, 0x69, 0x0e, 0xe6, 0xfd, 0x96, 0x0f, 0xa8, 0x71, + 0xa2, 0xf7, 0x60, 0xd6, 0xc4, 0xde, 0x53, 0xcb, 0x79, 0x9c, 0x55, 0x5a, 0x81, 0x8f, 0x6e, 0x42, + 0xde, 0xe6, 0x9a, 0xca, 0x40, 0x46, 0x70, 0x09, 0x89, 0x61, 0x77, 0xa8, 0xfe, 0xb2, 0x90, 0x18, + 0x76, 0x87, 0x98, 0x99, 0xa7, 0x39, 0x5d, 0x4c, 0xc7, 0x8c, 0x99, 0x6c, 0x91, 0x01, 0x9a, 0x3a, + 0xda, 0x83, 0xea, 0xc0, 0xc5, 0x8e, 0xe9, 0xaa, 0x62, 0xea, 0x11, 0x23, 0x29, 0x27, 0xb1, 0x8e, + 0x8c, 0x90, 0x52, 0x61, 0x64, 0x07, 0x7c, 0x86, 0xca, 0x00, 0x4d, 0xd3, 0xbb, 0xf5, 0xf6, 0x87, + 0x5a, 0x6f, 0x80, 0xd1, 0x22, 0x4c, 0x3f, 0x21, 0x7f, 0xa8, 0x46, 0xf2, 0x0a, 0x7b, 0x90, 0x7f, + 0x5d, 0x80, 0x8b, 0x0f, 0x89, 0x79, 0xb6, 0x35, 0x53, 0x3f, 0xb6, 0x9e, 0xb5, 0x71, 0x67, 0xe0, + 0x18, 0xde, 0xd9, 0xb6, 0x65, 0x7a, 0xf8, 0x99, 0x87, 0xf6, 0x61, 0xc1, 0x14, 0xfc, 0x7d, 0x71, + 0x24, 0x2a, 0xce, 0x95, 0x11, 0x3d, 0x65, 0x22, 0x28, 0x35, 0x33, 0x0a, 0x70, 0xd1, 0x83, 0x60, + 0x9a, 0x08, 0x6e, 0xb9, 0xb4, 0xce, 0xb5, 0x77, 0xa9, 0x64, 0x9c, 0x97, 0x98, 0x47, 0x82, 0xd3, + 0xfb, 0x40, 0x9c, 0xa8, 0xaa, 0xb9, 0x2a, 0xe9, 0x35, 0xd5, 0x7e, 0x79, 0xfd, 0xa5, 0x04, 0x7b, + 0xf1, 0x55, 0xa0, 0x94, 0x9c, 0x81, 0xb9, 0xe9, 0x12, 0x9d, 0xa1, 0x3b, 0xd4, 0x2d, 0x13, 0xea, + 0xae, 0x63, 0x0d, 0xec, 0x7a, 0x31, 0x03, 0x39, 0x50, 0xf2, 0xfb, 0x04, 0x9f, 0xfa, 0x6c, 0x3e, + 0xf5, 0x55, 0xc7, 0xb2, 0xbc, 0x13, 0x57, 0x4c, 0x77, 0x01, 0x56, 0x28, 0x14, 0xad, 0xc1, 0x39, + 0x77, 0x60, 0xdb, 0x3d, 0xdc, 0xc7, 0xa6, 0xa7, 0xf5, 0x58, 0x73, 0x64, 0x44, 0xf3, 0xd7, 0xf2, + 0x0a, 0x0a, 0xbf, 0xa2, 0x8c, 0x5d, 0xb4, 0x02, 0x60, 0x3b, 0xc6, 0x13, 0xa3, 0x87, 0xbb, 0x58, + 0xaf, 0xcf, 0x50, 0xa6, 0x21, 0x08, 0xba, 0x4d, 0xfc, 0x78, 0xa7, 0x63, 0xf5, 0xed, 0x7a, 0x29, + 0x6d, 0x1c, 0xc4, 0x28, 0xb6, 0x1c, 0xeb, 0xc4, 0xe8, 0x61, 0x45, 0x50, 0xa0, 0x0f, 0xa0, 0xa8, + 0xd9, 0xb6, 0xe6, 0xf4, 0x2d, 0xa7, 0x0e, 0x59, 0xa9, 0x7d, 0x12, 0xf4, 0x36, 0x2c, 0x72, 0x4e, + 0xaa, 0xcd, 0x5e, 0x32, 0x47, 0x39, 0x4b, 0x2c, 0x78, 0x2b, 0x57, 0x97, 0x14, 0xc4, 0xdf, 0x73, + 0x5a, 0xe2, 0x36, 0xe5, 0xbf, 0x95, 0x60, 0x3e, 0xc6, 0x13, 0xb5, 0x60, 0x4e, 0x70, 0xf0, 0xce, + 0x6c, 0xe1, 0x54, 0x6e, 0x8c, 0x15, 0x66, 0x95, 0xff, 0x1e, 0x9e, 0xd9, 0x98, 0x7a, 0x44, 0xf1, + 0x80, 0x5e, 0x81, 0x4a, 0xcf, 0xea, 0x68, 0x3d, 0xea, 0x09, 0x1d, 0x7c, 0xc2, 0xbd, 0xf7, 0x9c, + 0x0f, 0x54, 0xf0, 0x89, 0x7c, 0x0f, 0xca, 0x21, 0x06, 0x08, 0x41, 0x55, 0x61, 0x0d, 0xee, 0xe0, + 0x13, 0x6d, 0xd0, 0xf3, 0x6a, 0x53, 0xa8, 0x0a, 0x70, 0x64, 0x76, 0xc8, 0x9a, 0x69, 0x62, 0xbd, + 0x26, 0xa1, 0x0a, 0x94, 0x1e, 0x0a, 0x16, 0xb5, 0x9c, 0xfc, 0xc7, 0x79, 0x38, 0x4f, 0xcd, 0xb2, + 0x65, 0xe9, 0x7c, 0xce, 0xf0, 0x05, 0xf6, 0x15, 0xa8, 0x74, 0xe8, 0xe8, 0xaa, 0xb6, 0xe6, 0x60, + 0xd3, 0xe3, 0x0b, 0xcc, 0x1c, 0x03, 0xb6, 0x28, 0x0c, 0x7d, 0x04, 0x35, 0x97, 0xf7, 0x48, 0xed, + 0xb0, 0x39, 0xc6, 0x27, 0x40, 0x42, 0xdf, 0x47, 0x4c, 0x4c, 0x65, 0xde, 0x1d, 0x9a, 0xa9, 0xb3, + 0xee, 0x99, 0xdb, 0xf1, 0x7a, 0xc2, 0x77, 0xbe, 0x9d, 0xc2, 0x30, 0x2e, 0xf8, 0x6a, 0x9b, 0x91, + 0xed, 0x9a, 0x9e, 0x73, 0xa6, 0x08, 0x26, 0x68, 0x17, 0x8a, 0xd6, 0x13, 0xec, 0x9c, 0x62, 0x8d, + 0x79, 0xa8, 0xf2, 0xfa, 0x1b, 0x29, 0x0c, 0xb7, 0xc5, 0x72, 0xa2, 0x60, 0xd7, 0x1a, 0x38, 0x1d, + 0xec, 0x2a, 0x3e, 0x29, 0xba, 0x0f, 0x25, 0x47, 0x80, 0xb9, 0x1f, 0x9b, 0x80, 0x4f, 0x40, 0xdb, + 0xd8, 0x80, 0xb9, 0xb0, 0xa0, 0xa8, 0x06, 0xf9, 0xc7, 0xf8, 0x8c, 0x2b, 0x99, 0xfc, 0x0d, 0x3c, + 0x1c, 0x1b, 0x79, 0xf6, 0xb0, 0x91, 0x7b, 0x57, 0x92, 0x1d, 0x40, 0x41, 0xaf, 0x1f, 0x61, 0x4f, + 0xd3, 0x35, 0x4f, 0x43, 0x08, 0x0a, 0x34, 0x24, 0x63, 0x2c, 0xe8, 0x7f, 0xc2, 0x75, 0xc0, 0xdd, + 0x7f, 0x49, 0x21, 0x7f, 0xd1, 0x4b, 0x50, 0xf2, 0xbd, 0x18, 0x8f, 0xcb, 0x02, 0x00, 0x89, 0x8f, + 0x34, 0xcf, 0xc3, 0x7d, 0xdb, 0xa3, 0x4a, 0xaa, 0x28, 0xe2, 0x51, 0xfe, 0x93, 0x69, 0xa8, 0x0d, + 0xd9, 0xc8, 0x3d, 0x28, 0xf6, 0x79, 0xf3, 0xdc, 0x8b, 0xbe, 0x9a, 0x10, 0x24, 0x0d, 0x89, 0xaa, + 0xf8, 0x54, 0x24, 0x06, 0x21, 0x96, 0x18, 0x8a, 0x25, 0xfd, 0x67, 0x36, 0x05, 0xba, 0xaa, 0x6e, + 0x38, 0xb8, 0xe3, 0x59, 0xce, 0x19, 0x17, 0x77, 0xae, 0x67, 0x75, 0x77, 0x04, 0x0c, 0x6d, 0x00, + 0xe8, 0xa6, 0xab, 0x52, 0x0b, 0xef, 0xf2, 0x91, 0x4d, 0x58, 0x66, 0xfd, 0xc0, 0x51, 0x29, 0xe9, + 0xa6, 0xcb, 0xc5, 0xdf, 0x82, 0x0a, 0x89, 0xbf, 0xd4, 0x3e, 0x5b, 0x81, 0x99, 0x1b, 0x2b, 0xaf, + 0x5f, 0x4a, 0xea, 0x83, 0x1f, 0x19, 0x2a, 0x73, 0x76, 0xf0, 0xe0, 0xa2, 0x3d, 0x98, 0xa1, 0x81, + 0x90, 0x5b, 0x9f, 0xa1, 0xc4, 0xab, 0xa3, 0x14, 0xc0, 0x2d, 0xf4, 0x21, 0x25, 0x60, 0x06, 0xca, + 0xa9, 0xd1, 0x11, 0x94, 0x35, 0xd3, 0xb4, 0x3c, 0x8d, 0xad, 0x22, 0xb3, 0x94, 0xd9, 0x5b, 0x19, + 0x98, 0x6d, 0x06, 0x54, 0x8c, 0x63, 0x98, 0x0f, 0xfa, 0x00, 0xa6, 0xe9, 0x32, 0xc3, 0x57, 0x84, + 0xab, 0x19, 0x27, 0x91, 0xc2, 0xa8, 0xd0, 0x36, 0xcc, 0x3e, 0x35, 0x4c, 0xdd, 0x7a, 0xea, 0x72, + 0xef, 0x9c, 0x60, 0xec, 0xdf, 0x64, 0x08, 0x43, 0x2c, 0x04, 0x65, 0xe3, 0x3d, 0x28, 0x87, 0x7a, + 0x3c, 0x89, 0xa5, 0x37, 0xee, 0x40, 0x2d, 0xde, 0xbf, 0x89, 0x66, 0xca, 0x6f, 0xc0, 0xa2, 0x32, + 0x30, 0x03, 0xd1, 0xc4, 0x76, 0x68, 0x03, 0x66, 0xb8, 0xc5, 0x30, 0xb3, 0x95, 0xc7, 0x2b, 0x5a, + 0xe1, 0x14, 0xe1, 0xfd, 0xcd, 0xa9, 0x66, 0xea, 0x3d, 0xec, 0xf0, 0x76, 0xc5, 0xfe, 0xe6, 0x01, + 0x83, 0xca, 0x1f, 0xc0, 0xf9, 0x58, 0xe3, 0x7c, 0x7b, 0xf5, 0x2a, 0x54, 0x6d, 0x4b, 0x57, 0x5d, + 0x06, 0x16, 0x71, 0x6e, 0x89, 0x58, 0x96, 0xc0, 0x6d, 0xea, 0x84, 0xbc, 0xed, 0x59, 0xf6, 0xb0, + 0xf0, 0xd9, 0xc8, 0xeb, 0xb0, 0x14, 0x27, 0x67, 0xcd, 0xcb, 0x77, 0x61, 0x59, 0xc1, 0x7d, 0xeb, + 0x09, 0x7e, 0x5e, 0xd6, 0x0d, 0xa8, 0x0f, 0x33, 0xe0, 0xcc, 0x3f, 0x86, 0xe5, 0x00, 0xda, 0xf6, + 0x34, 0x6f, 0xe0, 0x4e, 0xc4, 0x9c, 0xef, 0x3d, 0x8f, 0x2d, 0x97, 0x0d, 0x67, 0x51, 0x11, 0x8f, + 0xf2, 0x32, 0x4c, 0xb7, 0x2c, 0xbd, 0xd9, 0x42, 0x55, 0xc8, 0x19, 0x36, 0x27, 0xce, 0x19, 0xb6, + 0x6c, 0x84, 0xdb, 0xdc, 0x67, 0x91, 0x2f, 0x6b, 0x3a, 0x8e, 0x8a, 0xee, 0x40, 0x55, 0xd3, 0x75, + 0x83, 0x98, 0x93, 0xd6, 0x53, 0x0d, 0x5b, 0x84, 0xf2, 0xcb, 0x89, 0x06, 0xd0, 0x6c, 0x29, 0x95, + 0x00, 0xbd, 0x69, 0xbb, 0xf2, 0x03, 0x28, 0x05, 0x5b, 0x88, 0xdb, 0xc1, 0x6e, 0x32, 0x97, 0x35, + 0x86, 0xf4, 0x37, 0x9c, 0x87, 0x43, 0x0b, 0x2f, 0x17, 0xf9, 0x36, 0x80, 0xef, 0x90, 0x45, 0x70, + 0x7a, 0x71, 0x04, 0x63, 0x25, 0x84, 0x2e, 0xff, 0x28, 0xe2, 0xa6, 0x43, 0x4a, 0xd0, 0x7d, 0x25, + 0xe8, 0x11, 0xb7, 0x9d, 0x7b, 0x2e, 0xb7, 0xfd, 0x0e, 0x4c, 0xbb, 0x9e, 0xe6, 0x61, 0xbe, 0x4b, + 0xb8, 0x32, 0x8a, 0x9c, 0x08, 0x81, 0x15, 0x86, 0x8f, 0x2e, 0x01, 0x74, 0x1c, 0xac, 0x79, 0x58, + 0x57, 0x35, 0xb6, 0xc6, 0xe4, 0x95, 0x12, 0x87, 0x6c, 0x7a, 0xc4, 0xdf, 0x88, 0x9d, 0x4e, 0xea, + 0xe2, 0x9a, 0x32, 0xd4, 0xc1, 0x9e, 0xc7, 0xf7, 0x79, 0x33, 0x19, 0x7d, 0x1e, 0x67, 0xc0, 0x7d, + 0x5e, 0xe0, 0xd1, 0x67, 0xc7, 0x7b, 0x74, 0x46, 0x9a, 0xc5, 0xa3, 0x17, 0xc7, 0x7b, 0x74, 0xce, + 0x6c, 0xb4, 0x47, 0x4f, 0x70, 0x3f, 0xa5, 0x24, 0xf7, 0xf3, 0x45, 0xba, 0xdd, 0x7f, 0x96, 0xa0, + 0x3e, 0xec, 0x05, 0xb8, 0xf7, 0xdb, 0x80, 0x19, 0x97, 0x42, 0xb2, 0xf8, 0x5e, 0x4e, 0xcb, 0x29, + 0xd0, 0x03, 0x28, 0x18, 0xe6, 0x89, 0xc5, 0x27, 0xed, 0xdb, 0x19, 0x28, 0x79, 0xab, 0xab, 0x4d, + 0xf3, 0xc4, 0x62, 0xda, 0xa4, 0x1c, 0x1a, 0xef, 0x40, 0xc9, 0x07, 0x4d, 0xd4, 0xb7, 0x03, 0x58, + 0x8c, 0xd9, 0x36, 0xdb, 0x90, 0xfa, 0x53, 0x42, 0x9a, 0x6c, 0x4a, 0xc8, 0x3f, 0xcc, 0x85, 0xa7, + 0xec, 0x9e, 0xd1, 0xf3, 0xb0, 0x33, 0x34, 0x65, 0xdf, 0x17, 0xdc, 0xd9, 0x7c, 0x7d, 0x7d, 0x2c, + 0x77, 0xb6, 0xc7, 0xe3, 0xb3, 0xee, 0x3b, 0x50, 0xa5, 0x46, 0xa9, 0xba, 0xb8, 0x47, 0xe3, 0x26, + 0x1e, 0x53, 0x7f, 0x6d, 0x14, 0x1b, 0x26, 0x09, 0x33, 0xed, 0x36, 0xa7, 0x63, 0x1a, 0xac, 0xf4, + 0xc2, 0xb0, 0xc6, 0x3d, 0x40, 0xc3, 0x48, 0x13, 0xe9, 0xb4, 0x4d, 0x7c, 0xa1, 0xeb, 0x25, 0xae, + 0xd3, 0x27, 0x54, 0x8c, 0x2c, 0xb6, 0xc2, 0x04, 0x56, 0x38, 0x85, 0xfc, 0x5f, 0x79, 0x80, 0xe0, + 0xe5, 0xff, 0x21, 0x27, 0x78, 0xcf, 0x77, 0x40, 0x2c, 0x1e, 0xbd, 0x36, 0x8a, 0x71, 0xa2, 0xeb, + 0x39, 0x88, 0xba, 0x1e, 0x16, 0x99, 0xde, 0x18, 0xc9, 0x66, 0x62, 0xa7, 0x33, 0xfb, 0x65, 0x73, + 0x3a, 0x0f, 0x61, 0x29, 0x6e, 0x44, 0xdc, 0xe3, 0xac, 0xc3, 0xb4, 0xe1, 0xe1, 0x3e, 0x3b, 0x29, + 0x4e, 0x3c, 0x16, 0x09, 0x11, 0x31, 0x54, 0xf9, 0x0e, 0x2c, 0x45, 0x47, 0x6f, 0xb2, 0x30, 0x46, + 0x56, 0xe2, 0x71, 0x50, 0xe0, 0x00, 0xb9, 0xdd, 0x8c, 0x38, 0x78, 0x8a, 0x53, 0x32, 0x7c, 0xf9, + 0xef, 0x25, 0x38, 0x1f, 0x7b, 0x95, 0xe2, 0x2e, 0xb4, 0xa1, 0x09, 0xcf, 0x3c, 0xe6, 0xc6, 0xd8, + 0xb6, 0x3e, 0xc7, 0x59, 0xff, 0xff, 0xa1, 0x11, 0x1d, 0xb0, 0x88, 0x9a, 0xef, 0xc6, 0xa6, 0xfe, + 0xd5, 0x8c, 0xa2, 0xfb, 0xf3, 0xff, 0x43, 0xb8, 0x98, 0xc8, 0x7e, 0x78, 0x14, 0xf2, 0x13, 0x8d, + 0xc2, 0x4f, 0xf2, 0xe1, 0x15, 0x60, 0xd3, 0xf3, 0x1c, 0xe3, 0x78, 0xe0, 0xe1, 0xcf, 0x22, 0xcc, + 0xfa, 0xba, 0xef, 0x09, 0x98, 0xbf, 0x5e, 0x1f, 0x45, 0x1f, 0x48, 0x92, 0xe8, 0x13, 0x3e, 0x8e, + 0xfa, 0x84, 0x02, 0x65, 0xf8, 0x4e, 0x46, 0x86, 0x23, 0xbd, 0xc3, 0x17, 0x39, 0xe9, 0x7f, 0x25, + 0xc1, 0x7c, 0x6c, 0x9c, 0xd0, 0x1e, 0x80, 0xe6, 0x8b, 0xce, 0xad, 0xe7, 0xf5, 0x6c, 0x1d, 0x55, + 0x42, 0x94, 0x64, 0xcd, 0x65, 0x71, 0x64, 0xea, 0x9a, 0x9b, 0x10, 0x47, 0xfa, 0x61, 0xe4, 0x56, + 0xb0, 0x75, 0x66, 0x87, 0xb9, 0xd7, 0x32, 0x6c, 0x9d, 0x19, 0x07, 0x41, 0x28, 0xff, 0x3c, 0x07, + 0x8b, 0x49, 0x6d, 0xa0, 0x37, 0x21, 0xdf, 0xb1, 0x07, 0xbc, 0x6f, 0x09, 0x89, 0xa9, 0x6d, 0x7b, + 0x70, 0xe4, 0x6a, 0x5d, 0xac, 0x10, 0x34, 0xf4, 0x35, 0x98, 0xe9, 0xe3, 0xbe, 0xe5, 0x9c, 0xf1, + 0x9e, 0x24, 0x1c, 0x70, 0x3c, 0xa2, 0xef, 0x19, 0x0d, 0x47, 0x46, 0xef, 0x06, 0xc1, 0x38, 0xeb, + 0xc1, 0x4a, 0xc2, 0x2e, 0x84, 0x21, 0x30, 0x42, 0x3f, 0x02, 0x7f, 0x17, 0x66, 0x6d, 0xc7, 0xea, + 0x60, 0xd7, 0xe5, 0x27, 0x32, 0x2b, 0x89, 0xb9, 0x33, 0x82, 0xc0, 0x29, 0x39, 0x3a, 0xba, 0x07, + 0xe0, 0xa7, 0x73, 0xc4, 0xfa, 0x77, 0x39, 0xa1, 0x7f, 0x02, 0x87, 0x29, 0x2c, 0x44, 0x43, 0xf6, + 0xbd, 0xc9, 0x6a, 0x95, 0xff, 0x4e, 0x82, 0xb9, 0xb0, 0xbc, 0xe8, 0x25, 0x28, 0x11, 0xb6, 0xae, + 0xa7, 0xf5, 0x6d, 0x9e, 0x47, 0x08, 0x00, 0xe8, 0x10, 0x16, 0x74, 0x76, 0x8c, 0xaa, 0x1a, 0xa6, + 0x87, 0x9d, 0x13, 0xad, 0x23, 0xc2, 0xaf, 0xab, 0xa9, 0x8a, 0x68, 0x0a, 0x4c, 0xd6, 0xaf, 0x1a, + 0xe7, 0xe0, 0x83, 0xd1, 0x7d, 0x00, 0x9f, 0x9b, 0x98, 0xd6, 0x99, 0xd9, 0x85, 0x48, 0xe5, 0x9f, + 0xe6, 0xe0, 0x7c, 0x22, 0x56, 0xe2, 0x41, 0xe0, 0xbb, 0x50, 0x74, 0x9e, 0xa9, 0xc7, 0x67, 0x1e, + 0x76, 0xd3, 0x8d, 0xe0, 0x28, 0x94, 0x1d, 0x98, 0x75, 0x9e, 0x6d, 0x11, 0x6c, 0xb4, 0x01, 0x25, + 0xe7, 0x99, 0x8a, 0x1d, 0xc7, 0x72, 0x84, 0x25, 0x8f, 0x21, 0x2d, 0x3a, 0xcf, 0x76, 0x29, 0x3a, + 0x69, 0xd5, 0x13, 0xad, 0x16, 0x32, 0xb5, 0xea, 0x05, 0xad, 0x7a, 0x7e, 0xab, 0xd3, 0x99, 0x5a, + 0xf5, 0x78, 0xab, 0xb2, 0x0d, 0x73, 0x61, 0xe3, 0x1a, 0x33, 0xcc, 0x5b, 0x50, 0xe1, 0xc6, 0xa7, + 0x76, 0xac, 0x81, 0xe9, 0x65, 0x53, 0xcf, 0x1c, 0xa7, 0xd9, 0x26, 0x24, 0xf2, 0xcf, 0x25, 0x28, + 0x35, 0xfb, 0x5a, 0x17, 0xb7, 0x6d, 0xdc, 0x21, 0xde, 0xca, 0x20, 0x0f, 0x7c, 0x00, 0xd8, 0x03, + 0xda, 0x8f, 0xfa, 0x5f, 0xb6, 0x1e, 0xbf, 0x99, 0x90, 0xa1, 0x11, 0x7c, 0xc6, 0x38, 0xdd, 0x17, + 0xf5, 0x9c, 0xeb, 0x50, 0xfc, 0x06, 0x3e, 0x63, 0x7b, 0x97, 0x8c, 0x74, 0xf2, 0xcf, 0x0a, 0xb0, + 0x9c, 0x72, 0xb6, 0x4d, 0x83, 0x5a, 0x7b, 0xa0, 0xda, 0xd8, 0x31, 0x2c, 0x5d, 0xa8, 0xb9, 0x63, + 0x0f, 0x5a, 0x14, 0x80, 0x2e, 0x02, 0x79, 0x50, 0xbf, 0x3f, 0xb0, 0xf8, 0x6a, 0x98, 0x57, 0x8a, + 0x1d, 0x7b, 0xf0, 0xff, 0xc8, 0xb3, 0xa0, 0x75, 0x4f, 0x35, 0x07, 0x33, 0x23, 0x63, 0xb4, 0x6d, + 0x0a, 0x40, 0x37, 0xe1, 0x3c, 0x73, 0x49, 0x6a, 0xcf, 0xe8, 0x1b, 0x64, 0x3a, 0x86, 0x6c, 0x2a, + 0xaf, 0x20, 0xf6, 0xf2, 0x21, 0x79, 0xd7, 0x34, 0x99, 0xfd, 0xc8, 0x50, 0xb1, 0xac, 0xbe, 0xea, + 0x76, 0x2c, 0x07, 0xab, 0x9a, 0xfe, 0x3d, 0x6a, 0x43, 0x79, 0xa5, 0x6c, 0x59, 0xfd, 0x36, 0x81, + 0x6d, 0xea, 0xdf, 0x43, 0x2f, 0x43, 0xb9, 0x63, 0x0f, 0x5c, 0xec, 0xa9, 0xe4, 0x87, 0x9e, 0x16, + 0x94, 0x14, 0x60, 0xa0, 0x6d, 0x7b, 0xe0, 0x86, 0x10, 0xfa, 0x24, 0x7a, 0x9c, 0x0d, 0x23, 0x3c, + 0xc2, 0x7d, 0x9a, 0xfe, 0x3b, 0x1d, 0x74, 0xb1, 0xad, 0x75, 0x31, 0x13, 0x4d, 0x6c, 0xf3, 0x13, + 0xd2, 0x7f, 0x0f, 0x38, 0x22, 0x15, 0x53, 0xa9, 0x9e, 0x86, 0x1f, 0x5d, 0xd4, 0x82, 0xd9, 0x81, + 0x69, 0x9c, 0x18, 0x58, 0xaf, 0x97, 0x28, 0x87, 0x5b, 0x99, 0xb3, 0x0a, 0xab, 0x47, 0x8c, 0x90, + 0x27, 0x3c, 0x38, 0x1b, 0xb4, 0x01, 0x0d, 0xae, 0x34, 0xf7, 0xa9, 0x66, 0xc7, 0x35, 0x07, 0x54, + 0x1d, 0x4b, 0x0c, 0xa3, 0xfd, 0x54, 0xb3, 0xc3, 0xda, 0x6b, 0x6c, 0xc0, 0x5c, 0x98, 0xe9, 0x44, + 0x76, 0xb5, 0x05, 0x95, 0x48, 0x57, 0xc9, 0xc8, 0x53, 0x05, 0xb9, 0xc6, 0x0f, 0xc4, 0x94, 0x28, + 0x12, 0x40, 0xdb, 0xf8, 0x01, 0x4d, 0xe3, 0x52, 0xc9, 0x28, 0x9f, 0x82, 0xc2, 0x1e, 0x64, 0x0d, + 0x2a, 0x91, 0x6c, 0x29, 0x71, 0x69, 0x34, 0x2d, 0xca, 0x5d, 0x1a, 0xf9, 0x4f, 0x60, 0x8e, 0xd5, + 0x13, 0x12, 0xd0, 0xff, 0x04, 0x46, 0xf3, 0x6f, 0x2c, 0x53, 0x40, 0xff, 0xd3, 0x26, 0xf0, 0x13, + 0x5e, 0xc0, 0x50, 0x52, 0xd8, 0x83, 0xfc, 0x7b, 0x12, 0xc0, 0xb6, 0x66, 0x6b, 0xc7, 0x46, 0xcf, + 0xf0, 0xce, 0xd0, 0x1b, 0x50, 0xd3, 0x74, 0x5d, 0xed, 0x08, 0x88, 0x81, 0x45, 0x5d, 0xc9, 0xbc, + 0xa6, 0xeb, 0xdb, 0x21, 0x30, 0xfa, 0x0a, 0x2c, 0xe8, 0x8e, 0x65, 0x47, 0x71, 0x59, 0xa1, 0x49, + 0x8d, 0xbc, 0x88, 0x20, 0xbf, 0x0b, 0x75, 0xc2, 0x57, 0xeb, 0x1f, 0x1b, 0xd8, 0xf4, 0xa2, 0x34, + 0xac, 0x02, 0x65, 0x49, 0xd3, 0xf5, 0x4d, 0xf6, 0x3a, 0x4c, 0x29, 0xff, 0xc7, 0x0c, 0x5c, 0x8a, + 0x8e, 0x78, 0x3c, 0x99, 0x7d, 0x0f, 0xe6, 0x62, 0xf2, 0xa6, 0x24, 0x7d, 0x83, 0x7e, 0x2a, 0x11, + 0x8a, 0x58, 0x72, 0x36, 0x37, 0x94, 0x9c, 0x4d, 0x4c, 0x97, 0xe7, 0x3f, 0xd5, 0x74, 0x79, 0xe1, + 0x53, 0x49, 0x97, 0x4f, 0xbf, 0x58, 0xba, 0x7c, 0x6e, 0xc2, 0x74, 0xf9, 0xeb, 0x74, 0x3b, 0x2c, + 0x5a, 0xa7, 0x8b, 0x2d, 0xf3, 0x1e, 0x15, 0xbf, 0x0d, 0x53, 0x94, 0x42, 0xc5, 0xd2, 0xea, 0xb3, + 0x93, 0xa4, 0xd5, 0x8b, 0xa9, 0x69, 0xf5, 0xcb, 0x30, 0x67, 0x5a, 0xaa, 0x89, 0x9f, 0xaa, 0x64, + 0xb8, 0xdc, 0x7a, 0x99, 0x8d, 0x9d, 0x69, 0xed, 0xe3, 0xa7, 0x2d, 0x02, 0x41, 0x57, 0x60, 0xae, + 0xaf, 0xb9, 0x8f, 0xb1, 0x4e, 0x73, 0xda, 0x6e, 0xbd, 0x42, 0xad, 0xad, 0xcc, 0x60, 0x2d, 0x02, + 0x42, 0xaf, 0x81, 0x2f, 0x07, 0x47, 0xaa, 0x52, 0xa4, 0x8a, 0x80, 0x32, 0xb4, 0x50, 0x8a, 0x7e, + 0xfe, 0x85, 0x52, 0xf4, 0xb5, 0xc9, 0x53, 0xf4, 0x37, 0xa0, 0x26, 0xfe, 0x8b, 0x1c, 0x3d, 0x3b, + 0xee, 0xa4, 0xe9, 0xf9, 0x79, 0xf1, 0x4e, 0xe4, 0xe1, 0xd3, 0x32, 0xfa, 0x30, 0x32, 0xa3, 0xff, + 0x67, 0x12, 0x0f, 0xb3, 0xfd, 0xa9, 0xc6, 0x13, 0x84, 0x91, 0x6c, 0xaf, 0xf4, 0xfc, 0xd9, 0x5e, + 0xf4, 0xad, 0xd4, 0x3c, 0xf9, 0xda, 0x38, 0x7e, 0xe3, 0x32, 0xe5, 0xf2, 0x6f, 0x49, 0x70, 0x89, + 0x47, 0xbc, 0x29, 0x55, 0x2f, 0x09, 0xe6, 0x2a, 0xa5, 0x98, 0x6b, 0xc7, 0xc1, 0x3a, 0x36, 0x3d, + 0x43, 0xeb, 0xa9, 0xae, 0x8d, 0x3b, 0x22, 0xb3, 0x15, 0x80, 0x69, 0x84, 0x73, 0x05, 0xe6, 0x58, + 0x59, 0x19, 0x0f, 0xf2, 0x59, 0xf5, 0x58, 0x99, 0x56, 0x96, 0x31, 0x90, 0x3c, 0x80, 0xe5, 0x94, + 0xc4, 0x60, 0xa2, 0x32, 0xa4, 0x34, 0x65, 0x8c, 0xec, 0xd9, 0xb0, 0x32, 0x7e, 0x5b, 0x82, 0x97, + 0x39, 0x49, 0xaa, 0xdf, 0xfc, 0x22, 0xd4, 0xf1, 0x17, 0x92, 0xbf, 0x2d, 0x89, 0x1b, 0x59, 0x73, + 0xd8, 0xc8, 0xbe, 0x92, 0xaa, 0x87, 0xd1, 0x66, 0xf6, 0x9d, 0x54, 0x33, 0xbb, 0x39, 0x9e, 0xe3, + 0x58, 0xdd, 0xfe, 0x8b, 0x04, 0x17, 0x52, 0xc5, 0x88, 0xc5, 0x70, 0x52, 0x3c, 0x86, 0xe3, 0xf1, + 0x5f, 0x10, 0x62, 0xb3, 0xf8, 0x8f, 0xc6, 0xcf, 0x3c, 0xd0, 0x52, 0xfb, 0xda, 0x33, 0xa3, 0x3f, + 0xe8, 0xf3, 0x00, 0x90, 0xb0, 0x7b, 0xc4, 0x20, 0xcf, 0x13, 0x01, 0xae, 0xc1, 0x22, 0x73, 0xb9, + 0x34, 0xf0, 0x08, 0x28, 0x58, 0x20, 0xb8, 0xc0, 0xde, 0x91, 0x18, 0x84, 0x13, 0xc8, 0x9b, 0xb0, + 0xe0, 0x77, 0x6b, 0x64, 0x51, 0x45, 0xa8, 0x48, 0x22, 0x17, 0x2d, 0x92, 0x30, 0x61, 0x66, 0x07, + 0x3f, 0x31, 0x3a, 0xf8, 0x53, 0xa9, 0xcf, 0xbc, 0x0c, 0x65, 0x1b, 0x3b, 0x7d, 0xc3, 0x75, 0xfd, + 0x75, 0xb7, 0xa4, 0x84, 0x41, 0xf2, 0xbf, 0xcf, 0xc0, 0x7c, 0xdc, 0x9c, 0xee, 0x0e, 0xd5, 0x64, + 0xbc, 0x32, 0x62, 0xff, 0x9c, 0x70, 0xe8, 0x74, 0x53, 0x6c, 0x5f, 0x72, 0x69, 0xa9, 0x47, 0x7f, + 0x8b, 0x22, 0xf6, 0x36, 0x75, 0x98, 0xed, 0x58, 0xfd, 0xbe, 0x66, 0xea, 0xa2, 0xac, 0x96, 0x3f, + 0x12, 0xfd, 0x69, 0x4e, 0x97, 0x1d, 0x37, 0x95, 0x14, 0xfa, 0x9f, 0x8c, 0x36, 0xd9, 0xb5, 0x1a, + 0x26, 0xad, 0xed, 0xa0, 0x03, 0x52, 0x52, 0x80, 0x83, 0x76, 0x0c, 0x07, 0xad, 0x42, 0x01, 0x9b, + 0x4f, 0xc4, 0xb9, 0x75, 0xc2, 0xf1, 0x86, 0xd8, 0xb8, 0x28, 0x14, 0x0f, 0xad, 0xc1, 0x4c, 0x9f, + 0xd8, 0x91, 0xc8, 0xd8, 0x2d, 0xa7, 0x94, 0x9f, 0x2a, 0x1c, 0x0d, 0xad, 0xc3, 0xac, 0x4e, 0xc7, + 0x49, 0xc4, 0xeb, 0xf5, 0x84, 0x8a, 0x11, 0x8a, 0xa0, 0x08, 0x44, 0xb4, 0xeb, 0x9f, 0xc5, 0x95, + 0xd2, 0x8e, 0xd3, 0x63, 0x43, 0x91, 0x78, 0x0c, 0x77, 0x18, 0xdd, 0x06, 0x42, 0xda, 0xb9, 0x5e, + 0x9c, 0xd7, 0xe8, 0xf3, 0xf9, 0x0b, 0x50, 0xec, 0x59, 0x5d, 0x66, 0x46, 0x65, 0x56, 0xb1, 0xdd, + 0xb3, 0xba, 0xd4, 0x8a, 0x16, 0x61, 0xda, 0xf5, 0x74, 0xc3, 0xa4, 0x41, 0x4e, 0x51, 0x61, 0x0f, + 0x64, 0xb6, 0xd2, 0x3f, 0xaa, 0x65, 0x76, 0x70, 0xbd, 0x42, 0x5f, 0x95, 0x28, 0xe4, 0xc0, 0xec, + 0xd0, 0x0d, 0xa1, 0xe7, 0x9d, 0xd5, 0xab, 0x14, 0x4e, 0xfe, 0x06, 0x87, 0x61, 0xf3, 0x23, 0x0f, + 0xc3, 0x62, 0x62, 0x27, 0x1c, 0x86, 0xd5, 0xc6, 0x1c, 0x86, 0xc5, 0x39, 0x7c, 0x19, 0xca, 0x48, + 0xfe, 0x4a, 0x82, 0xa5, 0x6d, 0x9a, 0x9f, 0x09, 0x39, 0xbe, 0x49, 0x8a, 0x1a, 0xde, 0xf3, 0xeb, + 0x4d, 0x52, 0x0b, 0x05, 0xe2, 0xfd, 0x16, 0xe5, 0x26, 0x4d, 0xa8, 0x0a, 0xe6, 0x9c, 0x45, 0x3e, + 0x73, 0xc9, 0x4a, 0xc5, 0x0d, 0x3f, 0xca, 0xef, 0xc3, 0xf2, 0x50, 0x2f, 0xf8, 0x69, 0x78, 0xbc, + 0xb4, 0x9a, 0x75, 0x22, 0x5c, 0x5a, 0x2d, 0x6f, 0xc0, 0xf9, 0xb6, 0xa7, 0x39, 0xde, 0x90, 0x0a, + 0x32, 0xd0, 0xd2, 0x62, 0x94, 0x28, 0x2d, 0xaf, 0x17, 0x69, 0xc3, 0x62, 0xdb, 0xb3, 0xec, 0xe7, + 0x60, 0x4a, 0xbc, 0x0e, 0xe9, 0xbf, 0x35, 0x10, 0x0b, 0x8a, 0x78, 0x94, 0x97, 0x59, 0xe9, 0xcc, + 0x70, 0x6b, 0xb7, 0x61, 0x89, 0x55, 0xae, 0x3c, 0x4f, 0x27, 0x2e, 0x88, 0xba, 0x99, 0x61, 0xbe, + 0x8f, 0xe0, 0x5c, 0xe4, 0x48, 0x92, 0xe7, 0x84, 0x6f, 0x45, 0x73, 0xc2, 0xe3, 0x0e, 0x32, 0xfd, + 0x94, 0xf0, 0x1f, 0xe4, 0x42, 0x7e, 0x3d, 0x25, 0xc5, 0x73, 0x3b, 0x9a, 0x11, 0x7e, 0x6d, 0x1c, + 0xef, 0x48, 0x42, 0x78, 0xd8, 0x6a, 0xf3, 0x09, 0x56, 0xfb, 0xed, 0xa1, 0x2c, 0x52, 0x21, 0x2d, + 0xef, 0x1e, 0x93, 0xf6, 0x73, 0xc9, 0x1f, 0x29, 0x2c, 0x6b, 0xec, 0x37, 0xed, 0xa7, 0x8e, 0xde, + 0x8b, 0xa5, 0x8e, 0xae, 0x8c, 0x95, 0xd7, 0x4f, 0x1a, 0xfd, 0x69, 0x01, 0x4a, 0xfe, 0xbb, 0x21, + 0x9d, 0x0f, 0xab, 0x2d, 0x97, 0xa0, 0xb6, 0xf0, 0x0a, 0x9c, 0x7f, 0xa1, 0x15, 0xb8, 0x90, 0x79, + 0x05, 0xbe, 0x08, 0x25, 0xfa, 0x87, 0x96, 0x0a, 0xb3, 0x15, 0xb5, 0x48, 0x01, 0x0a, 0x3e, 0x09, + 0xcc, 0x70, 0x66, 0x22, 0x33, 0x8c, 0xe5, 0xa9, 0x67, 0xe3, 0x79, 0xea, 0xbb, 0xfe, 0x8a, 0x58, + 0x4c, 0x3b, 0xc6, 0xf6, 0xf9, 0x26, 0xae, 0x85, 0xb1, 0x23, 0xd1, 0x52, 0xda, 0x91, 0x68, 0xc0, + 0xe5, 0x4b, 0x9b, 0x87, 0x3a, 0x62, 0xc9, 0xe7, 0xb0, 0x2d, 0x72, 0xcf, 0x7a, 0x3b, 0x92, 0xd1, + 0x90, 0xd2, 0xee, 0x81, 0x04, 0x3e, 0x25, 0x9c, 0xcc, 0x38, 0x82, 0xa5, 0xc8, 0xd0, 0x04, 0xc5, + 0x74, 0xd9, 0xfc, 0x63, 0x4a, 0x25, 0xdd, 0x9f, 0x87, 0xe3, 0xc6, 0x94, 0x22, 0xb1, 0xbb, 0x43, + 0xd9, 0xcb, 0x09, 0xad, 0xf8, 0x56, 0xb4, 0x3c, 0xe2, 0x39, 0xad, 0x6e, 0xa8, 0x3a, 0x82, 0x46, + 0x2e, 0x9a, 0xc3, 0x5f, 0xb3, 0x68, 0xbe, 0xc4, 0x21, 0x9b, 0x74, 0x2b, 0x71, 0x62, 0x98, 0x86, + 0x7b, 0xca, 0xde, 0xcf, 0xb0, 0xad, 0x84, 0x00, 0x6d, 0xd2, 0xe3, 0x48, 0xfc, 0xcc, 0xf0, 0xd4, + 0x8e, 0xa5, 0x63, 0x6a, 0xd3, 0xd3, 0x4a, 0x91, 0x00, 0xb6, 0x2d, 0x1d, 0x07, 0x33, 0xaf, 0xf8, + 0x7c, 0x33, 0xaf, 0x14, 0x9b, 0x79, 0x4b, 0x30, 0xe3, 0x60, 0xcd, 0xb5, 0x4c, 0x76, 0x02, 0xa1, + 0xf0, 0x27, 0x32, 0x34, 0x7d, 0xec, 0xba, 0xa4, 0x25, 0x1e, 0xae, 0xf1, 0xc7, 0x50, 0x98, 0x39, + 0x37, 0x36, 0xcc, 0x1c, 0x51, 0x7c, 0x16, 0x0b, 0x33, 0x2b, 0x63, 0xc3, 0xcc, 0x4c, 0xb5, 0x67, + 0x41, 0xa0, 0x5d, 0xcd, 0x16, 0x68, 0x87, 0xe3, 0xd2, 0xf9, 0x68, 0x5c, 0xba, 0x15, 0xde, 0xf6, + 0xd6, 0xd2, 0xd2, 0xe3, 0xa3, 0x8b, 0xe8, 0xbf, 0xc0, 0x09, 0xff, 0x4b, 0x09, 0x96, 0x87, 0xa6, + 0x26, 0x9f, 0xf2, 0xef, 0xc5, 0x2a, 0xdc, 0xae, 0x8c, 0xd5, 0xbb, 0x5f, 0xe0, 0x76, 0x3f, 0x52, + 0xe0, 0xf6, 0xd6, 0x78, 0xc2, 0x4f, 0xbd, 0xbe, 0xed, 0x77, 0x25, 0x40, 0x09, 0xdb, 0xfb, 0xbb, + 0x22, 0xfe, 0x9f, 0xf8, 0x18, 0x8c, 0x6f, 0x01, 0x76, 0x83, 0x2d, 0x40, 0x6e, 0xf2, 0x43, 0x0e, + 0x3f, 0x25, 0xfe, 0x3f, 0x39, 0x78, 0xf9, 0xc8, 0xd6, 0x63, 0x41, 0x2c, 0xc7, 0xca, 0xee, 0x1b, + 0xef, 0x46, 0x73, 0xfb, 0x2f, 0xd4, 0x9d, 0xfc, 0xf3, 0x77, 0x07, 0xe9, 0x49, 0x55, 0x19, 0x5b, + 0x09, 0xb9, 0xc7, 0xd1, 0x5d, 0xfe, 0x8c, 0x73, 0x85, 0x32, 0x5c, 0x4e, 0x17, 0x80, 0x87, 0xc0, + 0xdf, 0x85, 0xf9, 0xdd, 0x67, 0xb8, 0xd3, 0x3e, 0x33, 0x3b, 0x13, 0x8c, 0x43, 0x0d, 0xf2, 0x9d, + 0xbe, 0xce, 0xd3, 0x27, 0xe4, 0x6f, 0x38, 0xaa, 0xcf, 0x47, 0xa3, 0x7a, 0x15, 0x6a, 0x41, 0x0b, + 0x7c, 0xaa, 0x2d, 0x91, 0xa9, 0xa6, 0x13, 0x64, 0xc2, 0x7c, 0x4e, 0xe1, 0x4f, 0x1c, 0x8e, 0x1d, + 0x56, 0x9b, 0xcf, 0xe0, 0xd8, 0x71, 0xa2, 0xde, 0x3f, 0x1f, 0xf5, 0xfe, 0xf2, 0xef, 0x48, 0x50, + 0x26, 0x2d, 0xbc, 0x90, 0xfc, 0x7c, 0xeb, 0x9c, 0x0f, 0xb6, 0xce, 0xfe, 0x0e, 0xbc, 0x10, 0xde, + 0x81, 0x07, 0x92, 0x4f, 0x53, 0xf0, 0xb0, 0xe4, 0x33, 0x3e, 0x1c, 0x3b, 0x8e, 0x7c, 0x19, 0xe6, + 0x98, 0x6c, 0xbc, 0xe7, 0x35, 0xc8, 0x0f, 0x9c, 0x9e, 0x18, 0xbf, 0x81, 0xd3, 0x93, 0x7f, 0x22, + 0x41, 0x65, 0xd3, 0xf3, 0xb4, 0xce, 0xe9, 0x04, 0x1d, 0xf0, 0x85, 0xcb, 0x85, 0x85, 0x1b, 0xee, + 0x44, 0x20, 0x6e, 0x21, 0x45, 0xdc, 0xe9, 0x88, 0xb8, 0x32, 0x54, 0x85, 0x2c, 0xa9, 0x02, 0xef, + 0x03, 0x6a, 0x59, 0x8e, 0xb7, 0x67, 0x39, 0x4f, 0x35, 0x47, 0x9f, 0x6c, 0x47, 0x8d, 0xa0, 0xc0, + 0x6f, 0x57, 0xe7, 0xaf, 0x4d, 0x2b, 0xf4, 0xbf, 0x7c, 0x15, 0xce, 0x45, 0xf8, 0xa5, 0x36, 0x7c, + 0x0f, 0xca, 0x74, 0x1d, 0xe7, 0x5b, 0xab, 0x9b, 0xe1, 0x84, 0x7d, 0xa6, 0x55, 0x5f, 0xfe, 0x3a, + 0x2c, 0x90, 0x78, 0x8f, 0xc2, 0x7d, 0xbf, 0xf3, 0xb5, 0xd8, 0xbe, 0xe3, 0x52, 0x0a, 0xa3, 0xd8, + 0x9e, 0xe3, 0x87, 0x39, 0x98, 0xa6, 0xf0, 0xa1, 0x18, 0xec, 0x22, 0x59, 0x23, 0x6d, 0x4b, 0xf5, + 0xb4, 0xae, 0x7f, 0x97, 0x9d, 0x00, 0x0e, 0xb5, 0x2e, 0x4d, 0xf0, 0xd0, 0x97, 0xba, 0xd1, 0xc5, + 0xae, 0x27, 0xd2, 0x89, 0x65, 0x02, 0xdb, 0x61, 0x20, 0xa2, 0x24, 0x9a, 0x75, 0x2d, 0xd0, 0xe4, + 0x2a, 0xfd, 0x8f, 0x56, 0xd9, 0x95, 0xb0, 0x2c, 0x19, 0x33, 0x7a, 0x61, 0xac, 0x01, 0xc5, 0x58, + 0x92, 0xcb, 0x7f, 0x46, 0x6b, 0x50, 0xa0, 0xc7, 0xe2, 0xb3, 0xe3, 0xf5, 0x46, 0x11, 0x89, 0xb5, + 0xd8, 0x86, 0x69, 0x62, 0x9d, 0x06, 0x58, 0x45, 0x85, 0x3f, 0xc9, 0xbb, 0x80, 0xc2, 0xea, 0xe4, + 0x03, 0xb7, 0x06, 0x33, 0x54, 0xdb, 0x22, 0x6c, 0x5e, 0x4e, 0x69, 0x40, 0xe1, 0x68, 0xb2, 0x06, + 0x88, 0xb5, 0x18, 0x09, 0x95, 0x27, 0x1f, 0xde, 0x11, 0xa1, 0xf3, 0x5f, 0x4a, 0x70, 0x2e, 0xd2, + 0x06, 0x97, 0xf5, 0x46, 0xb4, 0x91, 0x54, 0x51, 0x79, 0x03, 0xdb, 0x91, 0x75, 0x7e, 0x2d, 0x4d, + 0xa4, 0xcf, 0x68, 0x8d, 0xff, 0x07, 0x09, 0x60, 0x73, 0xe0, 0x9d, 0xf2, 0x23, 0xe3, 0xf0, 0x10, + 0x4b, 0xb1, 0x21, 0x6e, 0x40, 0xd1, 0xd6, 0x5c, 0xf7, 0xa9, 0xe5, 0x88, 0xcd, 0xae, 0xff, 0x4c, + 0x0f, 0x77, 0x07, 0xfc, 0xaa, 0x7d, 0x49, 0xa1, 0xff, 0xd1, 0x6b, 0x50, 0x65, 0x1f, 0x62, 0x50, + 0x35, 0x5d, 0x77, 0x44, 0x05, 0x58, 0x49, 0xa9, 0x30, 0xe8, 0x26, 0x03, 0x12, 0x34, 0x83, 0xa6, + 0x50, 0xbc, 0x33, 0xd5, 0xb3, 0x1e, 0x63, 0x93, 0x6f, 0x5a, 0x2b, 0x02, 0x7a, 0x48, 0x80, 0x2c, + 0x43, 0xd9, 0x35, 0x5c, 0xcf, 0x11, 0x68, 0x22, 0xcf, 0xca, 0xa1, 0x14, 0x8d, 0x0c, 0x4a, 0xad, + 0x35, 0xe8, 0xf5, 0x98, 0x8a, 0x9f, 0x7f, 0xd8, 0xbf, 0xca, 0x3b, 0x94, 0x4b, 0x9b, 0x1c, 0x81, + 0xd2, 0x78, 0x77, 0x3f, 0xc5, 0xd3, 0xb9, 0xaf, 0xc2, 0x42, 0xa8, 0x0f, 0xdc, 0xac, 0x22, 0xbb, + 0x0b, 0x29, 0xba, 0xbb, 0x90, 0xef, 0x03, 0x62, 0x07, 0x52, 0x2f, 0xd8, 0x6f, 0xf9, 0x3c, 0x9c, + 0x8b, 0x30, 0xe2, 0x4b, 0xfa, 0x75, 0xa8, 0xf0, 0x0a, 0x33, 0x6e, 0x28, 0x17, 0xa0, 0x48, 0x5c, + 0x73, 0xc7, 0xd0, 0x45, 0x29, 0xc6, 0xac, 0x6d, 0xe9, 0xdb, 0x86, 0xee, 0xc8, 0xdf, 0x84, 0x0a, + 0xbf, 0x7b, 0xcc, 0x71, 0xf7, 0xa0, 0xca, 0xcb, 0x01, 0xd5, 0xc8, 0x55, 0xbb, 0x97, 0x53, 0x8b, + 0xdd, 0x84, 0x5a, 0xcc, 0xf0, 0xa3, 0xac, 0x43, 0x83, 0xc5, 0x1e, 0x11, 0xf6, 0xa2, 0xb3, 0x7b, + 0x20, 0x2a, 0xd0, 0xc7, 0xb6, 0x12, 0xa5, 0xaf, 0x38, 0xe1, 0x47, 0xf9, 0x12, 0x5c, 0x4c, 0x6c, + 0x85, 0x6b, 0xc2, 0x86, 0x5a, 0xf0, 0x82, 0xdd, 0x07, 0xf3, 0x6b, 0x4d, 0xa4, 0x50, 0xad, 0xc9, + 0x92, 0x1f, 0xf9, 0xe7, 0xc4, 0x6a, 0x48, 0xc3, 0xfa, 0x60, 0x1f, 0x98, 0x4f, 0xdb, 0x07, 0x16, + 0x22, 0xfb, 0x40, 0xb9, 0xed, 0xeb, 0x93, 0xef, 0xcf, 0xb7, 0xe8, 0x39, 0x02, 0x6b, 0x5b, 0x38, + 0x44, 0x79, 0x54, 0x2f, 0x19, 0xaa, 0x12, 0xa2, 0x92, 0xdf, 0x80, 0x4a, 0xd4, 0x35, 0x86, 0xfc, + 0x9c, 0x34, 0xe4, 0xe7, 0xaa, 0x31, 0x17, 0xf7, 0x4e, 0x6c, 0x5b, 0x93, 0xae, 0xe3, 0xd8, 0xa6, + 0xe6, 0x4e, 0xc4, 0xd9, 0x5d, 0x4f, 0xc8, 0xff, 0x7f, 0x46, 0x7e, 0x6e, 0x91, 0xaf, 0x07, 0x7b, + 0x2e, 0xa1, 0xe7, 0x9d, 0x96, 0x5f, 0x81, 0xf2, 0x51, 0xda, 0x97, 0x24, 0x0a, 0xa2, 0xd4, 0xed, + 0x16, 0x2c, 0xee, 0x19, 0x3d, 0xec, 0x9e, 0xb9, 0x1e, 0xee, 0x37, 0xa9, 0x53, 0x3a, 0x31, 0xb0, + 0x83, 0x56, 0x00, 0xe8, 0xde, 0xd6, 0xb6, 0x0c, 0xff, 0x4e, 0x7c, 0x08, 0x22, 0xff, 0xa7, 0x04, + 0xf3, 0x01, 0x61, 0x96, 0x02, 0xc4, 0xdb, 0x30, 0x7d, 0xe2, 0x8a, 0xb3, 0xc4, 0xc4, 0xcc, 0x4a, + 0x92, 0x20, 0x4a, 0xe1, 0xc4, 0x6d, 0xea, 0xe8, 0x7d, 0x80, 0x81, 0x8b, 0x75, 0x9e, 0xdb, 0xcc, + 0x54, 0x9e, 0x59, 0x22, 0x04, 0x2c, 0x47, 0x7a, 0x07, 0xca, 0x86, 0x69, 0xe9, 0x98, 0x66, 0xc2, + 0xf5, 0x6c, 0x25, 0x9a, 0xc0, 0x28, 0x8e, 0x5c, 0xac, 0xcb, 0x98, 0xaf, 0x85, 0x42, 0xbf, 0xdc, + 0x50, 0xf6, 0x61, 0x81, 0x39, 0xad, 0x13, 0x5f, 0xf0, 0x11, 0x65, 0xf6, 0x31, 0x6d, 0x29, 0x35, + 0x83, 0xc7, 0x48, 0x82, 0x54, 0xde, 0x80, 0xf3, 0xb1, 0x82, 0xdf, 0xec, 0x87, 0xf6, 0xad, 0xd8, + 0x09, 0x5a, 0x60, 0xce, 0xb7, 0xa2, 0xd7, 0x30, 0xc6, 0x57, 0x19, 0xf3, 0xfa, 0xff, 0x6f, 0xc3, + 0x85, 0xc8, 0x51, 0x5f, 0x44, 0xa2, 0x3b, 0xb1, 0x10, 0xf0, 0xf5, 0x71, 0x5c, 0x63, 0xb1, 0xe0, + 0x7f, 0x4b, 0xb0, 0x98, 0x84, 0xf0, 0x9c, 0x47, 0xd1, 0xdf, 0x4d, 0xb9, 0xf8, 0xf5, 0x5e, 0x36, + 0xb1, 0x3e, 0x97, 0x63, 0xfc, 0x43, 0x76, 0x0d, 0x64, 0xfc, 0x28, 0xe5, 0x27, 0x19, 0xa5, 0x1f, + 0xe7, 0x43, 0x29, 0x99, 0x11, 0x97, 0x34, 0x5e, 0xf8, 0x98, 0xb3, 0x19, 0xbb, 0xa3, 0x71, 0x73, + 0x04, 0xf9, 0x98, 0x2b, 0x1a, 0x1f, 0x25, 0x1d, 0x06, 0xdc, 0xca, 0xc6, 0xef, 0x4b, 0x7b, 0x32, + 0xfe, 0xe3, 0x1c, 0x54, 0xa3, 0x43, 0x84, 0x76, 0x13, 0x2e, 0x68, 0xbc, 0x96, 0xa9, 0x9b, 0x91, + 0xfb, 0x19, 0xfc, 0x12, 0x44, 0x6e, 0xd2, 0x4b, 0x10, 0xf9, 0x49, 0x2e, 0x41, 0x3c, 0x80, 0xea, + 0x53, 0xc7, 0xf0, 0xb4, 0xe3, 0x1e, 0x56, 0x7b, 0xda, 0x19, 0x76, 0xb8, 0x97, 0xcc, 0xe0, 0xc8, + 0x2a, 0x82, 0xf0, 0x21, 0xa1, 0x93, 0xff, 0x46, 0x82, 0xa2, 0x10, 0x69, 0xec, 0xd5, 0x83, 0xe5, + 0x01, 0x41, 0x53, 0x69, 0xf9, 0xb2, 0xa9, 0x99, 0x96, 0xea, 0x62, 0xb2, 0x8e, 0x67, 0x2c, 0xde, + 0x5f, 0xa4, 0xd4, 0xdb, 0x96, 0x83, 0xf7, 0x35, 0xd3, 0x6a, 0x33, 0x52, 0x74, 0x1f, 0x6a, 0x8c, + 0x2b, 0x65, 0x48, 0x58, 0x67, 0x5c, 0x31, 0xaa, 0x94, 0x8c, 0xb0, 0x22, 0x2c, 0x5d, 0xf9, 0xaf, + 0xf3, 0x50, 0x0e, 0xe9, 0x6a, 0x4c, 0x67, 0x9a, 0xb0, 0x20, 0xca, 0x3d, 0x5c, 0xec, 0x4d, 0x72, + 0x07, 0x61, 0x9e, 0xd3, 0xb5, 0xb1, 0xc7, 0xd6, 0xab, 0x3d, 0x98, 0xd7, 0x9e, 0x68, 0x46, 0x8f, + 0x8e, 0xc6, 0x04, 0x4b, 0x5e, 0xd5, 0xa7, 0xf2, 0xd7, 0x3d, 0xa6, 0x89, 0x09, 0xae, 0x26, 0x00, + 0xa5, 0x08, 0xee, 0x44, 0xb8, 0x6e, 0xa8, 0xa0, 0x28, 0xc3, 0x9d, 0x08, 0xd7, 0xf5, 0xdb, 0xa6, + 0xe5, 0xd0, 0xf4, 0x5e, 0x88, 0xcb, 0xef, 0xa8, 0x8f, 0x6b, 0x9b, 0x50, 0xec, 0x51, 0x02, 0xa2, + 0xce, 0xbe, 0xf6, 0x3d, 0xcb, 0x51, 0xc3, 0x5c, 0x66, 0x33, 0xa9, 0x93, 0xd2, 0xb5, 0x7c, 0x56, + 0xf2, 0x1d, 0xb8, 0xa0, 0x60, 0xcb, 0xc6, 0xa6, 0x3f, 0xd3, 0x1e, 0x5a, 0xdd, 0x09, 0xd6, 0xd6, + 0x97, 0xa0, 0x91, 0x44, 0xcf, 0x3c, 0xf7, 0xf5, 0xd7, 0xa1, 0x28, 0xbe, 0x8f, 0x87, 0x66, 0x21, + 0x7f, 0xb8, 0xdd, 0xaa, 0x4d, 0x91, 0x3f, 0x47, 0x3b, 0xad, 0x9a, 0x84, 0x8a, 0x50, 0x68, 0x6f, + 0x1f, 0xb6, 0x6a, 0xb9, 0xeb, 0x7d, 0xa8, 0xc5, 0x3f, 0x0e, 0x87, 0x96, 0xe1, 0x5c, 0x4b, 0x39, + 0x68, 0x6d, 0xde, 0xdf, 0x3c, 0x6c, 0x1e, 0xec, 0xab, 0x2d, 0xa5, 0xf9, 0xe1, 0xe6, 0xe1, 0x6e, + 0x6d, 0x0a, 0x5d, 0x81, 0x4b, 0xe1, 0x17, 0x0f, 0x0e, 0xda, 0x87, 0xea, 0xe1, 0x81, 0xba, 0x7d, + 0xb0, 0x7f, 0xb8, 0xd9, 0xdc, 0xdf, 0x55, 0x6a, 0x12, 0xba, 0x04, 0x17, 0xc2, 0x28, 0x5b, 0xcd, + 0x9d, 0xa6, 0xb2, 0xbb, 0x4d, 0xfe, 0x6f, 0x3e, 0xac, 0xe5, 0xae, 0x7f, 0x00, 0x95, 0xc8, 0x17, + 0xcc, 0x88, 0x48, 0xad, 0x83, 0x9d, 0xda, 0x14, 0xaa, 0x40, 0x29, 0xcc, 0xa7, 0x08, 0x85, 0xfd, + 0x83, 0x9d, 0xdd, 0x5a, 0x0e, 0x01, 0xcc, 0x1c, 0x6e, 0x2a, 0xf7, 0x77, 0x0f, 0x6b, 0xf9, 0xeb, + 0x1b, 0xf1, 0xfb, 0x66, 0x18, 0x2d, 0x40, 0xa5, 0xbd, 0xb9, 0xbf, 0xb3, 0x75, 0xf0, 0x91, 0xaa, + 0xec, 0x6e, 0xee, 0x7c, 0x5c, 0x9b, 0x42, 0x8b, 0x50, 0x13, 0xa0, 0xfd, 0x83, 0x43, 0x06, 0x95, + 0xae, 0x3f, 0x8e, 0x79, 0x42, 0x8c, 0xce, 0xc3, 0x82, 0xdf, 0xa4, 0xba, 0xad, 0xec, 0x6e, 0x1e, + 0xee, 0x12, 0x49, 0x22, 0x60, 0xe5, 0x68, 0x7f, 0xbf, 0xb9, 0x7f, 0xbf, 0x26, 0x11, 0xae, 0x01, + 0x78, 0xf7, 0xa3, 0x26, 0x41, 0xce, 0x45, 0x91, 0x8f, 0xf6, 0xbf, 0xb1, 0x7f, 0xf0, 0xcd, 0xfd, + 0x5a, 0x7e, 0xfd, 0x67, 0xe7, 0xfc, 0xaf, 0x41, 0xb5, 0xb1, 0x43, 0x8b, 0xd2, 0x5a, 0x30, 0x2b, + 0xbe, 0xbd, 0x98, 0xb0, 0x8e, 0x46, 0xbf, 0x18, 0xd9, 0xb8, 0x32, 0x02, 0x83, 0xef, 0x8a, 0xa6, + 0xd0, 0x31, 0xdd, 0xa5, 0x84, 0x6e, 0x59, 0xbf, 0x9e, 0xb8, 0x27, 0x18, 0xba, 0xd8, 0xdd, 0xb8, + 0x3a, 0x16, 0xcf, 0x6f, 0x03, 0x93, 0x8d, 0x48, 0xf8, 0x43, 0x26, 0xe8, 0x6a, 0xd2, 0x0e, 0x22, + 0xe1, 0x4b, 0x29, 0x8d, 0x6b, 0xe3, 0x11, 0xfd, 0x66, 0x1e, 0x43, 0x2d, 0xfe, 0x51, 0x13, 0x94, + 0x90, 0x16, 0x48, 0xf9, 0x72, 0x4a, 0xe3, 0x7a, 0x16, 0xd4, 0x70, 0x63, 0x43, 0x5f, 0xe9, 0x78, + 0x23, 0xcb, 0xd7, 0x0c, 0x52, 0x1b, 0x4b, 0xfb, 0xf0, 0x01, 0x53, 0x60, 0xf4, 0x22, 0x2c, 0x4a, + 0xfc, 0x24, 0x46, 0xc2, 0xfd, 0xfb, 0x24, 0x05, 0x26, 0xdf, 0xb1, 0x96, 0xa7, 0xd0, 0x29, 0xcc, + 0xc7, 0xaa, 0x8b, 0x50, 0x02, 0x79, 0x72, 0x19, 0x55, 0xe3, 0x8d, 0x0c, 0x98, 0x51, 0x8b, 0x08, + 0x57, 0x13, 0x25, 0x5b, 0x44, 0x42, 0xad, 0x52, 0xb2, 0x45, 0x24, 0x16, 0x26, 0x51, 0xe3, 0x8e, + 0x54, 0x11, 0x25, 0x19, 0x77, 0x52, 0xed, 0x52, 0xe3, 0xea, 0x58, 0xbc, 0xb0, 0xd2, 0x62, 0x35, + 0x45, 0x49, 0x4a, 0x4b, 0xae, 0x59, 0x6a, 0xbc, 0x91, 0x01, 0x33, 0x6e, 0x05, 0x41, 0x85, 0x42, + 0x9a, 0x15, 0x0c, 0xd5, 0xd3, 0xa4, 0x59, 0xc1, 0x70, 0xb1, 0x03, 0xb7, 0x82, 0x58, 0x65, 0xc1, + 0xb5, 0x0c, 0x59, 0xcc, 0x74, 0x2b, 0x48, 0xce, 0x77, 0xca, 0x53, 0xe8, 0x47, 0x12, 0xd4, 0xd3, + 0xb2, 0x52, 0xe8, 0xe6, 0xc4, 0x29, 0xb4, 0xc6, 0xfa, 0x24, 0x24, 0xbe, 0x14, 0xdf, 0x07, 0x34, + 0xbc, 0x06, 0xa2, 0xaf, 0x24, 0x8d, 0x4c, 0xca, 0x4a, 0xdb, 0x78, 0x33, 0x1b, 0xb2, 0xdf, 0x64, + 0x1b, 0x8a, 0x22, 0x0f, 0x86, 0x12, 0xbc, 0x74, 0x2c, 0x0b, 0xd7, 0x90, 0x47, 0xa1, 0xf8, 0x4c, + 0xef, 0x43, 0x81, 0x40, 0xd1, 0xa5, 0x64, 0x6c, 0xc1, 0x6c, 0x25, 0xed, 0xb5, 0xcf, 0xe8, 0x11, + 0xcc, 0xb0, 0xc4, 0x0f, 0x4a, 0x38, 0x1f, 0x8a, 0xa4, 0xa7, 0x1a, 0x97, 0xd3, 0x11, 0x7c, 0x76, + 0xdf, 0x61, 0x9f, 0xe5, 0xe5, 0x39, 0x1d, 0xf4, 0x6a, 0xf2, 0xb7, 0xd9, 0xa2, 0x29, 0xa4, 0xc6, + 0x6b, 0x63, 0xb0, 0xc2, 0x93, 0x22, 0xb6, 0x37, 0xb9, 0x3a, 0x76, 0x83, 0x99, 0x3e, 0x29, 0x92, + 0xb7, 0xb0, 0xcc, 0x48, 0x86, 0xb7, 0xb8, 0x49, 0x46, 0x92, 0x7a, 0xb0, 0x90, 0x64, 0x24, 0xe9, + 0xbb, 0x66, 0x36, 0x0f, 0xe3, 0x97, 0xc6, 0xaf, 0x8d, 0xff, 0xc4, 0x41, 0xfa, 0x3c, 0x4c, 0xf9, + 0x8c, 0x82, 0x3c, 0x85, 0x3c, 0x38, 0x97, 0xf0, 0x9d, 0x05, 0xf4, 0xe6, 0xb8, 0xa5, 0x23, 0xd2, + 0xe2, 0x8d, 0x8c, 0xd8, 0xe1, 0x56, 0x13, 0x0e, 0x6c, 0x93, 0x5a, 0x4d, 0x3f, 0x3d, 0x4e, 0x6a, + 0x75, 0xd4, 0x29, 0x30, 0x35, 0x6e, 0xee, 0xd4, 0x5e, 0x4e, 0x3f, 0xc5, 0x4c, 0x35, 0xee, 0xb8, + 0x0b, 0x5b, 0xff, 0x55, 0x1e, 0xe6, 0xd8, 0x61, 0x3c, 0x8f, 0xd0, 0x3e, 0x06, 0x08, 0xf2, 0x60, + 0xe8, 0x95, 0x64, 0xa5, 0x44, 0x92, 0x8e, 0x8d, 0x57, 0x47, 0x23, 0x85, 0x27, 0x52, 0x28, 0xa7, + 0x94, 0x34, 0x91, 0x86, 0x53, 0x67, 0x49, 0x13, 0x29, 0x21, 0x31, 0x25, 0x4f, 0xa1, 0x0f, 0xa1, + 0xe4, 0x27, 0x2f, 0x50, 0x52, 0xf2, 0x23, 0x96, 0x9d, 0x69, 0xbc, 0x32, 0x12, 0x27, 0x2c, 0x75, + 0x28, 0x33, 0x91, 0x24, 0xf5, 0x70, 0x06, 0x24, 0x49, 0xea, 0xa4, 0xf4, 0x46, 0xa0, 0x13, 0x76, + 0x7e, 0x99, 0xaa, 0x93, 0xc8, 0xf1, 0x71, 0xaa, 0x4e, 0xa2, 0x87, 0xa0, 0xf2, 0xd4, 0xd6, 0xde, + 0x2f, 0x7e, 0xbd, 0x22, 0xfd, 0xd3, 0xaf, 0x57, 0xa6, 0x7e, 0xf8, 0xc9, 0x8a, 0xf4, 0x8b, 0x4f, + 0x56, 0xa4, 0x7f, 0xfc, 0x64, 0x45, 0xfa, 0xd7, 0x4f, 0x56, 0xa4, 0xdf, 0xfc, 0xb7, 0x95, 0xa9, + 0x6f, 0x5d, 0x7b, 0xfc, 0xae, 0xbb, 0x6a, 0x58, 0x6b, 0x1d, 0xc7, 0xb8, 0xa1, 0xd9, 0xc6, 0x9a, + 0xfd, 0xb8, 0xbb, 0xa6, 0xd9, 0x86, 0xbb, 0xc6, 0xb9, 0xaf, 0x09, 0xee, 0xc7, 0x33, 0xf4, 0xe3, + 0xe2, 0x6f, 0xfd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0x83, 0x10, 0x05, 0x22, 0x5e, 0x00, + 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -8659,7 +8733,8 @@ type RuntimeServiceClient interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(ctx context.Context, in *ContainerStatusRequest, opts ...grpc.CallOption) (*ContainerStatusResponse, error) - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. UpdateContainerResources(ctx context.Context, in *UpdateContainerResourcesRequest, opts ...grpc.CallOption) (*UpdateContainerResourcesResponse, error) // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -8962,7 +9037,8 @@ type RuntimeServiceServer interface { // ContainerStatus returns status of the container. If the container is not // present, returns an error. ContainerStatus(context.Context, *ContainerStatusRequest) (*ContainerStatusResponse, error) - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. UpdateContainerResources(context.Context, *UpdateContainerResourcesRequest) (*UpdateContainerResourcesResponse, error) // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -13786,6 +13862,20 @@ func (m *ContainerStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Resources != nil { + { + size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } if len(m.LogPath) > 0 { i -= len(m.LogPath) copy(dAtA[i:], m.LogPath) @@ -13979,6 +14069,53 @@ func (m *ContainerStatusResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) return len(dAtA) - i, nil } +func (m *ContainerResources) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerResources) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerResources) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Windows != nil { + { + size, err := m.Windows.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Linux != nil { + { + size, err := m.Linux.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintApi(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func (m *UpdateContainerResourcesRequest) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -14391,21 +14528,21 @@ func (m *PortForwardRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { var l int _ = l if len(m.Port) > 0 { - dAtA73 := make([]byte, len(m.Port)*10) - var j72 int + dAtA76 := make([]byte, len(m.Port)*10) + var j75 int for _, num1 := range m.Port { num := uint64(num1) for num >= 1<<7 { - dAtA73[j72] = uint8(uint64(num)&0x7f | 0x80) + dAtA76[j75] = uint8(uint64(num)&0x7f | 0x80) num >>= 7 - j72++ + j75++ } - dAtA73[j72] = uint8(num) - j72++ + dAtA76[j75] = uint8(num) + j75++ } - i -= j72 - copy(dAtA[i:], dAtA73[:j72]) - i = encodeVarintApi(dAtA, i, uint64(j72)) + i -= j75 + copy(dAtA[i:], dAtA76[:j75]) + i = encodeVarintApi(dAtA, i, uint64(j75)) i-- dAtA[i] = 0x12 } @@ -17717,6 +17854,10 @@ func (m *ContainerStatus) Size() (n int) { if l > 0 { n += 1 + l + sovApi(uint64(l)) } + if m.Resources != nil { + l = m.Resources.Size() + n += 2 + l + sovApi(uint64(l)) + } return n } @@ -17741,6 +17882,23 @@ func (m *ContainerStatusResponse) Size() (n int) { return n } +func (m *ContainerResources) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Linux != nil { + l = m.Linux.Size() + n += 1 + l + sovApi(uint64(l)) + } + if m.Windows != nil { + l = m.Windows.Size() + n += 1 + l + sovApi(uint64(l)) + } + return n +} + func (m *UpdateContainerResourcesRequest) Size() (n int) { if m == nil { return 0 @@ -19751,6 +19909,7 @@ func (this *ContainerStatus) String() string { `Annotations:` + mapStringForAnnotations + `,`, `Mounts:` + repeatedStringForMounts + `,`, `LogPath:` + fmt.Sprintf("%v", this.LogPath) + `,`, + `Resources:` + strings.Replace(this.Resources.String(), "ContainerResources", "ContainerResources", 1) + `,`, `}`, }, "") return s @@ -19776,6 +19935,17 @@ func (this *ContainerStatusResponse) String() string { }, "") return s } +func (this *ContainerResources) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ContainerResources{`, + `Linux:` + strings.Replace(this.Linux.String(), "LinuxContainerResources", "LinuxContainerResources", 1) + `,`, + `Windows:` + strings.Replace(this.Windows.String(), "WindowsContainerResources", "WindowsContainerResources", 1) + `,`, + `}`, + }, "") + return s +} func (this *UpdateContainerResourcesRequest) String() string { if this == nil { return "nil" @@ -33414,6 +33584,42 @@ func (m *ContainerStatus) Unmarshal(dAtA []byte) error { } m.LogPath = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Resources == nil { + m.Resources = &ContainerResources{} + } + if err := m.Resources.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -33648,6 +33854,128 @@ func (m *ContainerStatusResponse) Unmarshal(dAtA []byte) error { } return nil } +func (m *ContainerResources) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerResources: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerResources: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Linux", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Linux == nil { + m.Linux = &LinuxContainerResources{} + } + if err := m.Linux.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Windows", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthApi + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthApi + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Windows == nil { + m.Windows = &WindowsContainerResources{} + } + if err := m.Windows.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipApi(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthApi + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *UpdateContainerResourcesRequest) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 diff --git a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto index 416719632..6f6734e60 100644 --- a/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto +++ b/vendor/k8s.io/cri-api/pkg/apis/runtime/v1alpha2/api.proto @@ -79,7 +79,8 @@ service RuntimeService { // ContainerStatus returns status of the container. If the container is not // present, returns an error. rpc ContainerStatus(ContainerStatusRequest) returns (ContainerStatusResponse) {} - // UpdateContainerResources updates ContainerConfig of the container. + // UpdateContainerResources updates ContainerConfig of the container synchronously. + // If runtime fails to transactionally update the requested resources, an error is returned. rpc UpdateContainerResources(UpdateContainerResourcesRequest) returns (UpdateContainerResourcesResponse) {} // ReopenContainerLog asks runtime to reopen the stdout/stderr log file // for the container. This is often called after the log file has been @@ -1151,6 +1152,8 @@ message ContainerStatus { repeated Mount mounts = 14; // Log path of container. string log_path = 15; + // Resource limits configuration of the container. + ContainerResources resources = 16; } message ContainerStatusResponse { @@ -1163,6 +1166,14 @@ message ContainerStatusResponse { map info = 2; } +// ContainerResources holds resource limits configuration for a container. +message ContainerResources { + // Resource limits configuration specific to Linux container. + LinuxContainerResources linux = 1; + // Resource limits configuration specific to Windows container. + WindowsContainerResources windows = 2; +} + message UpdateContainerResourcesRequest { // ID of the container to update. string container_id = 1; diff --git a/vendor/modules.txt b/vendor/modules.txt index 332b55d7d..bbe9e7bf2 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -530,7 +530,7 @@ google.golang.org/appengine/internal/log google.golang.org/appengine/internal/remote_api google.golang.org/appengine/internal/urlfetch google.golang.org/appengine/urlfetch -# google.golang.org/genproto v0.0.0-20220426171045-31bebdecfb46 +# google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 ## explicit; go 1.15 google.golang.org/genproto/googleapis/api/httpbody google.golang.org/genproto/googleapis/rpc/code @@ -734,7 +734,7 @@ k8s.io/component-base/logs/logreduction k8s.io/component-base/metrics k8s.io/component-base/metrics/legacyregistry k8s.io/component-base/version -# k8s.io/cri-api v0.25.0-alpha.2 +# k8s.io/cri-api v0.25.0-alpha.3.0.20220803042751-33bb7ae0d927 ## explicit; go 1.18 k8s.io/cri-api/pkg/apis/runtime/v1 k8s.io/cri-api/pkg/apis/runtime/v1alpha2