All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Bruce Ashfield" <bruce.ashfield@gmail.com>
To: Trevor Gamblin <trevor.gamblin@windriver.com>
Cc: meta-virtualization@lists.yoctoproject.org
Subject: Re: [meta-virtualization][hardknott][PATCH] containerd: fix CVE-2021-3121
Date: Tue, 20 Apr 2021 17:01:44 -0400	[thread overview]
Message-ID: <20210420210143.GB1997@gmail.com> (raw)
In-Reply-To: <20210420184206.4072543-1-trevor.gamblin@windriver.com>


In message: [meta-virtualization][hardknott][PATCH] containerd: fix CVE-2021-3121
on 20/04/2021 Trevor Gamblin wrote:

> The master branch contains an uprev for containerd that includes the
> fix, so backport the patch separately for hardknott.
> 
> Tested by pulling a hello-world image with podman to
> core-image-full-cmdline, with the following added to local.conf:
> 
> DISTRO_FEATURES_append = " systemd seccomp"
> VIRTUAL-RUNTIME_init_manager = "systemd"
> DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit"
> VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"
> NETWORK_MANAGER = "systemd"
> IMAGE_ROOTFS_EXTRA_SPACE = "8192000"
> PREFERRED_PROVIDER_virtual/containerd = "containerd-opencontainers"
> IMAGE_INSTALL_append = " podman virtual/containerd"

Thanks for the fix! I've queued it for hardknott.

Bruce

> 
> Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
> ---
>  .../containerd-opencontainers_git.bb          |    1 +
>  .../containerd/files/CVE-2021-3121.patch      | 4035 +++++++++++++++++
>  2 files changed, 4036 insertions(+)
>  create mode 100644 recipes-containers/containerd/files/CVE-2021-3121.patch
> 
> diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb
> index efa3626..9d33676 100644
> --- a/recipes-containers/containerd/containerd-opencontainers_git.bb
> +++ b/recipes-containers/containerd/containerd-opencontainers_git.bb
> @@ -9,6 +9,7 @@ SRCREV = "33d90b72d1e44987118ac111d4f7a108d412099b"
>  SRC_URI = "git://github.com/containerd/containerd;branch=release/1.4 \
>             file://0001-build-use-oe-provided-GO-and-flags.patch \
>             file://0001-Add-build-option-GODEBUG-1.patch \
> +           file://CVE-2021-3121.patch \
>            "
>  
>  # Apache-2.0 for containerd
> diff --git a/recipes-containers/containerd/files/CVE-2021-3121.patch b/recipes-containers/containerd/files/CVE-2021-3121.patch
> new file mode 100644
> index 0000000..1a2c0f4
> --- /dev/null
> +++ b/recipes-containers/containerd/files/CVE-2021-3121.patch
> @@ -0,0 +1,4035 @@
> +From 9bd7f1043ce566d4600a8c61cd45bc99b2b17e36 Mon Sep 17 00:00:00 2001
> +From: Trevor Gamblin <trevor.gamblin@windriver.com>
> +Date: Tue, 20 Apr 2021 11:21:08 -0400
> +Subject: [PATCH] CVE-2021-3121
> +
> +Backports the fix at https://github.com/containerd/containerd/commit/1423e919,
> +but with extra refactors for pulled in from later versions to make the
> +fix apply correctly.
> +
> +Upstream-Status: Backport
> +CVE: CVE-2021-3121
> +
> +Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
> +---
> + src/import/api/events/container.pb.go                    |  22 +-
> + src/import/api/events/content.pb.go                      |   5 +-
> + src/import/api/events/image.pb.go                        |  19 +-
> + src/import/api/events/namespace.pb.go                    |  19 +-
> + src/import/api/events/snapshot.pb.go                     |  15 +-
> + src/import/api/events/task.pb.go                         |  55 +-
> + src/import/api/services/containers/v1/containers.pb.go   |  64 +--
> + src/import/api/services/content/v1/content.pb.go         |  94 +---
> + src/import/api/services/diff/v1/diff.pb.go               |  24 +-
> + src/import/api/services/events/v1/events.pb.go           |  20 +-
> + src/import/api/services/images/v1/images.pb.go           |  52 +-
> + src/import/.../introspection/v1/introspection.pb.go      |  22 +-
> + src/import/api/services/leases/v1/leases.pb.go           |  59 +--
> + src/import/api/services/namespaces/v1/namespace.pb.go    |  52 +-
> + src/import/api/services/snapshots/v1/snapshots.pb.go     |  98 +---
> + src/import/api/services/tasks/v1/tasks.pb.go             | 484 +++++++++++-------
> + src/import/api/services/ttrpc/events/v1/events.pb.go     |  10 +-
> + src/import/api/services/version/v1/version.pb.go         |   5 +-
> + src/import/api/types/descriptor.pb.go                    |   7 +-
> + src/import/api/types/metrics.pb.go                       |   5 +-
> + src/import/api/types/mount.pb.go                         |   5 +-
> + src/import/api/types/platform.pb.go                      |   5 +-
> + src/import/api/types/task/task.pb.go                     |  10 +-
> + src/import/runtime/linux/runctypes/runc.pb.go            |  20 +-
> + src/import/runtime/v1/shim/v1/shim.pb.go                 | 100 +---
> + src/import/runtime/v2/runc/options/oci.pb.go             |  15 +-
> + src/import/runtime/v2/task/shim.pb.go                    | 470 ++++++++++-------
> + src/import/.../protobuf/plugin/unmarshal/unmarshal.go    |  16 +-
> + src/import/.../gogo/protobuf/proto/text_parser.go        |   2 +-
> + src/import/.../github.com/gogo/protobuf/types/any.pb.go  |   5 +-
> + src/import/.../github.com/gogo/protobuf/types/api.pb.go  |  15 +-
> + src/import/.../gogo/protobuf/types/duration.pb.go        |   5 +-
> + src/import/.../gogo/protobuf/types/empty.pb.go           |   5 +-
> + src/import/.../gogo/protobuf/types/field_mask.pb.go      |   5 +-
> + src/import/.../gogo/protobuf/types/source_context.pb.go  |   5 +-
> + src/import/.../gogo/protobuf/types/struct.pb.go          |  17 +-
> + src/import/.../gogo/protobuf/types/timestamp.pb.go       |   5 +-
> + src/import/.../github.com/gogo/protobuf/types/type.pb.go |  25 +-
> + src/import/.../gogo/protobuf/types/wrappers.pb.go        |  45 +-
> + 39 files changed, 773 insertions(+), 1133 deletions(-)
> +
> +diff --git a/src/import/api/events/container.pb.go b/src/import/api/events/container.pb.go
> +index 0c1e0a939..fe002e073 100644
> +--- a/src/import/api/events/container.pb.go
> ++++ b/src/import/api/events/container.pb.go
> +@@ -835,10 +835,7 @@ func (m *ContainerCreate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainer
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainer
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -957,10 +954,7 @@ func (m *ContainerCreate_Runtime) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainer
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainer
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1185,7 +1179,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthContainer
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1234,10 +1228,7 @@ func (m *ContainerUpdate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainer
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainer
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1320,10 +1311,7 @@ func (m *ContainerDelete) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainer
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainer
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/content.pb.go b/src/import/api/events/content.pb.go
> +index 959ea72d8..0a7ec9325 100644
> +--- a/src/import/api/events/content.pb.go
> ++++ b/src/import/api/events/content.pb.go
> +@@ -257,10 +257,7 @@ func (m *ContentDelete) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/image.pb.go b/src/import/api/events/image.pb.go
> +index 13f60b017..747026945 100644
> +--- a/src/import/api/events/image.pb.go
> ++++ b/src/import/api/events/image.pb.go
> +@@ -697,7 +697,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthImage
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -714,10 +714,7 @@ func (m *ImageCreate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImage
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImage
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -910,7 +907,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthImage
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -927,10 +924,7 @@ func (m *ImageUpdate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImage
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImage
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1013,10 +1007,7 @@ func (m *ImageDelete) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImage
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImage
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/namespace.pb.go b/src/import/api/events/namespace.pb.go
> +index 37c3b78cf..d406a987e 100644
> +--- a/src/import/api/events/namespace.pb.go
> ++++ b/src/import/api/events/namespace.pb.go
> +@@ -697,7 +697,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthNamespace
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -714,10 +714,7 @@ func (m *NamespaceCreate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -910,7 +907,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthNamespace
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -927,10 +924,7 @@ func (m *NamespaceUpdate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1013,10 +1007,7 @@ func (m *NamespaceDelete) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/snapshot.pb.go b/src/import/api/events/snapshot.pb.go
> +index 539297004..bec25c3a7 100644
> +--- a/src/import/api/events/snapshot.pb.go
> ++++ b/src/import/api/events/snapshot.pb.go
> +@@ -548,10 +548,7 @@ func (m *SnapshotPrepare) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshot
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshot
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -666,10 +663,7 @@ func (m *SnapshotCommit) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshot
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshot
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -752,10 +746,7 @@ func (m *SnapshotRemove) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshot
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshot
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/events/task.pb.go b/src/import/api/events/task.pb.go
> +index 0f16695e3..f8f3a3f3d 100644
> +--- a/src/import/api/events/task.pb.go
> ++++ b/src/import/api/events/task.pb.go
> +@@ -1905,10 +1905,7 @@ func (m *TaskCreate) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2010,10 +2007,7 @@ func (m *TaskStart) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2199,10 +2193,7 @@ func (m *TaskDelete) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2369,10 +2360,7 @@ func (m *TaskIO) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2558,10 +2546,7 @@ func (m *TaskExit) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2644,10 +2629,7 @@ func (m *TaskOOM) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2762,10 +2744,7 @@ func (m *TaskExecAdded) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2899,10 +2878,7 @@ func (m *TaskExecStarted) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2985,10 +2961,7 @@ func (m *TaskPaused) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3071,10 +3044,7 @@ func (m *TaskResumed) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3189,10 +3159,7 @@ func (m *TaskCheckpointed) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/containers/v1/containers.pb.go b/src/import/api/services/containers/v1/containers.pb.go
> +index d951b2683..af56c7de2 100644
> +--- a/src/import/api/services/containers/v1/containers.pb.go
> ++++ b/src/import/api/services/containers/v1/containers.pb.go
> +@@ -2106,7 +2106,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthContainers
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -2469,7 +2469,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthContainers
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -2486,10 +2486,7 @@ func (m *Container) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2608,10 +2605,7 @@ func (m *Container_Runtime) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2694,10 +2688,7 @@ func (m *GetContainerRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2781,10 +2772,7 @@ func (m *GetContainerResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2867,10 +2855,7 @@ func (m *ListContainersRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2955,10 +2940,7 @@ func (m *ListContainersResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3042,10 +3024,7 @@ func (m *CreateContainerRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3129,10 +3108,7 @@ func (m *CreateContainerResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3252,10 +3228,7 @@ func (m *UpdateContainerRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3339,10 +3312,7 @@ func (m *UpdateContainerResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3425,10 +3395,7 @@ func (m *DeleteContainerRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3515,10 +3482,7 @@ func (m *ListContainerMessage) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContainers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContainers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/content/v1/content.pb.go b/src/import/api/services/content/v1/content.pb.go
> +index 1cf0aaa91..97c7d4a92 100644
> +--- a/src/import/api/services/content/v1/content.pb.go
> ++++ b/src/import/api/services/content/v1/content.pb.go
> +@@ -3280,7 +3280,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthContent
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -3297,10 +3297,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3383,10 +3380,7 @@ func (m *InfoRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3470,10 +3464,7 @@ func (m *InfoResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3593,10 +3584,7 @@ func (m *UpdateRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3680,10 +3668,7 @@ func (m *UpdateResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3766,10 +3751,7 @@ func (m *ListContentRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3854,10 +3836,7 @@ func (m *ListContentResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3940,10 +3919,7 @@ func (m *DeleteContentRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4064,10 +4040,7 @@ func (m *ReadContentRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4171,10 +4144,7 @@ func (m *ReadContentResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4393,10 +4363,7 @@ func (m *Status) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4479,10 +4446,7 @@ func (m *StatusRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4569,10 +4533,7 @@ func (m *StatusResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4655,10 +4616,7 @@ func (m *ListStatusesRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4743,10 +4701,7 @@ func (m *ListStatusesResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5062,7 +5017,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthContent
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -5079,10 +5034,7 @@ func (m *WriteContentRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5288,10 +5240,7 @@ func (m *WriteContentResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5374,10 +5323,7 @@ func (m *AbortRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthContent
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthContent
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/diff/v1/diff.pb.go b/src/import/api/services/diff/v1/diff.pb.go
> +index 48379234d..b1450ceb8 100644
> +--- a/src/import/api/services/diff/v1/diff.pb.go
> ++++ b/src/import/api/services/diff/v1/diff.pb.go
> +@@ -1063,7 +1063,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthDiff
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1080,10 +1080,7 @@ func (m *ApplyRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDiff
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDiff
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1170,10 +1167,7 @@ func (m *ApplyResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDiff
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDiff
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1466,7 +1460,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthDiff
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1483,10 +1477,7 @@ func (m *DiffRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDiff
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDiff
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1573,10 +1564,7 @@ func (m *DiffResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDiff
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDiff
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/events/v1/events.pb.go b/src/import/api/services/events/v1/events.pb.go
> +index a1674f862..4373f3bf2 100644
> +--- a/src/import/api/services/events/v1/events.pb.go
> ++++ b/src/import/api/services/events/v1/events.pb.go
> +@@ -916,10 +916,7 @@ func (m *PublishRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1006,10 +1003,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1092,10 +1086,7 @@ func (m *SubscribeRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1279,10 +1270,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/images/v1/images.pb.go b/src/import/api/services/images/v1/images.pb.go
> +index db912b68b..de08cc083 100644
> +--- a/src/import/api/services/images/v1/images.pb.go
> ++++ b/src/import/api/services/images/v1/images.pb.go
> +@@ -1707,7 +1707,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthImages
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1823,10 +1823,7 @@ func (m *Image) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1909,10 +1906,7 @@ func (m *GetImageRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1999,10 +1993,7 @@ func (m *GetImageResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2086,10 +2077,7 @@ func (m *CreateImageRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2173,10 +2161,7 @@ func (m *CreateImageResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2296,10 +2281,7 @@ func (m *UpdateImageRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2383,10 +2365,7 @@ func (m *UpdateImageResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2469,10 +2448,7 @@ func (m *ListImagesRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2557,10 +2533,7 @@ func (m *ListImagesResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2663,10 +2636,7 @@ func (m *DeleteImageRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthImages
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthImages
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/introspection/v1/introspection.pb.go b/src/import/api/services/introspection/v1/introspection.pb.go
> +index b9f912b09..d23c8b61a 100644
> +--- a/src/import/api/services/introspection/v1/introspection.pb.go
> ++++ b/src/import/api/services/introspection/v1/introspection.pb.go
> +@@ -1098,7 +1098,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthIntrospection
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1183,10 +1183,7 @@ func (m *Plugin) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthIntrospection
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthIntrospection
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1269,10 +1266,7 @@ func (m *PluginsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthIntrospection
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthIntrospection
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1357,10 +1351,7 @@ func (m *PluginsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthIntrospection
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthIntrospection
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1443,10 +1434,7 @@ func (m *ServerResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthIntrospection
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthIntrospection
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/leases/v1/leases.pb.go b/src/import/api/services/leases/v1/leases.pb.go
> +index 4dbac3e09..5e7cab71f 100644
> +--- a/src/import/api/services/leases/v1/leases.pb.go
> ++++ b/src/import/api/services/leases/v1/leases.pb.go
> +@@ -1906,7 +1906,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthLeases
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1923,10 +1923,7 @@ func (m *Lease) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2119,7 +2116,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthLeases
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -2136,10 +2133,7 @@ func (m *CreateRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2226,10 +2220,7 @@ func (m *CreateResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2332,10 +2323,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2418,10 +2406,7 @@ func (m *ListRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2506,10 +2491,7 @@ func (m *ListResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2624,10 +2606,7 @@ func (m *Resource) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2743,10 +2722,7 @@ func (m *AddResourceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2862,10 +2838,7 @@ func (m *DeleteResourceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2948,10 +2921,7 @@ func (m *ListResourcesRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3036,10 +3006,7 @@ func (m *ListResourcesResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthLeases
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthLeases
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/namespaces/v1/namespace.pb.go b/src/import/api/services/namespaces/v1/namespace.pb.go
> +index 0d1d650ba..76f9e1172 100644
> +--- a/src/import/api/services/namespaces/v1/namespace.pb.go
> ++++ b/src/import/api/services/namespaces/v1/namespace.pb.go
> +@@ -1609,7 +1609,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthNamespace
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1626,10 +1626,7 @@ func (m *Namespace) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1712,10 +1709,7 @@ func (m *GetNamespaceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1799,10 +1793,7 @@ func (m *GetNamespaceResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1885,10 +1876,7 @@ func (m *ListNamespacesRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1973,10 +1961,7 @@ func (m *ListNamespacesResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2060,10 +2045,7 @@ func (m *CreateNamespaceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2147,10 +2129,7 @@ func (m *CreateNamespaceResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2270,10 +2249,7 @@ func (m *UpdateNamespaceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2357,10 +2333,7 @@ func (m *UpdateNamespaceResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2443,10 +2416,7 @@ func (m *DeleteNamespaceRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthNamespace
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthNamespace
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/snapshots/v1/snapshots.pb.go b/src/import/api/services/snapshots/v1/snapshots.pb.go
> +index 1877afded..046c97b01 100644
> +--- a/src/import/api/services/snapshots/v1/snapshots.pb.go
> ++++ b/src/import/api/services/snapshots/v1/snapshots.pb.go
> +@@ -3140,7 +3140,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthSnapshots
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -3157,10 +3157,7 @@ func (m *PrepareSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3245,10 +3242,7 @@ func (m *PrepareSnapshotResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3505,7 +3499,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthSnapshots
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -3522,10 +3516,7 @@ func (m *ViewSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3610,10 +3601,7 @@ func (m *ViewSnapshotResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3728,10 +3716,7 @@ func (m *MountsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3816,10 +3801,7 @@ func (m *MountsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3934,10 +3916,7 @@ func (m *RemoveSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4194,7 +4173,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthSnapshots
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -4211,10 +4190,7 @@ func (m *CommitSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4329,10 +4305,7 @@ func (m *StatSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4642,7 +4615,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthSnapshots
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -4659,10 +4632,7 @@ func (m *Info) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4746,10 +4716,7 @@ func (m *StatSnapshotResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4901,10 +4868,7 @@ func (m *UpdateSnapshotRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4988,10 +4952,7 @@ func (m *UpdateSnapshotResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5106,10 +5067,7 @@ func (m *ListSnapshotsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5194,10 +5152,7 @@ func (m *ListSnapshotsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5312,10 +5267,7 @@ func (m *UsageRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5404,10 +5356,7 @@ func (m *UsageResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5490,10 +5439,7 @@ func (m *CleanupRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSnapshots
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSnapshots
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/tasks/v1/tasks.pb.go b/src/import/api/services/tasks/v1/tasks.pb.go
> +index 5ac5af11b..4904e6508 100644
> +--- a/src/import/api/services/tasks/v1/tasks.pb.go
> ++++ b/src/import/api/services/tasks/v1/tasks.pb.go
> +@@ -9,6 +9,7 @@ import (
> + 	types "github.com/containerd/containerd/api/types"
> + 	task "github.com/containerd/containerd/src/import/api/types/task"
> + 	proto "github.com/gogo/protobuf/proto"
> ++	github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
> + 	github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
> + 	types1 "github.com/gogo/protobuf/types"
> + 	github_com_opencontainers_go_digest "github.com/opencontainers/go-digest"
> +@@ -934,11 +935,12 @@ func (m *CheckpointTaskResponse) XXX_DiscardUnknown() {
> + var xxx_messageInfo_CheckpointTaskResponse proto.InternalMessageInfo
> + 
> + type UpdateTaskRequest struct {
> +-	ContainerID          string      `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
> +-	Resources            *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> +-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
> +-	XXX_unrecognized     []byte      `json:"-"`
> +-	XXX_sizecache        int32       `json:"-"`
> ++	ContainerID          string            `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
> ++	Resources            *types1.Any       `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> ++	Annotations          map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
> ++	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
> ++	XXX_unrecognized     []byte            `json:"-"`
> ++	XXX_sizecache        int32             `json:"-"`
> + }
> + 
> + func (m *UpdateTaskRequest) Reset()      { *m = UpdateTaskRequest{} }
> +@@ -1155,6 +1157,7 @@ func init() {
> + 	proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.services.tasks.v1.CheckpointTaskRequest")
> + 	proto.RegisterType((*CheckpointTaskResponse)(nil), "containerd.services.tasks.v1.CheckpointTaskResponse")
> + 	proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.services.tasks.v1.UpdateTaskRequest")
> ++	proto.RegisterMapType((map[string]string)(nil), "containerd.services.tasks.v1.UpdateTaskRequest.AnnotationsEntry")
> + 	proto.RegisterType((*MetricsRequest)(nil), "containerd.services.tasks.v1.MetricsRequest")
> + 	proto.RegisterType((*MetricsResponse)(nil), "containerd.services.tasks.v1.MetricsResponse")
> + 	proto.RegisterType((*WaitRequest)(nil), "containerd.services.tasks.v1.WaitRequest")
> +@@ -1166,90 +1169,93 @@ func init() {
> + }
> + 
> + var fileDescriptor_310e7127b8a26f14 = []byte{
> +-	// 1318 bytes of a gzipped FileDescriptorProto
> +-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0x1b, 0x45,
> +-	0x1c, 0xef, 0xfa, 0xed, 0xbf, 0x93, 0x36, 0x59, 0xd2, 0x60, 0x96, 0x2a, 0x0e, 0xcb, 0xc5, 0x04,
> +-	0xba, 0x4b, 0x5d, 0x54, 0x21, 0x5a, 0x21, 0x35, 0x0f, 0x22, 0x0b, 0xaa, 0xa6, 0xdb, 0x02, 0x55,
> +-	0x25, 0x14, 0xb6, 0xbb, 0x13, 0x67, 0x14, 0x7b, 0x67, 0xbb, 0x33, 0x4e, 0x1b, 0x38, 0xc0, 0x47,
> +-	0xe8, 0x95, 0x0b, 0x9f, 0x27, 0x47, 0x8e, 0x08, 0x55, 0x81, 0xfa, 0x5b, 0x70, 0x43, 0xf3, 0xd8,
> +-	0xcd, 0xc6, 0x8e, 0xbd, 0x4e, 0xd3, 0x70, 0x69, 0x67, 0x66, 0xff, 0xaf, 0xf9, 0xcd, 0xff, 0xf1,
> +-	0x73, 0x60, 0xb5, 0x83, 0xd9, 0x6e, 0xff, 0xa9, 0xe5, 0x91, 0x9e, 0xed, 0x91, 0x80, 0xb9, 0x38,
> +-	0x40, 0x91, 0x9f, 0x5e, 0xba, 0x21, 0xb6, 0x29, 0x8a, 0xf6, 0xb1, 0x87, 0xa8, 0xcd, 0x5c, 0xba,
> +-	0x47, 0xed, 0xfd, 0x1b, 0x72, 0x61, 0x85, 0x11, 0x61, 0x44, 0xbf, 0x76, 0x2c, 0x6d, 0xc5, 0x92,
> +-	0x96, 0x14, 0xd8, 0xbf, 0x61, 0xbc, 0xdf, 0x21, 0xa4, 0xd3, 0x45, 0xb6, 0x90, 0x7d, 0xda, 0xdf,
> +-	0xb1, 0x51, 0x2f, 0x64, 0x07, 0x52, 0xd5, 0x78, 0x6f, 0xf8, 0xa3, 0x1b, 0xc4, 0x9f, 0x16, 0x3a,
> +-	0xa4, 0x43, 0xc4, 0xd2, 0xe6, 0x2b, 0x75, 0x7a, 0x6b, 0xaa, 0x78, 0xd9, 0x41, 0x88, 0xa8, 0xdd,
> +-	0x23, 0xfd, 0x80, 0x29, 0xbd, 0xcf, 0xcf, 0xa2, 0x87, 0x58, 0x84, 0x3d, 0x75, 0x3b, 0xe3, 0xf6,
> +-	0x19, 0x34, 0x7d, 0x44, 0xbd, 0x08, 0x87, 0x8c, 0x44, 0x4a, 0xf9, 0x8b, 0x33, 0x28, 0x73, 0xc4,
> +-	0xc4, 0x3f, 0x4a, 0xb7, 0x31, 0x8c, 0x0d, 0xc3, 0x3d, 0x44, 0x99, 0xdb, 0x0b, 0xa5, 0x80, 0x79,
> +-	0x98, 0x83, 0xf9, 0xb5, 0x08, 0xb9, 0x0c, 0x3d, 0x72, 0xe9, 0x9e, 0x83, 0x9e, 0xf5, 0x11, 0x65,
> +-	0x7a, 0x0b, 0x66, 0x12, 0xf3, 0xdb, 0xd8, 0xaf, 0x6b, 0xcb, 0x5a, 0xb3, 0xba, 0x7a, 0x65, 0x70,
> +-	0xd4, 0xa8, 0xad, 0xc5, 0xe7, 0xed, 0x75, 0xa7, 0x96, 0x08, 0xb5, 0x7d, 0xdd, 0x86, 0x52, 0x44,
> +-	0x08, 0xdb, 0xa1, 0xf5, 0xfc, 0x72, 0xbe, 0x59, 0x6b, 0xbd, 0x6b, 0xa5, 0x9e, 0x54, 0x44, 0x67,
> +-	0xdd, 0xe3, 0x60, 0x3a, 0x4a, 0x4c, 0x5f, 0x80, 0x22, 0x65, 0x3e, 0x0e, 0xea, 0x05, 0x6e, 0xdd,
> +-	0x91, 0x1b, 0x7d, 0x11, 0x4a, 0x94, 0xf9, 0xa4, 0xcf, 0xea, 0x45, 0x71, 0xac, 0x76, 0xea, 0x1c,
> +-	0x45, 0x51, 0xbd, 0x94, 0x9c, 0xa3, 0x28, 0xd2, 0x0d, 0xa8, 0x30, 0x14, 0xf5, 0x70, 0xe0, 0x76,
> +-	0xeb, 0xe5, 0x65, 0xad, 0x59, 0x71, 0x92, 0xbd, 0x7e, 0x07, 0xc0, 0xdb, 0x45, 0xde, 0x5e, 0x48,
> +-	0x70, 0xc0, 0xea, 0x95, 0x65, 0xad, 0x59, 0x6b, 0x5d, 0x1b, 0x0d, 0x6b, 0x3d, 0x41, 0xdc, 0x49,
> +-	0xc9, 0xeb, 0x16, 0x94, 0x49, 0xc8, 0x30, 0x09, 0x68, 0xbd, 0x2a, 0x54, 0x17, 0x2c, 0x89, 0xa6,
> +-	0x15, 0xa3, 0x69, 0xdd, 0x0d, 0x0e, 0x9c, 0x58, 0xc8, 0x7c, 0x02, 0x7a, 0x1a, 0x49, 0x1a, 0x92,
> +-	0x80, 0xa2, 0x37, 0x82, 0x72, 0x0e, 0xf2, 0x21, 0xf6, 0xeb, 0xb9, 0x65, 0xad, 0x39, 0xeb, 0xf0,
> +-	0xa5, 0xd9, 0x81, 0x99, 0x87, 0xcc, 0x8d, 0xd8, 0x79, 0x1e, 0xe8, 0x43, 0x28, 0xa3, 0x17, 0xc8,
> +-	0xdb, 0x56, 0x96, 0xab, 0xab, 0x30, 0x38, 0x6a, 0x94, 0x36, 0x5e, 0x20, 0xaf, 0xbd, 0xee, 0x94,
> +-	0xf8, 0xa7, 0xb6, 0x6f, 0x7e, 0x00, 0xb3, 0xca, 0x91, 0x8a, 0x5f, 0xc5, 0xa2, 0x1d, 0xc7, 0xb2,
> +-	0x09, 0xf3, 0xeb, 0xa8, 0x8b, 0xce, 0x9d, 0x31, 0xe6, 0xef, 0x1a, 0x5c, 0x96, 0x96, 0x12, 0x6f,
> +-	0x8b, 0x90, 0x4b, 0x94, 0x4b, 0x83, 0xa3, 0x46, 0xae, 0xbd, 0xee, 0xe4, 0xf0, 0x29, 0x88, 0xe8,
> +-	0x0d, 0xa8, 0xa1, 0x17, 0x98, 0x6d, 0x53, 0xe6, 0xb2, 0x3e, 0xcf, 0x39, 0xfe, 0x05, 0xf8, 0xd1,
> +-	0x43, 0x71, 0xa2, 0xdf, 0x85, 0x2a, 0xdf, 0x21, 0x7f, 0xdb, 0x65, 0x22, 0xc5, 0x6a, 0x2d, 0x63,
> +-	0xe4, 0x01, 0x1f, 0xc5, 0xe5, 0xb0, 0x5a, 0x39, 0x3c, 0x6a, 0x5c, 0x7a, 0xf9, 0x77, 0x43, 0x73,
> +-	0x2a, 0x52, 0xed, 0x2e, 0x33, 0x09, 0x2c, 0xc8, 0xf8, 0xb6, 0x22, 0xe2, 0x21, 0x4a, 0x2f, 0x1c,
> +-	0x7d, 0x04, 0xb0, 0x89, 0x2e, 0xfe, 0x91, 0x37, 0xa0, 0x26, 0xdc, 0x28, 0xd0, 0x6f, 0x41, 0x39,
> +-	0x94, 0x17, 0x14, 0x2e, 0x86, 0x6a, 0x64, 0xff, 0x86, 0x2a, 0x93, 0x18, 0x84, 0x58, 0xd8, 0x5c,
> +-	0x81, 0xb9, 0x6f, 0x30, 0x65, 0x3c, 0x0d, 0x12, 0x68, 0x16, 0xa1, 0xb4, 0x83, 0xbb, 0x0c, 0x45,
> +-	0x32, 0x5a, 0x47, 0xed, 0x78, 0xd2, 0xa4, 0x64, 0x93, 0xda, 0x28, 0x8a, 0x16, 0x5f, 0xd7, 0x44,
> +-	0xc7, 0x98, 0xec, 0x56, 0x8a, 0x9a, 0x2f, 0x35, 0xa8, 0x7d, 0x8d, 0xbb, 0xdd, 0x8b, 0x06, 0x49,
> +-	0x34, 0x1c, 0xdc, 0xe1, 0x6d, 0x45, 0xe6, 0x96, 0xda, 0xf1, 0x54, 0x74, 0xbb, 0x5d, 0x91, 0x51,
> +-	0x15, 0x87, 0x2f, 0xcd, 0x7f, 0x35, 0xd0, 0xb9, 0xf2, 0x5b, 0xc8, 0x92, 0xa4, 0x27, 0xe6, 0x4e,
> +-	0xef, 0x89, 0xf9, 0x31, 0x3d, 0xb1, 0x30, 0xb6, 0x27, 0x16, 0x87, 0x7a, 0x62, 0x13, 0x0a, 0x34,
> +-	0x44, 0x9e, 0xe8, 0xa2, 0xe3, 0x5a, 0x9a, 0x90, 0x48, 0xa3, 0x54, 0x1e, 0x9b, 0x4a, 0x57, 0xe1,
> +-	0x9d, 0x13, 0x57, 0x97, 0x2f, 0x6b, 0xfe, 0xa6, 0xc1, 0x9c, 0x83, 0x28, 0xfe, 0x09, 0x6d, 0xb1,
> +-	0x83, 0x0b, 0x7f, 0xaa, 0x05, 0x28, 0x3e, 0xc7, 0x3e, 0xdb, 0x55, 0x2f, 0x25, 0x37, 0x1c, 0x9d,
> +-	0x5d, 0x84, 0x3b, 0xbb, 0xb2, 0xfa, 0x67, 0x1d, 0xb5, 0x33, 0x7f, 0x81, 0xcb, 0x6b, 0x5d, 0x42,
> +-	0x51, 0xfb, 0xfe, 0xff, 0x11, 0x98, 0x7c, 0xce, 0xbc, 0x78, 0x05, 0xb9, 0x31, 0xbf, 0x82, 0xb9,
> +-	0x2d, 0xb7, 0x4f, 0xcf, 0xdd, 0x3f, 0x37, 0x61, 0xde, 0x41, 0xb4, 0xdf, 0x3b, 0xb7, 0xa1, 0x0d,
> +-	0xb8, 0xc2, 0x8b, 0x73, 0x0b, 0xfb, 0xe7, 0x49, 0x5e, 0xd3, 0x91, 0xfd, 0x40, 0x9a, 0x51, 0x25,
> +-	0xfe, 0x25, 0x54, 0x55, 0xbb, 0x40, 0x71, 0x99, 0x2f, 0x4f, 0x2a, 0xf3, 0x76, 0xb0, 0x43, 0x9c,
> +-	0x63, 0x15, 0xf3, 0x95, 0x06, 0x57, 0xd7, 0x92, 0x99, 0x7c, 0x5e, 0x8e, 0xb2, 0x0d, 0xf3, 0xa1,
> +-	0x1b, 0xa1, 0x80, 0x6d, 0xa7, 0x78, 0x81, 0x7c, 0xbe, 0x16, 0xef, 0xff, 0x7f, 0x1d, 0x35, 0x56,
> +-	0x52, 0x6c, 0x8b, 0x84, 0x28, 0x48, 0xd4, 0xa9, 0xdd, 0x21, 0xd7, 0x7d, 0xdc, 0x41, 0x94, 0x59,
> +-	0xeb, 0xe2, 0x3f, 0x67, 0x4e, 0x1a, 0x5b, 0x3b, 0x95, 0x33, 0xe4, 0xa7, 0xe1, 0x0c, 0x8f, 0x61,
> +-	0x71, 0xf8, 0x76, 0x09, 0x70, 0xb5, 0x63, 0x26, 0x78, 0x6a, 0x87, 0x1c, 0x21, 0x2f, 0x69, 0x05,
> +-	0xf3, 0x67, 0x98, 0xff, 0x36, 0xf4, 0xdf, 0x02, 0xaf, 0x6b, 0x41, 0x35, 0x42, 0x94, 0xf4, 0x23,
> +-	0x0f, 0x51, 0x81, 0xd5, 0xb8, 0x4b, 0x1d, 0x8b, 0x99, 0x2b, 0x70, 0xf9, 0x9e, 0x24, 0xc0, 0xb1,
> +-	0xe7, 0x3a, 0x94, 0xe5, 0x24, 0x90, 0x57, 0xa9, 0x3a, 0xf1, 0x96, 0x27, 0x5f, 0x22, 0x9b, 0xcc,
> +-	0x85, 0xb2, 0xe2, 0xcf, 0xea, 0xde, 0xf5, 0x53, 0xb8, 0xa4, 0x10, 0x70, 0x62, 0x41, 0x73, 0x07,
> +-	0x6a, 0xdf, 0xbb, 0xf8, 0xe2, 0x67, 0x67, 0x04, 0x33, 0xd2, 0x8f, 0x8a, 0x75, 0x88, 0x87, 0x68,
> +-	0x93, 0x79, 0x48, 0xee, 0x4d, 0x78, 0x48, 0xeb, 0xd5, 0x0c, 0x14, 0xc5, 0xe4, 0xd4, 0xf7, 0xa0,
> +-	0x24, 0x39, 0xa6, 0x6e, 0x5b, 0x93, 0x7e, 0x31, 0x59, 0x23, 0x9c, 0xde, 0xf8, 0x74, 0x7a, 0x05,
> +-	0x75, 0xb5, 0x1f, 0xa1, 0x28, 0xb8, 0xa0, 0xbe, 0x32, 0x59, 0x35, 0xcd, 0x4c, 0x8d, 0x8f, 0xa7,
> +-	0x92, 0x55, 0x1e, 0x3a, 0x50, 0x92, 0x04, 0x2b, 0xeb, 0x3a, 0x23, 0x84, 0xd3, 0xf8, 0x64, 0x1a,
> +-	0x85, 0xc4, 0xd1, 0x33, 0x98, 0x3d, 0xc1, 0xe4, 0xf4, 0xd6, 0x34, 0xea, 0x27, 0x07, 0xfa, 0x19,
> +-	0x5d, 0x3e, 0x81, 0xfc, 0x26, 0x62, 0x7a, 0x73, 0xb2, 0xd2, 0x31, 0xdd, 0x33, 0x3e, 0x9a, 0x42,
> +-	0x32, 0xc1, 0xad, 0xc0, 0x3b, 0xad, 0x6e, 0x4d, 0x56, 0x19, 0x66, 0x67, 0x86, 0x3d, 0xb5, 0xbc,
> +-	0x72, 0xd4, 0x86, 0x02, 0x27, 0x5b, 0x7a, 0x46, 0x6c, 0x29, 0x42, 0x66, 0x2c, 0x8e, 0x24, 0xf7,
> +-	0x06, 0xff, 0xb1, 0xae, 0x6f, 0x41, 0x81, 0x97, 0x92, 0x9e, 0x91, 0x87, 0xa3, 0x44, 0x6a, 0xac,
> +-	0xc5, 0x87, 0x50, 0x4d, 0x38, 0x46, 0x16, 0x14, 0xc3, 0x64, 0x64, 0xac, 0xd1, 0xfb, 0x50, 0x56,
> +-	0xec, 0x40, 0xcf, 0x78, 0xef, 0x93, 0x24, 0x62, 0x82, 0xc1, 0xa2, 0x98, 0xf6, 0x59, 0x11, 0x0e,
> +-	0x53, 0x82, 0xb1, 0x06, 0x1f, 0x40, 0x49, 0x8e, 0xfd, 0xac, 0xa2, 0x19, 0x21, 0x07, 0x63, 0x4d,
> +-	0x62, 0xa8, 0xc4, 0x93, 0x5b, 0xbf, 0x9e, 0x9d, 0x23, 0x29, 0xa2, 0x60, 0x58, 0xd3, 0x8a, 0xab,
> +-	0x8c, 0x7a, 0x0e, 0x90, 0x9a, 0x97, 0x37, 0x33, 0x20, 0x3e, 0x6d, 0xf2, 0x1b, 0x9f, 0x9d, 0x4d,
> +-	0x49, 0x39, 0x7e, 0x00, 0x25, 0x39, 0x10, 0xb3, 0x60, 0x1b, 0x19, 0x9b, 0x63, 0x61, 0xdb, 0x81,
> +-	0xb2, 0x1a, 0x5d, 0x59, 0xb9, 0x72, 0x72, 0x1a, 0x1a, 0xd7, 0xa7, 0x94, 0x56, 0xa1, 0xff, 0x00,
> +-	0x05, 0x3e, 0x73, 0xb2, 0xaa, 0x30, 0x35, 0xff, 0x8c, 0x95, 0x69, 0x44, 0xa5, 0xf9, 0xd5, 0xef,
> +-	0x0e, 0x5f, 0x2f, 0x5d, 0xfa, 0xf3, 0xf5, 0xd2, 0xa5, 0x5f, 0x07, 0x4b, 0xda, 0xe1, 0x60, 0x49,
> +-	0xfb, 0x63, 0xb0, 0xa4, 0xfd, 0x33, 0x58, 0xd2, 0x9e, 0xdc, 0x79, 0xb3, 0xbf, 0xec, 0xdd, 0x16,
> +-	0x8b, 0xc7, 0xb9, 0xa7, 0x25, 0x01, 0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x85, 0xa2,
> +-	0x4f, 0xd1, 0x22, 0x14, 0x00, 0x00,
> ++	// 1376 bytes of a gzipped FileDescriptorProto
> ++	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0x1b, 0x45,
> ++	0x14, 0xee, 0xfa, 0xee, 0xe3, 0xa4, 0x4d, 0x96, 0x34, 0x98, 0xa5, 0x8a, 0xc3, 0xf2, 0x62, 0x02,
> ++	0x5d, 0x53, 0x17, 0x55, 0x55, 0x5b, 0x55, 0xe4, 0x46, 0x64, 0x41, 0xd5, 0x74, 0x5b, 0xa0, 0xaa,
> ++	0x84, 0xc2, 0xc6, 0x3b, 0x71, 0x46, 0xb1, 0x77, 0xb6, 0x3b, 0xe3, 0xb4, 0xe6, 0x05, 0x7e, 0x42,
> ++	0x5f, 0x79, 0x81, 0xbf, 0x93, 0x47, 0x1e, 0x11, 0xaa, 0x02, 0xf5, 0xbf, 0xe0, 0x0d, 0xcd, 0x65,
> ++	0xd7, 0x1b, 0x3b, 0xf6, 0x3a, 0x4d, 0xc3, 0x4b, 0x32, 0x33, 0x7b, 0xce, 0x99, 0x33, 0xdf, 0xb9,
> ++	0x7d, 0x09, 0xac, 0xb5, 0x30, 0xdb, 0xef, 0xee, 0x5a, 0x4d, 0xd2, 0xa9, 0x35, 0x89, 0xc7, 0x1c,
> ++	0xec, 0xa1, 0xc0, 0x8d, 0x2f, 0x1d, 0x1f, 0xd7, 0x28, 0x0a, 0x0e, 0x71, 0x13, 0xd1, 0x1a, 0x73,
> ++	0xe8, 0x01, 0xad, 0x1d, 0xde, 0x90, 0x0b, 0xcb, 0x0f, 0x08, 0x23, 0xfa, 0xb5, 0x81, 0xb4, 0x15,
> ++	0x4a, 0x5a, 0x52, 0xe0, 0xf0, 0x86, 0xf1, 0x61, 0x8b, 0x90, 0x56, 0x1b, 0xd5, 0x84, 0xec, 0x6e,
> ++	0x77, 0xaf, 0x86, 0x3a, 0x3e, 0xeb, 0x49, 0x55, 0xe3, 0x83, 0xe1, 0x8f, 0x8e, 0x17, 0x7e, 0x5a,
> ++	0x68, 0x91, 0x16, 0x11, 0xcb, 0x1a, 0x5f, 0xa9, 0xd3, 0x5b, 0x53, 0xf9, 0xcb, 0x7a, 0x3e, 0xa2,
> ++	0xb5, 0x0e, 0xe9, 0x7a, 0x4c, 0xe9, 0xdd, 0x3e, 0x8b, 0x1e, 0x62, 0x01, 0x6e, 0xaa, 0xd7, 0x19,
> ++	0x77, 0xcf, 0xa0, 0xe9, 0x22, 0xda, 0x0c, 0xb0, 0xcf, 0x48, 0xa0, 0x94, 0xef, 0x9c, 0x41, 0x99,
> ++	0x23, 0x26, 0x7e, 0x28, 0xdd, 0xca, 0x30, 0x36, 0x0c, 0x77, 0x10, 0x65, 0x4e, 0xc7, 0x97, 0x02,
> ++	0xe6, 0x51, 0x0a, 0xe6, 0xd7, 0x03, 0xe4, 0x30, 0xf4, 0xc4, 0xa1, 0x07, 0x36, 0x7a, 0xde, 0x45,
> ++	0x94, 0xe9, 0x75, 0x98, 0x89, 0xcc, 0xef, 0x60, 0xb7, 0xac, 0x2d, 0x6b, 0xd5, 0xe2, 0xda, 0x95,
> ++	0xfe, 0x71, 0xa5, 0xb4, 0x1e, 0x9e, 0x37, 0x36, 0xec, 0x52, 0x24, 0xd4, 0x70, 0xf5, 0x1a, 0xe4,
> ++	0x02, 0x42, 0xd8, 0x1e, 0x2d, 0xa7, 0x97, 0xd3, 0xd5, 0x52, 0xfd, 0x7d, 0x2b, 0x16, 0x52, 0xe1,
> ++	0x9d, 0xf5, 0x80, 0x83, 0x69, 0x2b, 0x31, 0x7d, 0x01, 0xb2, 0x94, 0xb9, 0xd8, 0x2b, 0x67, 0xb8,
> ++	0x75, 0x5b, 0x6e, 0xf4, 0x45, 0xc8, 0x51, 0xe6, 0x92, 0x2e, 0x2b, 0x67, 0xc5, 0xb1, 0xda, 0xa9,
> ++	0x73, 0x14, 0x04, 0xe5, 0x5c, 0x74, 0x8e, 0x82, 0x40, 0x37, 0xa0, 0xc0, 0x50, 0xd0, 0xc1, 0x9e,
> ++	0xd3, 0x2e, 0xe7, 0x97, 0xb5, 0x6a, 0xc1, 0x8e, 0xf6, 0xfa, 0x3d, 0x80, 0xe6, 0x3e, 0x6a, 0x1e,
> ++	0xf8, 0x04, 0x7b, 0xac, 0x5c, 0x58, 0xd6, 0xaa, 0xa5, 0xfa, 0xb5, 0x51, 0xb7, 0x36, 0x22, 0xc4,
> ++	0xed, 0x98, 0xbc, 0x6e, 0x41, 0x9e, 0xf8, 0x0c, 0x13, 0x8f, 0x96, 0x8b, 0x42, 0x75, 0xc1, 0x92,
> ++	0x68, 0x5a, 0x21, 0x9a, 0xd6, 0xaa, 0xd7, 0xb3, 0x43, 0x21, 0xf3, 0x19, 0xe8, 0x71, 0x24, 0xa9,
> ++	0x4f, 0x3c, 0x8a, 0xde, 0x0a, 0xca, 0x39, 0x48, 0xfb, 0xd8, 0x2d, 0xa7, 0x96, 0xb5, 0xea, 0xac,
> ++	0xcd, 0x97, 0x66, 0x0b, 0x66, 0x1e, 0x33, 0x27, 0x60, 0xe7, 0x09, 0xd0, 0xc7, 0x90, 0x47, 0x2f,
> ++	0x51, 0x73, 0x47, 0x59, 0x2e, 0xae, 0x41, 0xff, 0xb8, 0x92, 0xdb, 0x7c, 0x89, 0x9a, 0x8d, 0x0d,
> ++	0x3b, 0xc7, 0x3f, 0x35, 0x5c, 0xf3, 0x23, 0x98, 0x55, 0x17, 0x29, 0xff, 0x95, 0x2f, 0xda, 0xc0,
> ++	0x97, 0x2d, 0x98, 0xdf, 0x40, 0x6d, 0x74, 0xee, 0x8c, 0x31, 0x7f, 0xd3, 0xe0, 0xb2, 0xb4, 0x14,
> ++	0xdd, 0xb6, 0x08, 0xa9, 0x48, 0x39, 0xd7, 0x3f, 0xae, 0xa4, 0x1a, 0x1b, 0x76, 0x0a, 0x9f, 0x82,
> ++	0x88, 0x5e, 0x81, 0x12, 0x7a, 0x89, 0xd9, 0x0e, 0x65, 0x0e, 0xeb, 0xf2, 0x9c, 0xe3, 0x5f, 0x80,
> ++	0x1f, 0x3d, 0x16, 0x27, 0xfa, 0x2a, 0x14, 0xf9, 0x0e, 0xb9, 0x3b, 0x0e, 0x13, 0x29, 0x56, 0xaa,
> ++	0x1b, 0x23, 0x01, 0x7c, 0x12, 0x96, 0xc3, 0x5a, 0xe1, 0xe8, 0xb8, 0x72, 0xe9, 0xd5, 0xdf, 0x15,
> ++	0xcd, 0x2e, 0x48, 0xb5, 0x55, 0x66, 0x12, 0x58, 0x90, 0xfe, 0x6d, 0x07, 0xa4, 0x89, 0x28, 0xbd,
> ++	0x70, 0xf4, 0x11, 0xc0, 0x16, 0xba, 0xf8, 0x20, 0x6f, 0x42, 0x49, 0x5c, 0xa3, 0x40, 0xbf, 0x05,
> ++	0x79, 0x5f, 0x3e, 0x50, 0x5c, 0x31, 0x54, 0x23, 0x87, 0x37, 0x54, 0x99, 0x84, 0x20, 0x84, 0xc2,
> ++	0xe6, 0x0a, 0xcc, 0x7d, 0x83, 0x29, 0xe3, 0x69, 0x10, 0x41, 0xb3, 0x08, 0xb9, 0x3d, 0xdc, 0x66,
> ++	0x28, 0x90, 0xde, 0xda, 0x6a, 0xc7, 0x93, 0x26, 0x26, 0x1b, 0xd5, 0x46, 0x56, 0xb4, 0xf8, 0xb2,
> ++	0x26, 0x3a, 0xc6, 0xe4, 0x6b, 0xa5, 0xa8, 0xf9, 0x4a, 0x83, 0xd2, 0xd7, 0xb8, 0xdd, 0xbe, 0x68,
> ++	0x90, 0x44, 0xc3, 0xc1, 0x2d, 0xde, 0x56, 0x64, 0x6e, 0xa9, 0x1d, 0x4f, 0x45, 0xa7, 0xdd, 0x16,
> ++	0x19, 0x55, 0xb0, 0xf9, 0xd2, 0xfc, 0x57, 0x03, 0x9d, 0x2b, 0xbf, 0x83, 0x2c, 0x89, 0x7a, 0x62,
> ++	0xea, 0xf4, 0x9e, 0x98, 0x1e, 0xd3, 0x13, 0x33, 0x63, 0x7b, 0x62, 0x76, 0xa8, 0x27, 0x56, 0x21,
> ++	0x43, 0x7d, 0xd4, 0x14, 0x5d, 0x74, 0x5c, 0x4b, 0x13, 0x12, 0x71, 0x94, 0xf2, 0x63, 0x53, 0xe9,
> ++	0x2a, 0xbc, 0x77, 0xe2, 0xe9, 0x32, 0xb2, 0xe6, 0xaf, 0x1a, 0xcc, 0xd9, 0x88, 0xe2, 0x9f, 0xd0,
> ++	0x36, 0xeb, 0x5d, 0x78, 0xa8, 0x16, 0x20, 0xfb, 0x02, 0xbb, 0x6c, 0x5f, 0x45, 0x4a, 0x6e, 0x38,
> ++	0x3a, 0xfb, 0x08, 0xb7, 0xf6, 0x65, 0xf5, 0xcf, 0xda, 0x6a, 0x67, 0xfe, 0x0c, 0x97, 0xd7, 0xdb,
> ++	0x84, 0xa2, 0xc6, 0xc3, 0xff, 0xc3, 0x31, 0x19, 0xce, 0xb4, 0x88, 0x82, 0xdc, 0x98, 0x5f, 0xc1,
> ++	0xdc, 0xb6, 0xd3, 0xa5, 0xe7, 0xee, 0x9f, 0x5b, 0x30, 0x6f, 0x23, 0xda, 0xed, 0x9c, 0xdb, 0xd0,
> ++	0x26, 0x5c, 0xe1, 0xc5, 0xb9, 0x8d, 0xdd, 0xf3, 0x24, 0xaf, 0x69, 0xcb, 0x7e, 0x20, 0xcd, 0xa8,
> ++	0x12, 0xbf, 0x0f, 0x45, 0xd5, 0x2e, 0x50, 0x58, 0xe6, 0xcb, 0x93, 0xca, 0xbc, 0xe1, 0xed, 0x11,
> ++	0x7b, 0xa0, 0x62, 0xbe, 0xd6, 0xe0, 0xea, 0x7a, 0x34, 0x93, 0xcf, 0xcb, 0x51, 0x76, 0x60, 0xde,
> ++	0x77, 0x02, 0xe4, 0xb1, 0x9d, 0x18, 0x2f, 0x90, 0xe1, 0xab, 0xf3, 0xfe, 0xff, 0xd7, 0x71, 0x65,
> ++	0x25, 0xc6, 0xb6, 0x88, 0x8f, 0xbc, 0x48, 0x9d, 0xd6, 0x5a, 0xe4, 0xba, 0x8b, 0x5b, 0x88, 0x32,
> ++	0x6b, 0x43, 0xfc, 0xb2, 0xe7, 0xa4, 0xb1, 0xf5, 0x53, 0x39, 0x43, 0x7a, 0x1a, 0xce, 0xf0, 0x14,
> ++	0x16, 0x87, 0x5f, 0x17, 0x01, 0x57, 0x1a, 0x30, 0xc1, 0x53, 0x3b, 0xe4, 0x08, 0x79, 0x89, 0x2b,
> ++	0x98, 0xbf, 0xa7, 0x60, 0xfe, 0x5b, 0xdf, 0x7d, 0x07, 0xc4, 0xae, 0x0e, 0xc5, 0x00, 0x51, 0xd2,
> ++	0x0d, 0x9a, 0x88, 0x0a, 0xb0, 0xc6, 0xbd, 0x6a, 0x20, 0xa6, 0xef, 0x42, 0xc9, 0xf1, 0x3c, 0xc2,
> ++	0x9c, 0x10, 0x0b, 0xee, 0xfd, 0x97, 0xd6, 0x24, 0x92, 0x6f, 0x8d, 0x78, 0x6b, 0xad, 0x0e, 0x4c,
> ++	0x6c, 0x7a, 0x2c, 0xe8, 0xd9, 0x71, 0xa3, 0xc6, 0x7d, 0x98, 0x1b, 0x16, 0xe0, 0xcd, 0xf9, 0x00,
> ++	0xf5, 0xd4, 0xec, 0xe1, 0x4b, 0x5e, 0x82, 0x87, 0x4e, 0xbb, 0x8b, 0xc2, 0x8e, 0x2a, 0x36, 0x77,
> ++	0x52, 0xb7, 0x35, 0x73, 0x05, 0x2e, 0x3f, 0x90, 0x2c, 0x3d, 0x44, 0xa7, 0x0c, 0x79, 0x39, 0xae,
> ++	0x24, 0xde, 0x45, 0x3b, 0xdc, 0xf2, 0x0a, 0x89, 0x64, 0xa3, 0xe1, 0x95, 0x57, 0x24, 0x5f, 0x05,
> ++	0xa7, 0x7c, 0x0a, 0xe1, 0x15, 0x02, 0x76, 0x28, 0x68, 0xee, 0x41, 0xe9, 0x7b, 0x07, 0x5f, 0xfc,
> ++	0x80, 0x0f, 0x60, 0x46, 0xde, 0xa3, 0x7c, 0x1d, 0x22, 0x4b, 0xda, 0x64, 0xb2, 0x94, 0x7a, 0x1b,
> ++	0xb2, 0x54, 0x7f, 0x3d, 0x03, 0x59, 0x31, 0xde, 0xf5, 0x03, 0xc8, 0x49, 0x22, 0xac, 0xd7, 0x26,
> ++	0x47, 0x7c, 0xe4, 0x0f, 0x0f, 0xe3, 0xf3, 0xe9, 0x15, 0xd4, 0xd3, 0x7e, 0x84, 0xac, 0x20, 0xac,
> ++	0xfa, 0xca, 0x64, 0xd5, 0x38, 0x7d, 0x36, 0x3e, 0x9d, 0x4a, 0x56, 0xdd, 0xd0, 0x82, 0x9c, 0x64,
> ++	0x81, 0x49, 0xcf, 0x19, 0x61, 0xc5, 0xc6, 0x67, 0xd3, 0x28, 0x44, 0x17, 0x3d, 0x87, 0xd9, 0x13,
> ++	0x74, 0x53, 0xaf, 0x4f, 0xa3, 0x7e, 0x92, 0x75, 0x9c, 0xf1, 0xca, 0x67, 0x90, 0xde, 0x42, 0x4c,
> ++	0xaf, 0x4e, 0x56, 0x1a, 0x70, 0x52, 0xe3, 0x93, 0x29, 0x24, 0x23, 0xdc, 0x32, 0x7c, 0x1c, 0xe8,
> ++	0xd6, 0x64, 0x95, 0x61, 0x0a, 0x69, 0xd4, 0xa6, 0x96, 0x57, 0x17, 0x35, 0x20, 0xc3, 0x19, 0xa1,
> ++	0x9e, 0xe0, 0x5b, 0x8c, 0x35, 0x1a, 0x8b, 0x23, 0xc9, 0xbd, 0xd9, 0xf1, 0x59, 0x4f, 0xdf, 0x86,
> ++	0x0c, 0x2f, 0x25, 0x3d, 0x21, 0x0f, 0x47, 0xd9, 0xde, 0x58, 0x8b, 0x8f, 0xa1, 0x18, 0x11, 0xa1,
> ++	0x24, 0x28, 0x86, 0x19, 0xd3, 0x58, 0xa3, 0x0f, 0x21, 0xaf, 0x28, 0x8c, 0x9e, 0x10, 0xef, 0x93,
> ++	0x4c, 0x67, 0x82, 0xc1, 0xac, 0xa0, 0x24, 0x49, 0x1e, 0x0e, 0xf3, 0x96, 0xb1, 0x06, 0x1f, 0x41,
> ++	0x4e, 0x72, 0x93, 0xa4, 0xa2, 0x19, 0x61, 0x30, 0x63, 0x4d, 0x62, 0x28, 0x84, 0xf4, 0x42, 0xbf,
> ++	0x9e, 0x9c, 0x23, 0x31, 0x36, 0x63, 0x58, 0xd3, 0x8a, 0xab, 0x8c, 0x7a, 0x01, 0x10, 0x1b, 0xea,
> ++	0x37, 0x13, 0x20, 0x3e, 0x8d, 0x9e, 0x18, 0x5f, 0x9c, 0x4d, 0x49, 0x5d, 0xfc, 0x08, 0x72, 0x72,
> ++	0x0c, 0x26, 0xc1, 0x36, 0x32, 0x2c, 0xc7, 0xc2, 0xb6, 0x07, 0x79, 0x35, 0xba, 0x92, 0x72, 0xe5,
> ++	0xe4, 0x34, 0x34, 0xae, 0x4f, 0x29, 0xad, 0x5c, 0xff, 0x01, 0x32, 0x7c, 0xe6, 0x24, 0x55, 0x61,
> ++	0x6c, 0xfe, 0x19, 0x2b, 0xd3, 0x88, 0x4a, 0xf3, 0x6b, 0xdf, 0x1d, 0xbd, 0x59, 0xba, 0xf4, 0xe7,
> ++	0x9b, 0xa5, 0x4b, 0xbf, 0xf4, 0x97, 0xb4, 0xa3, 0xfe, 0x92, 0xf6, 0x47, 0x7f, 0x49, 0xfb, 0xa7,
> ++	0xbf, 0xa4, 0x3d, 0xbb, 0xf7, 0x76, 0xff, 0x7e, 0xbc, 0x2b, 0x16, 0x4f, 0x53, 0xbb, 0x39, 0x01,
> ++	0xd8, 0xcd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x55, 0xbf, 0x54, 0xc7, 0x14, 0x00, 0x00,
> + }
> + 
> + // Reference imports to suppress errors if they are not otherwise used.
> +@@ -2943,6 +2949,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
> + 		i -= len(m.XXX_unrecognized)
> + 		copy(dAtA[i:], m.XXX_unrecognized)
> + 	}
> ++	if len(m.Annotations) > 0 {
> ++		for k := range m.Annotations {
> ++			v := m.Annotations[k]
> ++			baseI := i
> ++			i -= len(v)
> ++			copy(dAtA[i:], v)
> ++			i = encodeVarintTasks(dAtA, i, uint64(len(v)))
> ++			i--
> ++			dAtA[i] = 0x12
> ++			i -= len(k)
> ++			copy(dAtA[i:], k)
> ++			i = encodeVarintTasks(dAtA, i, uint64(len(k)))
> ++			i--
> ++			dAtA[i] = 0xa
> ++			i = encodeVarintTasks(dAtA, i, uint64(baseI-i))
> ++			i--
> ++			dAtA[i] = 0x1a
> ++		}
> ++	}
> + 	if m.Resources != nil {
> + 		{
> + 			size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
> +@@ -3611,6 +3636,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
> + 		l = m.Resources.Size()
> + 		n += 1 + l + sovTasks(uint64(l))
> + 	}
> ++	if len(m.Annotations) > 0 {
> ++		for k, v := range m.Annotations {
> ++			_ = k
> ++			_ = v
> ++			mapEntrySize := 1 + len(k) + sovTasks(uint64(len(k))) + 1 + len(v) + sovTasks(uint64(len(v)))
> ++			n += mapEntrySize + 1 + sovTasks(uint64(mapEntrySize))
> ++		}
> ++	}
> + 	if m.XXX_unrecognized != nil {
> + 		n += len(m.XXX_unrecognized)
> + 	}
> +@@ -3991,9 +4024,20 @@ func (this *UpdateTaskRequest) String() string {
> + 	if this == nil {
> + 		return "nil"
> + 	}
> ++	keysForAnnotations := make([]string, 0, len(this.Annotations))
> ++	for k, _ := range this.Annotations {
> ++		keysForAnnotations = append(keysForAnnotations, k)
> ++	}
> ++	github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
> ++	mapStringForAnnotations := "map[string]string{"
> ++	for _, k := range keysForAnnotations {
> ++		mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
> ++	}
> ++	mapStringForAnnotations += "}"
> + 	s := strings.Join([]string{`&UpdateTaskRequest{`,
> + 		`ContainerID:` + fmt.Sprintf("%v", this.ContainerID) + `,`,
> + 		`Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
> ++		`Annotations:` + mapStringForAnnotations + `,`,
> + 		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
> + 		`}`,
> + 	}, "")
> +@@ -4347,10 +4391,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4452,10 +4493,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4570,10 +4608,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4643,10 +4678,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4729,10 +4761,7 @@ func (m *DeleteTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4886,10 +4915,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5004,10 +5030,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5122,10 +5145,7 @@ func (m *GetRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5212,10 +5232,7 @@ func (m *GetResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5298,10 +5315,7 @@ func (m *ListTasksRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5386,10 +5400,7 @@ func (m *ListTasksResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5543,10 +5554,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5813,10 +5821,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5867,10 +5872,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6023,10 +6025,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6161,10 +6160,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6247,10 +6243,7 @@ func (m *PauseTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6333,10 +6326,7 @@ func (m *ResumeTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6419,10 +6409,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6507,10 +6494,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6661,10 +6645,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6749,10 +6730,7 @@ func (m *CheckpointTaskResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6865,16 +6843,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> + 				return err
> + 			}
> + 			iNdEx = postIndex
> ++		case 3:
> ++			if wireType != 2 {
> ++				return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
> ++			}
> ++			var msglen int
> ++			for shift := uint(0); ; shift += 7 {
> ++				if shift >= 64 {
> ++					return ErrIntOverflowTasks
> ++				}
> ++				if iNdEx >= l {
> ++					return io.ErrUnexpectedEOF
> ++				}
> ++				b := dAtA[iNdEx]
> ++				iNdEx++
> ++				msglen |= int(b&0x7F) << shift
> ++				if b < 0x80 {
> ++					break
> ++				}
> ++			}
> ++			if msglen < 0 {
> ++				return ErrInvalidLengthTasks
> ++			}
> ++			postIndex := iNdEx + msglen
> ++			if postIndex < 0 {
> ++				return ErrInvalidLengthTasks
> ++			}
> ++			if postIndex > l {
> ++				return io.ErrUnexpectedEOF
> ++			}
> ++			if m.Annotations == nil {
> ++				m.Annotations = make(map[string]string)
> ++			}
> ++			var mapkey string
> ++			var mapvalue string
> ++			for iNdEx < postIndex {
> ++				entryPreIndex := iNdEx
> ++				var wire uint64
> ++				for shift := uint(0); ; shift += 7 {
> ++					if shift >= 64 {
> ++						return ErrIntOverflowTasks
> ++					}
> ++					if iNdEx >= l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					b := dAtA[iNdEx]
> ++					iNdEx++
> ++					wire |= uint64(b&0x7F) << shift
> ++					if b < 0x80 {
> ++						break
> ++					}
> ++				}
> ++				fieldNum := int32(wire >> 3)
> ++				if fieldNum == 1 {
> ++					var stringLenmapkey uint64
> ++					for shift := uint(0); ; shift += 7 {
> ++						if shift >= 64 {
> ++							return ErrIntOverflowTasks
> ++						}
> ++						if iNdEx >= l {
> ++							return io.ErrUnexpectedEOF
> ++						}
> ++						b := dAtA[iNdEx]
> ++						iNdEx++
> ++						stringLenmapkey |= uint64(b&0x7F) << shift
> ++						if b < 0x80 {
> ++							break
> ++						}
> ++					}
> ++					intStringLenmapkey := int(stringLenmapkey)
> ++					if intStringLenmapkey < 0 {
> ++						return ErrInvalidLengthTasks
> ++					}
> ++					postStringIndexmapkey := iNdEx + intStringLenmapkey
> ++					if postStringIndexmapkey < 0 {
> ++						return ErrInvalidLengthTasks
> ++					}
> ++					if postStringIndexmapkey > l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
> ++					iNdEx = postStringIndexmapkey
> ++				} else if fieldNum == 2 {
> ++					var stringLenmapvalue uint64
> ++					for shift := uint(0); ; shift += 7 {
> ++						if shift >= 64 {
> ++							return ErrIntOverflowTasks
> ++						}
> ++						if iNdEx >= l {
> ++							return io.ErrUnexpectedEOF
> ++						}
> ++						b := dAtA[iNdEx]
> ++						iNdEx++
> ++						stringLenmapvalue |= uint64(b&0x7F) << shift
> ++						if b < 0x80 {
> ++							break
> ++						}
> ++					}
> ++					intStringLenmapvalue := int(stringLenmapvalue)
> ++					if intStringLenmapvalue < 0 {
> ++						return ErrInvalidLengthTasks
> ++					}
> ++					postStringIndexmapvalue := iNdEx + intStringLenmapvalue
> ++					if postStringIndexmapvalue < 0 {
> ++						return ErrInvalidLengthTasks
> ++					}
> ++					if postStringIndexmapvalue > l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
> ++					iNdEx = postStringIndexmapvalue
> ++				} else {
> ++					iNdEx = entryPreIndex
> ++					skippy, err := skipTasks(dAtA[iNdEx:])
> ++					if err != nil {
> ++						return err
> ++					}
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> ++						return ErrInvalidLengthTasks
> ++					}
> ++					if (iNdEx + skippy) > postIndex {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					iNdEx += skippy
> ++				}
> ++			}
> ++			m.Annotations[mapkey] = mapvalue
> ++			iNdEx = postIndex
> + 		default:
> + 			iNdEx = preIndex
> + 			skippy, err := skipTasks(dAtA[iNdEx:])
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6957,10 +7059,7 @@ func (m *MetricsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -7045,10 +7144,7 @@ func (m *MetricsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -7163,10 +7259,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -7269,10 +7362,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTasks
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTasks
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/ttrpc/events/v1/events.pb.go b/src/import/api/services/ttrpc/events/v1/events.pb.go
> +index 0e61351d5..b1f275bf0 100644
> +--- a/src/import/api/services/ttrpc/events/v1/events.pb.go
> ++++ b/src/import/api/services/ttrpc/events/v1/events.pb.go
> +@@ -474,10 +474,7 @@ func (m *ForwardRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -661,10 +658,7 @@ func (m *Envelope) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEvents
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEvents
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/services/version/v1/version.pb.go b/src/import/api/services/version/v1/version.pb.go
> +index 81b8c3395..b742c6ae6 100644
> +--- a/src/import/api/services/version/v1/version.pb.go
> ++++ b/src/import/api/services/version/v1/version.pb.go
> +@@ -374,10 +374,7 @@ func (m *VersionResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthVersion
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthVersion
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/descriptor.pb.go b/src/import/api/types/descriptor.pb.go
> +index 437d41f23..fe71dbf43 100644
> +--- a/src/import/api/types/descriptor.pb.go
> ++++ b/src/import/api/types/descriptor.pb.go
> +@@ -479,7 +479,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthDescriptor
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -496,10 +496,7 @@ func (m *Descriptor) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDescriptor
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDescriptor
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/metrics.pb.go b/src/import/api/types/metrics.pb.go
> +index 89a8d9cd6..75773e442 100644
> +--- a/src/import/api/types/metrics.pb.go
> ++++ b/src/import/api/types/metrics.pb.go
> +@@ -348,10 +348,7 @@ func (m *Metric) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthMetrics
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthMetrics
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/mount.pb.go b/src/import/api/types/mount.pb.go
> +index 6872e4120..d0a0bee76 100644
> +--- a/src/import/api/types/mount.pb.go
> ++++ b/src/import/api/types/mount.pb.go
> +@@ -392,10 +392,7 @@ func (m *Mount) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthMount
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthMount
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/platform.pb.go b/src/import/api/types/platform.pb.go
> +index c03d8b077..a0f78c8a7 100644
> +--- a/src/import/api/types/platform.pb.go
> ++++ b/src/import/api/types/platform.pb.go
> +@@ -333,10 +333,7 @@ func (m *Platform) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthPlatform
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthPlatform
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/api/types/task/task.pb.go b/src/import/api/types/task/task.pb.go
> +index ae824ff45..f511bbd05 100644
> +--- a/src/import/api/types/task/task.pb.go
> ++++ b/src/import/api/types/task/task.pb.go
> +@@ -772,10 +772,7 @@ func (m *Process) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -881,10 +878,7 @@ func (m *ProcessInfo) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/linux/runctypes/runc.pb.go b/src/import/runtime/linux/runctypes/runc.pb.go
> +index 26306e594..46d31ff59 100644
> +--- a/src/import/runtime/linux/runctypes/runc.pb.go
> ++++ b/src/import/runtime/linux/runctypes/runc.pb.go
> +@@ -978,10 +978,7 @@ func (m *RuncOptions) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthRunc
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthRunc
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1350,10 +1347,7 @@ func (m *CreateOptions) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthRunc
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthRunc
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1632,10 +1626,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthRunc
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthRunc
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1718,10 +1709,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthRunc
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthRunc
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v1/shim/v1/shim.pb.go b/src/import/runtime/v1/shim/v1/shim.pb.go
> +index 27f334966..dbc82599d 100644
> +--- a/src/import/runtime/v1/shim/v1/shim.pb.go
> ++++ b/src/import/runtime/v1/shim/v1/shim.pb.go
> +@@ -3262,10 +3262,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3335,10 +3332,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3460,10 +3454,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3546,10 +3537,7 @@ func (m *DeleteProcessRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3784,10 +3772,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3838,10 +3823,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3962,10 +3944,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4048,10 +4027,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4372,10 +4348,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4497,10 +4470,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4603,10 +4573,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4689,10 +4656,7 @@ func (m *ListPidsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4777,10 +4741,7 @@ func (m *ListPidsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4899,10 +4860,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4972,10 +4930,7 @@ func (m *ShimInfoResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5062,10 +5017,7 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5148,10 +5100,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5253,10 +5202,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5339,10 +5285,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5445,10 +5388,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v2/runc/options/oci.pb.go b/src/import/runtime/v2/runc/options/oci.pb.go
> +index f298452b6..c9c44742a 100644
> +--- a/src/import/runtime/v2/runc/options/oci.pb.go
> ++++ b/src/import/runtime/v2/runc/options/oci.pb.go
> +@@ -994,10 +994,7 @@ func (m *Options) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthOci
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthOci
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1276,10 +1273,7 @@ func (m *CheckpointOptions) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthOci
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthOci
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1362,10 +1356,7 @@ func (m *ProcessDetails) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthOci
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthOci
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/runtime/v2/task/shim.pb.go b/src/import/runtime/v2/task/shim.pb.go
> +index 3cf11d8e3..6366f9c57 100644
> +--- a/src/import/runtime/v2/task/shim.pb.go
> ++++ b/src/import/runtime/v2/task/shim.pb.go
> +@@ -10,6 +10,7 @@ import (
> + 	task "github.com/containerd/containerd/src/import/api/types/task"
> + 	github_com_containerd_ttrpc "github.com/containerd/ttrpc"
> + 	proto "github.com/gogo/protobuf/proto"
> ++	github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
> + 	github_com_gogo_protobuf_types "github.com/gogo/protobuf/types"
> + 	types1 "github.com/gogo/protobuf/types"
> + 	io "io"
> +@@ -617,11 +618,12 @@ func (m *CheckpointTaskRequest) XXX_DiscardUnknown() {
> + var xxx_messageInfo_CheckpointTaskRequest proto.InternalMessageInfo
> + 
> + type UpdateTaskRequest struct {
> +-	ID                   string      `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
> +-	Resources            *types1.Any `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> +-	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
> +-	XXX_unrecognized     []byte      `json:"-"`
> +-	XXX_sizecache        int32       `json:"-"`
> ++	ID                   string            `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
> ++	Resources            *types1.Any       `protobuf:"bytes,2,opt,name=resources,proto3" json:"resources,omitempty"`
> ++	Annotations          map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
> ++	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
> ++	XXX_unrecognized     []byte            `json:"-"`
> ++	XXX_sizecache        int32             `json:"-"`
> + }
> + 
> + func (m *UpdateTaskRequest) Reset()      { *m = UpdateTaskRequest{} }
> +@@ -1107,6 +1109,7 @@ func init() {
> + 	proto.RegisterType((*PidsResponse)(nil), "containerd.task.v2.PidsResponse")
> + 	proto.RegisterType((*CheckpointTaskRequest)(nil), "containerd.task.v2.CheckpointTaskRequest")
> + 	proto.RegisterType((*UpdateTaskRequest)(nil), "containerd.task.v2.UpdateTaskRequest")
> ++	proto.RegisterMapType((map[string]string)(nil), "containerd.task.v2.UpdateTaskRequest.AnnotationsEntry")
> + 	proto.RegisterType((*StartRequest)(nil), "containerd.task.v2.StartRequest")
> + 	proto.RegisterType((*StartResponse)(nil), "containerd.task.v2.StartResponse")
> + 	proto.RegisterType((*WaitRequest)(nil), "containerd.task.v2.WaitRequest")
> +@@ -1125,85 +1128,89 @@ func init() {
> + }
> + 
> + var fileDescriptor_9202ee34bc3ad8ca = []byte{
> +-	// 1246 bytes of a gzipped FileDescriptorProto
> +-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x5d, 0x6f, 0x1b, 0x45,
> +-	0x17, 0xee, 0xfa, 0x63, 0x6d, 0x1f, 0xd7, 0x69, 0x3a, 0x6f, 0x9a, 0x77, 0xeb, 0x4a, 0xb6, 0xbb,
> +-	0xa5, 0xc1, 0x80, 0x64, 0x0b, 0x57, 0x70, 0x41, 0x24, 0x50, 0xbe, 0xa8, 0x4c, 0x0b, 0x89, 0xb6,
> +-	0x45, 0x45, 0xdc, 0x58, 0x1b, 0xef, 0xc4, 0x5e, 0xc5, 0xde, 0x59, 0x76, 0x66, 0xf3, 0x81, 0x84,
> +-	0xc4, 0x15, 0x17, 0x5c, 0xf1, 0xb3, 0x72, 0x89, 0xc4, 0x0d, 0x37, 0x04, 0xea, 0x7f, 0xc0, 0x3f,
> +-	0x40, 0xf3, 0xe1, 0x78, 0xed, 0xec, 0xda, 0x49, 0xe5, 0x9b, 0x68, 0xce, 0xce, 0x33, 0x67, 0xe6,
> +-	0x9c, 0x79, 0xce, 0x73, 0x26, 0x86, 0xcd, 0x9e, 0xcb, 0xfa, 0xe1, 0x61, 0xa3, 0x4b, 0x86, 0xcd,
> +-	0x2e, 0xf1, 0x98, 0xed, 0x7a, 0x38, 0x70, 0xa2, 0xc3, 0x20, 0xf4, 0x98, 0x3b, 0xc4, 0xcd, 0x93,
> +-	0x56, 0x93, 0xd9, 0xf4, 0xb8, 0x49, 0xfb, 0xee, 0xb0, 0xe1, 0x07, 0x84, 0x11, 0x84, 0x26, 0xb0,
> +-	0x06, 0x9f, 0x6b, 0x9c, 0xb4, 0xca, 0x0f, 0x7b, 0x84, 0xf4, 0x06, 0xb8, 0x29, 0x10, 0x87, 0xe1,
> +-	0x51, 0xd3, 0xf6, 0xce, 0x25, 0xbc, 0xfc, 0x68, 0x76, 0x0a, 0x0f, 0x7d, 0x36, 0x9e, 0x5c, 0xeb,
> +-	0x91, 0x1e, 0x11, 0xc3, 0x26, 0x1f, 0xa9, 0xaf, 0xd5, 0xd9, 0x25, 0xfc, 0x28, 0x94, 0xd9, 0x43,
> +-	0x5f, 0x01, 0x3e, 0x5d, 0x78, 0x7e, 0xdb, 0x77, 0x9b, 0xec, 0xdc, 0xc7, 0xb4, 0x39, 0x24, 0xa1,
> +-	0xc7, 0xd4, 0xba, 0xcf, 0x6e, 0xb1, 0x4e, 0x84, 0x2d, 0xe2, 0x13, 0x6b, 0xcd, 0x3f, 0x52, 0x70,
> +-	0x7f, 0x27, 0xc0, 0x36, 0xc3, 0xaf, 0x6d, 0x7a, 0x6c, 0xe1, 0x1f, 0x42, 0x4c, 0x19, 0x5a, 0x87,
> +-	0x94, 0xeb, 0x18, 0x5a, 0x4d, 0xab, 0x17, 0xb6, 0xf5, 0xd1, 0x65, 0x35, 0xd5, 0xde, 0xb5, 0x52,
> +-	0xae, 0x83, 0xd6, 0x41, 0x3f, 0x0c, 0x3d, 0x67, 0x80, 0x8d, 0x14, 0x9f, 0xb3, 0x94, 0x85, 0x9a,
> +-	0xa0, 0x07, 0x84, 0xb0, 0x23, 0x6a, 0xa4, 0x6b, 0xe9, 0x7a, 0xb1, 0xf5, 0xff, 0x46, 0x34, 0x9b,
> +-	0x7c, 0xe3, 0xc6, 0xd7, 0xfc, 0xc0, 0x96, 0x82, 0xa1, 0x32, 0xe4, 0x19, 0x0e, 0x86, 0xae, 0x67,
> +-	0x0f, 0x8c, 0x4c, 0x4d, 0xab, 0xe7, 0xad, 0x2b, 0x1b, 0xad, 0x41, 0x96, 0x32, 0xc7, 0xf5, 0x8c,
> +-	0xac, 0xd8, 0x43, 0x1a, 0x7c, 0x6b, 0xca, 0x1c, 0x12, 0x32, 0x43, 0x97, 0x5b, 0x4b, 0x4b, 0x7d,
> +-	0xc7, 0x41, 0x60, 0xe4, 0xae, 0xbe, 0xe3, 0x20, 0x40, 0x15, 0x80, 0x6e, 0x1f, 0x77, 0x8f, 0x7d,
> +-	0xe2, 0x7a, 0xcc, 0xc8, 0x8b, 0xb9, 0xc8, 0x17, 0xf4, 0x11, 0xdc, 0xf7, 0xed, 0x00, 0x7b, 0xac,
> +-	0x13, 0x81, 0x15, 0x04, 0x6c, 0x55, 0x4e, 0xec, 0x4c, 0xc0, 0x0d, 0xc8, 0x11, 0x9f, 0xb9, 0xc4,
> +-	0xa3, 0x06, 0xd4, 0xb4, 0x7a, 0xb1, 0xb5, 0xd6, 0x90, 0x97, 0xd9, 0x18, 0x5f, 0x66, 0x63, 0xcb,
> +-	0x3b, 0xb7, 0xc6, 0x20, 0x73, 0x03, 0x50, 0x34, 0xa9, 0xd4, 0x27, 0x1e, 0xc5, 0x68, 0x15, 0xd2,
> +-	0xbe, 0x4a, 0x6b, 0xc9, 0xe2, 0x43, 0xf3, 0x25, 0x94, 0x76, 0xf1, 0x00, 0x33, 0xbc, 0x28, 0xf1,
> +-	0x4f, 0x20, 0x87, 0xcf, 0x70, 0xb7, 0xe3, 0x3a, 0x32, 0xf3, 0xdb, 0x30, 0xba, 0xac, 0xea, 0x7b,
> +-	0x67, 0xb8, 0xdb, 0xde, 0xb5, 0x74, 0x3e, 0xd5, 0x76, 0xcc, 0x5f, 0x34, 0x58, 0x19, 0xbb, 0x4b,
> +-	0xda, 0x12, 0x55, 0xa1, 0x88, 0xcf, 0x5c, 0xd6, 0xa1, 0xcc, 0x66, 0x21, 0x15, 0xde, 0x4a, 0x16,
> +-	0xf0, 0x4f, 0xaf, 0xc4, 0x17, 0xb4, 0x05, 0x05, 0x6e, 0x61, 0xa7, 0x63, 0x33, 0x23, 0x2d, 0xa2,
> +-	0x2d, 0x5f, 0x8b, 0xf6, 0xf5, 0x98, 0xba, 0xdb, 0xf9, 0x8b, 0xcb, 0xea, 0x9d, 0xdf, 0xfe, 0xae,
> +-	0x6a, 0x56, 0x5e, 0x2e, 0xdb, 0x62, 0xe6, 0x5f, 0x1a, 0x20, 0x7e, 0xb6, 0x83, 0x80, 0x74, 0x31,
> +-	0xa5, 0xcb, 0x08, 0x6e, 0x8a, 0x31, 0xe9, 0x24, 0xc6, 0x64, 0xe2, 0x19, 0x93, 0x4d, 0x60, 0x8c,
> +-	0x3e, 0xc5, 0x98, 0x3a, 0x64, 0xa8, 0x8f, 0xbb, 0x82, 0x47, 0x49, 0x37, 0x2c, 0x10, 0xe6, 0x03,
> +-	0xf8, 0xdf, 0x54, 0x78, 0x32, 0xd9, 0xe6, 0x4f, 0xb0, 0x6a, 0x61, 0xea, 0xfe, 0x88, 0x0f, 0xd8,
> +-	0xf9, 0x52, 0x62, 0x5e, 0x83, 0xec, 0xa9, 0xeb, 0xb0, 0xbe, 0x08, 0xb8, 0x64, 0x49, 0x83, 0x9f,
> +-	0xbf, 0x8f, 0xdd, 0x5e, 0x9f, 0x89, 0x70, 0x4b, 0x96, 0xb2, 0xcc, 0x17, 0x70, 0x97, 0x5f, 0xe1,
> +-	0x72, 0xb8, 0xf4, 0x6f, 0x0a, 0x4a, 0xca, 0x9b, 0xa2, 0xd2, 0x6d, 0x35, 0x41, 0x51, 0x2f, 0x3d,
> +-	0xa1, 0xde, 0x33, 0x9e, 0x78, 0xc1, 0x3a, 0x7e, 0xf0, 0x95, 0xd6, 0xa3, 0xa8, 0x4a, 0x9c, 0x7c,
> +-	0xac, 0x84, 0x42, 0xd2, 0xd0, 0x52, 0xd0, 0x25, 0xa9, 0x41, 0x94, 0x3d, 0xf9, 0x19, 0xf6, 0xcc,
> +-	0x54, 0x44, 0x61, 0x7e, 0x45, 0xc0, 0xbb, 0x54, 0x44, 0x34, 0xe7, 0xc5, 0xc4, 0x9c, 0x33, 0x28,
> +-	0xbe, 0x70, 0x07, 0x83, 0xa5, 0x50, 0x87, 0x27, 0xc2, 0xed, 0x8d, 0x8b, 0xa5, 0x64, 0x29, 0x8b,
> +-	0xdf, 0x8a, 0x3d, 0x18, 0x6b, 0x2e, 0x1f, 0x9a, 0x5d, 0x58, 0xd9, 0x19, 0x10, 0x8a, 0xdb, 0xfb,
> +-	0xcb, 0xe2, 0xac, 0xbc, 0x2f, 0x59, 0xa4, 0xd2, 0x30, 0x9f, 0x42, 0xf1, 0xc0, 0x75, 0x16, 0x29,
> +-	0x81, 0xf9, 0x0d, 0xdc, 0x95, 0x30, 0xc5, 0xb9, 0xcf, 0xa1, 0xe0, 0xcb, 0x22, 0xc3, 0xd4, 0xd0,
> +-	0x44, 0x6b, 0xa9, 0xc5, 0x92, 0x46, 0x95, 0x62, 0xdb, 0x3b, 0x22, 0xd6, 0x64, 0x89, 0x49, 0xe1,
> +-	0xc1, 0x44, 0xc5, 0x6f, 0xd2, 0xe0, 0x10, 0x64, 0x7c, 0x9b, 0xf5, 0x15, 0x95, 0xc5, 0x38, 0x2a,
> +-	0xfe, 0xe9, 0x9b, 0x88, 0x7f, 0x07, 0xee, 0x7f, 0xeb, 0x3b, 0x37, 0xec, 0xa8, 0x2d, 0x28, 0x04,
> +-	0x98, 0x92, 0x30, 0xe8, 0x62, 0x29, 0xc6, 0x49, 0xee, 0x27, 0x30, 0x55, 0xe8, 0x01, 0x5b, 0x4a,
> +-	0xa1, 0x3f, 0x16, 0x75, 0xce, 0x9d, 0x25, 0x76, 0xa9, 0xaf, 0xa0, 0xf8, 0xc6, 0x76, 0x97, 0xb3,
> +-	0x5d, 0x00, 0x77, 0xa5, 0x2f, 0xb5, 0xdb, 0x4c, 0xf1, 0x69, 0xf3, 0x8b, 0x2f, 0xf5, 0x4e, 0xed,
> +-	0x68, 0x43, 0x0a, 0xe3, 0x42, 0xf6, 0x6d, 0x4a, 0xc9, 0x9b, 0xd0, 0xef, 0x43, 0xce, 0x65, 0x9b,
> +-	0xc9, 0x63, 0x25, 0x5d, 0x8c, 0x84, 0x98, 0x75, 0x58, 0xd9, 0x21, 0x9e, 0x87, 0xbb, 0x8b, 0xf2,
> +-	0x64, 0xda, 0x70, 0xef, 0x0a, 0xa9, 0x36, 0x7a, 0x08, 0x79, 0xfe, 0x14, 0xed, 0x4c, 0x12, 0x9f,
> +-	0xe3, 0xf6, 0x81, 0xeb, 0xf0, 0x29, 0xfe, 0x5c, 0x13, 0x53, 0xb2, 0x59, 0xe7, 0xb8, 0xcd, 0xa7,
> +-	0x0c, 0xc8, 0x9d, 0xe0, 0x80, 0xba, 0x44, 0x16, 0x5b, 0xc1, 0x1a, 0x9b, 0xe6, 0x26, 0xdc, 0x7b,
> +-	0xd5, 0x0f, 0x99, 0x43, 0x4e, 0xbd, 0x45, 0xb7, 0xb6, 0x0a, 0x69, 0x8f, 0x9c, 0x0a, 0xd7, 0x79,
> +-	0x8b, 0x0f, 0x79, 0xba, 0x0e, 0xec, 0x90, 0x2e, 0xea, 0x23, 0xe6, 0xfb, 0x50, 0xb2, 0x30, 0x0d,
> +-	0x87, 0x8b, 0x80, 0xad, 0x5f, 0x01, 0x32, 0xbc, 0x16, 0xd0, 0x4b, 0xc8, 0x8a, 0x9e, 0x82, 0xa6,
> +-	0x8a, 0x58, 0xbd, 0xb6, 0x1b, 0xd1, 0xe6, 0x55, 0x7e, 0x3c, 0x07, 0xa1, 0x92, 0xf6, 0x06, 0x74,
> +-	0xf9, 0xc8, 0x42, 0x4f, 0xe3, 0xc0, 0xd7, 0x5e, 0xb5, 0xe5, 0x8d, 0x45, 0x30, 0xe5, 0x58, 0x1e,
> +-	0x33, 0x60, 0x89, 0xc7, 0xbc, 0x2a, 0xbd, 0xc4, 0x63, 0x46, 0xea, 0x69, 0x1f, 0x74, 0xf9, 0x28,
> +-	0x43, 0xb1, 0xe0, 0xa9, 0xf7, 0x5f, 0xd9, 0x9c, 0x07, 0x51, 0x0e, 0xdb, 0x90, 0xe1, 0x22, 0x89,
> +-	0xaa, 0x71, 0xd8, 0x88, 0xca, 0x96, 0x6b, 0xc9, 0x00, 0xe5, 0x6a, 0x0b, 0xb2, 0xe2, 0xaa, 0xe3,
> +-	0x23, 0x8d, 0xb2, 0xa0, 0xbc, 0x7e, 0x8d, 0xfc, 0x7b, 0xfc, 0x3f, 0x1e, 0xb4, 0x03, 0xba, 0x64,
> +-	0x41, 0x7c, 0x78, 0x53, 0x0c, 0x49, 0x74, 0xb2, 0x0f, 0x10, 0x79, 0x6d, 0x7f, 0x10, 0x7b, 0x4f,
> +-	0x71, 0x3a, 0x9e, 0xe8, 0xf0, 0x0b, 0xc8, 0xf0, 0x56, 0x1a, 0x9f, 0xa3, 0x48, 0x93, 0x4d, 0x74,
> +-	0xf0, 0x25, 0x64, 0xb8, 0x72, 0xa1, 0x58, 0xce, 0x5c, 0x7f, 0xdb, 0x26, 0xfa, 0x69, 0x43, 0xe1,
> +-	0xea, 0x4d, 0x88, 0xde, 0x4b, 0xc8, 0xd0, 0xd4, 0x93, 0x31, 0xd1, 0xd5, 0x1e, 0xe4, 0x54, 0xa3,
> +-	0x46, 0xb1, 0x34, 0x99, 0xee, 0xe2, 0x89, 0x6e, 0x9e, 0x83, 0x2e, 0xdb, 0x53, 0x7c, 0xd9, 0x5c,
> +-	0x6b, 0x5d, 0x73, 0x42, 0xcb, 0x70, 0x29, 0x8f, 0xcf, 0x71, 0xa4, 0x61, 0xc4, 0xf3, 0x70, 0xaa,
> +-	0x0b, 0x28, 0x61, 0xa0, 0xc9, 0xc2, 0x40, 0x17, 0x0a, 0xc3, 0x84, 0xd5, 0x16, 0xe4, 0x94, 0xc0,
> +-	0x26, 0x24, 0x6a, 0x4a, 0xa7, 0xcb, 0x4f, 0xe6, 0x62, 0x94, 0xcf, 0xe7, 0x90, 0x1f, 0x2b, 0x2a,
> +-	0x8a, 0x5d, 0x30, 0xa3, 0xb7, 0x49, 0x59, 0xdb, 0xde, 0xbf, 0x78, 0x5b, 0xb9, 0xf3, 0xe7, 0xdb,
> +-	0xca, 0x9d, 0x9f, 0x47, 0x15, 0xed, 0x62, 0x54, 0xd1, 0x7e, 0x1f, 0x55, 0xb4, 0x7f, 0x46, 0x15,
> +-	0xed, 0xfb, 0x4f, 0x6e, 0xfb, 0xf3, 0xc5, 0x26, 0xff, 0xf3, 0x5d, 0xea, 0x50, 0x17, 0x5b, 0x3c,
> +-	0xfb, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x19, 0x17, 0x87, 0x57, 0x00, 0x11, 0x00, 0x00,
> ++	// 1306 bytes of a gzipped FileDescriptorProto
> ++	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4d, 0x6f, 0xdb, 0x46,
> ++	0x13, 0x0e, 0xf5, 0x41, 0x49, 0xa3, 0xc8, 0x71, 0xf6, 0x75, 0xf2, 0x32, 0x0a, 0x20, 0x29, 0x4c,
> ++	0x93, 0xaa, 0x2d, 0x40, 0xa1, 0x0a, 0x1a, 0x14, 0x31, 0x90, 0xc2, 0x76, 0xdc, 0x40, 0x4d, 0x5a,
> ++	0x1b, 0x4c, 0x8a, 0x04, 0xbd, 0x18, 0xb4, 0xb8, 0x91, 0x08, 0x4b, 0x5c, 0x96, 0xbb, 0x74, 0xa2,
> ++	0x02, 0x05, 0x7a, 0xea, 0xa1, 0xa7, 0xfe, 0xac, 0x1c, 0x0b, 0xf4, 0xd2, 0x4b, 0xd3, 0x46, 0xff,
> ++	0xa0, 0xc7, 0xde, 0x8a, 0xfd, 0x90, 0x45, 0x49, 0xa4, 0x14, 0x07, 0xba, 0x18, 0x3b, 0xdc, 0x67,
> ++	0x67, 0x67, 0x67, 0x9f, 0x79, 0x66, 0x65, 0xd8, 0xee, 0x79, 0xac, 0x1f, 0x1d, 0x5b, 0x5d, 0x32,
> ++	0x6c, 0x75, 0x89, 0xcf, 0x1c, 0xcf, 0xc7, 0xa1, 0x1b, 0x1f, 0x86, 0x91, 0xcf, 0xbc, 0x21, 0x6e,
> ++	0x9d, 0xb6, 0x5b, 0xcc, 0xa1, 0x27, 0x2d, 0xda, 0xf7, 0x86, 0x56, 0x10, 0x12, 0x46, 0x10, 0x9a,
> ++	0xc2, 0x2c, 0x3e, 0x67, 0x9d, 0xb6, 0xab, 0xd7, 0x7a, 0x84, 0xf4, 0x06, 0xb8, 0x25, 0x10, 0xc7,
> ++	0xd1, 0x8b, 0x96, 0xe3, 0x8f, 0x24, 0xbc, 0x7a, 0x7d, 0x7e, 0x0a, 0x0f, 0x03, 0x36, 0x99, 0xdc,
> ++	0xea, 0x91, 0x1e, 0x11, 0xc3, 0x16, 0x1f, 0xa9, 0xaf, 0xf5, 0xf9, 0x25, 0x3c, 0x14, 0xca, 0x9c,
> ++	0x61, 0xa0, 0x00, 0x77, 0x57, 0xc6, 0xef, 0x04, 0x5e, 0x8b, 0x8d, 0x02, 0x4c, 0x5b, 0x43, 0x12,
> ++	0xf9, 0x4c, 0xad, 0xbb, 0x77, 0x8e, 0x75, 0xe2, 0xd8, 0xe2, 0x7c, 0x62, 0xad, 0xf9, 0x7b, 0x06,
> ++	0x2e, 0xef, 0x85, 0xd8, 0x61, 0xf8, 0xa9, 0x43, 0x4f, 0x6c, 0xfc, 0x7d, 0x84, 0x29, 0x43, 0x57,
> ++	0x21, 0xe3, 0xb9, 0x86, 0xd6, 0xd0, 0x9a, 0xa5, 0x5d, 0x7d, 0xfc, 0xa6, 0x9e, 0xe9, 0x3c, 0xb0,
> ++	0x33, 0x9e, 0x8b, 0xae, 0x82, 0x7e, 0x1c, 0xf9, 0xee, 0x00, 0x1b, 0x19, 0x3e, 0x67, 0x2b, 0x0b,
> ++	0xb5, 0x40, 0x0f, 0x09, 0x61, 0x2f, 0xa8, 0x91, 0x6d, 0x64, 0x9b, 0xe5, 0xf6, 0xff, 0xad, 0x78,
> ++	0x36, 0xf9, 0xc6, 0xd6, 0xd7, 0x3c, 0x60, 0x5b, 0xc1, 0x50, 0x15, 0x8a, 0x0c, 0x87, 0x43, 0xcf,
> ++	0x77, 0x06, 0x46, 0xae, 0xa1, 0x35, 0x8b, 0xf6, 0x99, 0x8d, 0xb6, 0x20, 0x4f, 0x99, 0xeb, 0xf9,
> ++	0x46, 0x5e, 0xec, 0x21, 0x0d, 0xbe, 0x35, 0x65, 0x2e, 0x89, 0x98, 0xa1, 0xcb, 0xad, 0xa5, 0xa5,
> ++	0xbe, 0xe3, 0x30, 0x34, 0x0a, 0x67, 0xdf, 0x71, 0x18, 0xa2, 0x1a, 0x40, 0xb7, 0x8f, 0xbb, 0x27,
> ++	0x01, 0xf1, 0x7c, 0x66, 0x14, 0xc5, 0x5c, 0xec, 0x0b, 0xfa, 0x04, 0x2e, 0x07, 0x4e, 0x88, 0x7d,
> ++	0x76, 0x14, 0x83, 0x95, 0x04, 0x6c, 0x53, 0x4e, 0xec, 0x4d, 0xc1, 0x16, 0x14, 0x48, 0xc0, 0x3c,
> ++	0xe2, 0x53, 0x03, 0x1a, 0x5a, 0xb3, 0xdc, 0xde, 0xb2, 0xe4, 0x65, 0x5a, 0x93, 0xcb, 0xb4, 0x76,
> ++	0xfc, 0x91, 0x3d, 0x01, 0x99, 0xb7, 0x01, 0xc5, 0x93, 0x4a, 0x03, 0xe2, 0x53, 0x8c, 0x36, 0x21,
> ++	0x1b, 0xa8, 0xb4, 0x56, 0x6c, 0x3e, 0x34, 0x1f, 0x43, 0xe5, 0x01, 0x1e, 0x60, 0x86, 0x57, 0x25,
> ++	0xfe, 0x26, 0x14, 0xf0, 0x2b, 0xdc, 0x3d, 0xf2, 0x5c, 0x99, 0xf9, 0x5d, 0x18, 0xbf, 0xa9, 0xeb,
> ++	0xfb, 0xaf, 0x70, 0xb7, 0xf3, 0xc0, 0xd6, 0xf9, 0x54, 0xc7, 0x35, 0x7f, 0xd6, 0x60, 0x63, 0xe2,
> ++	0x2e, 0x6d, 0x4b, 0x54, 0x87, 0x32, 0x7e, 0xe5, 0xb1, 0x23, 0xca, 0x1c, 0x16, 0x51, 0xe1, 0xad,
> ++	0x62, 0x03, 0xff, 0xf4, 0x44, 0x7c, 0x41, 0x3b, 0x50, 0xe2, 0x16, 0x76, 0x8f, 0x1c, 0x66, 0x64,
> ++	0xc5, 0x69, 0xab, 0x0b, 0xa7, 0x7d, 0x3a, 0xa1, 0xee, 0x6e, 0xf1, 0xf5, 0x9b, 0xfa, 0x85, 0x5f,
> ++	0xff, 0xaa, 0x6b, 0x76, 0x51, 0x2e, 0xdb, 0x61, 0xe6, 0x9f, 0x1a, 0x20, 0x1e, 0xdb, 0x61, 0x48,
> ++	0xba, 0x98, 0xd2, 0x75, 0x1c, 0x6e, 0x86, 0x31, 0xd9, 0x34, 0xc6, 0xe4, 0x92, 0x19, 0x93, 0x4f,
> ++	0x61, 0x8c, 0x3e, 0xc3, 0x98, 0x26, 0xe4, 0x68, 0x80, 0xbb, 0x82, 0x47, 0x69, 0x37, 0x2c, 0x10,
> ++	0xe6, 0x15, 0xf8, 0xdf, 0xcc, 0xf1, 0x64, 0xb2, 0xcd, 0x1f, 0x61, 0xd3, 0xc6, 0xd4, 0xfb, 0x01,
> ++	0x1f, 0xb2, 0xd1, 0x5a, 0xce, 0xbc, 0x05, 0xf9, 0x97, 0x9e, 0xcb, 0xfa, 0xe2, 0xc0, 0x15, 0x5b,
> ++	0x1a, 0x3c, 0xfe, 0x3e, 0xf6, 0x7a, 0x7d, 0x26, 0x8e, 0x5b, 0xb1, 0x95, 0x65, 0x3e, 0x82, 0x8b,
> ++	0xfc, 0x0a, 0xd7, 0xc3, 0xa5, 0x7f, 0x32, 0x50, 0x51, 0xde, 0x14, 0x95, 0xce, 0xab, 0x09, 0x8a,
> ++	0x7a, 0xd9, 0x29, 0xf5, 0xee, 0xf0, 0xc4, 0x0b, 0xd6, 0xf1, 0xc0, 0x37, 0xda, 0xd7, 0xe3, 0x2a,
> ++	0x71, 0xfa, 0xa9, 0x12, 0x0a, 0x49, 0x43, 0x5b, 0x41, 0xd7, 0xa4, 0x06, 0x71, 0xf6, 0x14, 0xe7,
> ++	0xd8, 0x33, 0x57, 0x11, 0xa5, 0xe5, 0x15, 0x01, 0xef, 0x53, 0x11, 0xf1, 0x9c, 0x97, 0x53, 0x73,
> ++	0xce, 0xa0, 0xfc, 0xc8, 0x1b, 0x0c, 0xd6, 0x42, 0x1d, 0x9e, 0x08, 0xaf, 0x37, 0x29, 0x96, 0x8a,
> ++	0xad, 0x2c, 0x7e, 0x2b, 0xce, 0x60, 0xa2, 0xb9, 0x7c, 0x68, 0x76, 0x61, 0x63, 0x6f, 0x40, 0x28,
> ++	0xee, 0x1c, 0xac, 0x8b, 0xb3, 0xf2, 0xbe, 0x64, 0x91, 0x4a, 0xc3, 0xbc, 0x05, 0xe5, 0x43, 0xcf,
> ++	0x5d, 0xa5, 0x04, 0xe6, 0x37, 0x70, 0x51, 0xc2, 0x14, 0xe7, 0xee, 0x43, 0x29, 0x90, 0x45, 0x86,
> ++	0xa9, 0xa1, 0x89, 0xd6, 0xd2, 0x48, 0x24, 0x8d, 0x2a, 0xc5, 0x8e, 0xff, 0x82, 0xd8, 0xd3, 0x25,
> ++	0x26, 0x85, 0x2b, 0x53, 0x15, 0x7f, 0x97, 0x06, 0x87, 0x20, 0x17, 0x38, 0xac, 0xaf, 0xa8, 0x2c,
> ++	0xc6, 0x71, 0xf1, 0xcf, 0xbe, 0x8b, 0xf8, 0xff, 0xab, 0xc1, 0xe5, 0x6f, 0x03, 0xf7, 0x1d, 0x5b,
> ++	0x6a, 0x1b, 0x4a, 0x21, 0xa6, 0x24, 0x0a, 0xbb, 0x58, 0xaa, 0x71, 0x9a, 0xff, 0x29, 0x0c, 0x3d,
> ++	0x87, 0xb2, 0xe3, 0xfb, 0x84, 0x39, 0x93, 0xa8, 0x78, 0x62, 0xee, 0x5a, 0x8b, 0x2f, 0x18, 0x6b,
> ++	0x21, 0x0e, 0x6b, 0x67, 0xba, 0x70, 0xdf, 0x67, 0xe1, 0xc8, 0x8e, 0xbb, 0xaa, 0xde, 0x87, 0xcd,
> ++	0x79, 0x00, 0xa7, 0xcc, 0x09, 0x1e, 0xc9, 0xd0, 0x6d, 0x3e, 0xe4, 0x77, 0x7c, 0xea, 0x0c, 0xa2,
> ++	0x49, 0xc5, 0x4b, 0xe3, 0x5e, 0xe6, 0x73, 0x4d, 0x69, 0x50, 0xc8, 0xd6, 0xa2, 0x41, 0x37, 0x84,
> ++	0x04, 0x71, 0x67, 0xa9, 0x0d, 0xf4, 0x2b, 0x28, 0x3f, 0x73, 0xbc, 0xf5, 0x6c, 0x17, 0xc2, 0x45,
> ++	0xe9, 0x4b, 0xed, 0x36, 0xa7, 0x0b, 0xda, 0x72, 0x5d, 0xc8, 0xbc, 0x57, 0xa7, 0xbc, 0x2d, 0x35,
> ++	0x7b, 0x65, 0x61, 0x6c, 0x4b, 0x35, 0x9e, 0x56, 0xc6, 0xc7, 0xbc, 0xcc, 0x1c, 0x26, 0xc3, 0x4a,
> ++	0xa3, 0x8c, 0x84, 0x98, 0x4d, 0xd8, 0xd8, 0x23, 0xbe, 0x8f, 0xbb, 0xab, 0xf2, 0x64, 0x3a, 0x70,
> ++	0xe9, 0x0c, 0xa9, 0x36, 0xba, 0x06, 0x45, 0xfe, 0x4a, 0x3e, 0x9a, 0x26, 0xbe, 0xc0, 0xed, 0x43,
> ++	0xcf, 0xe5, 0x53, 0x9c, 0x67, 0x62, 0x4a, 0xbe, 0x23, 0x0a, 0xdc, 0xe6, 0x53, 0x06, 0x14, 0x4e,
> ++	0x71, 0x48, 0x3d, 0x22, 0x75, 0xa0, 0x64, 0x4f, 0x4c, 0x73, 0x1b, 0x2e, 0x3d, 0xe9, 0x47, 0xcc,
> ++	0x25, 0x2f, 0xfd, 0x55, 0xb7, 0xb6, 0x09, 0x59, 0x9f, 0xbc, 0x14, 0xae, 0x8b, 0x36, 0x1f, 0xf2,
> ++	0x74, 0x1d, 0x3a, 0x11, 0x5d, 0xd5, 0xe2, 0xcc, 0x0f, 0xa1, 0x62, 0x63, 0x1a, 0x0d, 0x57, 0x01,
> ++	0xdb, 0xbf, 0x00, 0xe4, 0x78, 0x75, 0xa0, 0xc7, 0x90, 0x17, 0xed, 0x0e, 0x35, 0x92, 0xca, 0x28,
> ++	0xde, 0x57, 0xab, 0x37, 0x96, 0x20, 0x54, 0xd2, 0x9e, 0x81, 0x2e, 0xdf, 0x7f, 0xe8, 0x56, 0x12,
> ++	0x78, 0xe1, 0xc1, 0x5d, 0xbd, 0xbd, 0x0a, 0xa6, 0x1c, 0xcb, 0x30, 0x43, 0x96, 0x1a, 0xe6, 0x59,
> ++	0xe9, 0xa5, 0x86, 0x19, 0xab, 0xa7, 0x03, 0xd0, 0xe5, 0x7b, 0x11, 0x25, 0x82, 0x67, 0x9e, 0xa6,
> ++	0x55, 0x73, 0x19, 0x44, 0x39, 0xec, 0x40, 0x8e, 0xeb, 0x37, 0xaa, 0x27, 0x61, 0x63, 0x0d, 0xa0,
> ++	0xda, 0x48, 0x07, 0x28, 0x57, 0x3b, 0x90, 0x17, 0x57, 0x9d, 0x7c, 0xd2, 0x38, 0x0b, 0xaa, 0x57,
> ++	0x17, 0xc8, 0xbf, 0xcf, 0x7f, 0x8c, 0xa1, 0x3d, 0xd0, 0x25, 0x0b, 0x92, 0x8f, 0x37, 0xc3, 0x90,
> ++	0x54, 0x27, 0x07, 0x00, 0xb1, 0x1f, 0x02, 0x1f, 0x25, 0xde, 0x53, 0x52, 0x8b, 0x49, 0x75, 0xf8,
> ++	0x05, 0xe4, 0x78, 0x97, 0x4f, 0xce, 0x51, 0xac, 0xff, 0xa7, 0x3a, 0xf8, 0x12, 0x72, 0x5c, 0xb9,
> ++	0x50, 0x22, 0x67, 0x16, 0x9f, 0xdd, 0xa9, 0x7e, 0x3a, 0x50, 0x3a, 0x7b, 0xae, 0xa2, 0x0f, 0x52,
> ++	0x32, 0x34, 0xf3, 0x9a, 0x4d, 0x75, 0xb5, 0x0f, 0x05, 0xf5, 0x86, 0x40, 0x89, 0x34, 0x99, 0x7d,
> ++	0x60, 0xa4, 0xba, 0x79, 0x08, 0xba, 0x6c, 0x58, 0xc9, 0x65, 0xb3, 0xd0, 0xcc, 0x96, 0x1c, 0x2d,
> ++	0xc7, 0xa5, 0x3c, 0x39, 0xc7, 0xb1, 0x86, 0x91, 0xcc, 0xc3, 0x99, 0x2e, 0xa0, 0x84, 0x81, 0xa6,
> ++	0x0b, 0x03, 0x5d, 0x29, 0x0c, 0x53, 0x56, 0xdb, 0x50, 0x50, 0x02, 0x9b, 0x92, 0xa8, 0x19, 0x9d,
> ++	0xae, 0xde, 0x5c, 0x8a, 0x51, 0x3e, 0x1f, 0x42, 0x71, 0xa2, 0xa8, 0x28, 0x71, 0xc1, 0x9c, 0xde,
> ++	0xa6, 0x65, 0x6d, 0xf7, 0xe0, 0xf5, 0xdb, 0xda, 0x85, 0x3f, 0xde, 0xd6, 0x2e, 0xfc, 0x34, 0xae,
> ++	0x69, 0xaf, 0xc7, 0x35, 0xed, 0xb7, 0x71, 0x4d, 0xfb, 0x7b, 0x5c, 0xd3, 0xbe, 0xfb, 0xec, 0xbc,
> ++	0xff, 0x59, 0xd9, 0xe6, 0x7f, 0x9e, 0x67, 0x8e, 0x75, 0xb1, 0xc5, 0x9d, 0xff, 0x02, 0x00, 0x00,
> ++	0xff, 0xff, 0xd3, 0xbf, 0xc3, 0xa9, 0x9b, 0x11, 0x00, 0x00,
> + }
> + 
> + func (m *CreateTaskRequest) Marshal() (dAtA []byte, err error) {
> +@@ -2000,6 +2007,25 @@ func (m *UpdateTaskRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
> + 		i -= len(m.XXX_unrecognized)
> + 		copy(dAtA[i:], m.XXX_unrecognized)
> + 	}
> ++	if len(m.Annotations) > 0 {
> ++		for k := range m.Annotations {
> ++			v := m.Annotations[k]
> ++			baseI := i
> ++			i -= len(v)
> ++			copy(dAtA[i:], v)
> ++			i = encodeVarintShim(dAtA, i, uint64(len(v)))
> ++			i--
> ++			dAtA[i] = 0x12
> ++			i -= len(k)
> ++			copy(dAtA[i:], k)
> ++			i = encodeVarintShim(dAtA, i, uint64(len(k)))
> ++			i--
> ++			dAtA[i] = 0xa
> ++			i = encodeVarintShim(dAtA, i, uint64(baseI-i))
> ++			i--
> ++			dAtA[i] = 0x1a
> ++		}
> ++	}
> + 	if m.Resources != nil {
> + 		{
> + 			size, err := m.Resources.MarshalToSizedBuffer(dAtA[:i])
> +@@ -2826,6 +2852,14 @@ func (m *UpdateTaskRequest) Size() (n int) {
> + 		l = m.Resources.Size()
> + 		n += 1 + l + sovShim(uint64(l))
> + 	}
> ++	if len(m.Annotations) > 0 {
> ++		for k, v := range m.Annotations {
> ++			_ = k
> ++			_ = v
> ++			mapEntrySize := 1 + len(k) + sovShim(uint64(len(k))) + 1 + len(v) + sovShim(uint64(len(v)))
> ++			n += mapEntrySize + 1 + sovShim(uint64(mapEntrySize))
> ++		}
> ++	}
> + 	if m.XXX_unrecognized != nil {
> + 		n += len(m.XXX_unrecognized)
> + 	}
> +@@ -3237,9 +3271,20 @@ func (this *UpdateTaskRequest) String() string {
> + 	if this == nil {
> + 		return "nil"
> + 	}
> ++	keysForAnnotations := make([]string, 0, len(this.Annotations))
> ++	for k, _ := range this.Annotations {
> ++		keysForAnnotations = append(keysForAnnotations, k)
> ++	}
> ++	github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations)
> ++	mapStringForAnnotations := "map[string]string{"
> ++	for _, k := range keysForAnnotations {
> ++		mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k])
> ++	}
> ++	mapStringForAnnotations += "}"
> + 	s := strings.Join([]string{`&UpdateTaskRequest{`,
> + 		`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
> + 		`Resources:` + strings.Replace(fmt.Sprintf("%v", this.Resources), "Any", "types1.Any", 1) + `,`,
> ++		`Annotations:` + mapStringForAnnotations + `,`,
> + 		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
> + 		`}`,
> + 	}, "")
> +@@ -4019,10 +4064,7 @@ func (m *CreateTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4092,10 +4134,7 @@ func (m *CreateTaskResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4210,10 +4249,7 @@ func (m *DeleteRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4335,10 +4371,7 @@ func (m *DeleteResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4605,10 +4638,7 @@ func (m *ExecProcessRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4659,10 +4689,7 @@ func (m *ExecProcessResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4815,10 +4842,7 @@ func (m *ResizePtyRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -4933,10 +4957,7 @@ func (m *StateRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5289,10 +5310,7 @@ func (m *StateResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5446,10 +5464,7 @@ func (m *KillRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5584,10 +5599,7 @@ func (m *CloseIORequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5670,10 +5682,7 @@ func (m *PidsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5758,10 +5767,7 @@ func (m *PidsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -5912,10 +5918,7 @@ func (m *CheckpointTaskRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6028,16 +6031,140 @@ func (m *UpdateTaskRequest) Unmarshal(dAtA []byte) error {
> + 				return err
> + 			}
> + 			iNdEx = postIndex
> ++		case 3:
> ++			if wireType != 2 {
> ++				return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType)
> ++			}
> ++			var msglen int
> ++			for shift := uint(0); ; shift += 7 {
> ++				if shift >= 64 {
> ++					return ErrIntOverflowShim
> ++				}
> ++				if iNdEx >= l {
> ++					return io.ErrUnexpectedEOF
> ++				}
> ++				b := dAtA[iNdEx]
> ++				iNdEx++
> ++				msglen |= int(b&0x7F) << shift
> ++				if b < 0x80 {
> ++					break
> ++				}
> ++			}
> ++			if msglen < 0 {
> ++				return ErrInvalidLengthShim
> ++			}
> ++			postIndex := iNdEx + msglen
> ++			if postIndex < 0 {
> ++				return ErrInvalidLengthShim
> ++			}
> ++			if postIndex > l {
> ++				return io.ErrUnexpectedEOF
> ++			}
> ++			if m.Annotations == nil {
> ++				m.Annotations = make(map[string]string)
> ++			}
> ++			var mapkey string
> ++			var mapvalue string
> ++			for iNdEx < postIndex {
> ++				entryPreIndex := iNdEx
> ++				var wire uint64
> ++				for shift := uint(0); ; shift += 7 {
> ++					if shift >= 64 {
> ++						return ErrIntOverflowShim
> ++					}
> ++					if iNdEx >= l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					b := dAtA[iNdEx]
> ++					iNdEx++
> ++					wire |= uint64(b&0x7F) << shift
> ++					if b < 0x80 {
> ++						break
> ++					}
> ++				}
> ++				fieldNum := int32(wire >> 3)
> ++				if fieldNum == 1 {
> ++					var stringLenmapkey uint64
> ++					for shift := uint(0); ; shift += 7 {
> ++						if shift >= 64 {
> ++							return ErrIntOverflowShim
> ++						}
> ++						if iNdEx >= l {
> ++							return io.ErrUnexpectedEOF
> ++						}
> ++						b := dAtA[iNdEx]
> ++						iNdEx++
> ++						stringLenmapkey |= uint64(b&0x7F) << shift
> ++						if b < 0x80 {
> ++							break
> ++						}
> ++					}
> ++					intStringLenmapkey := int(stringLenmapkey)
> ++					if intStringLenmapkey < 0 {
> ++						return ErrInvalidLengthShim
> ++					}
> ++					postStringIndexmapkey := iNdEx + intStringLenmapkey
> ++					if postStringIndexmapkey < 0 {
> ++						return ErrInvalidLengthShim
> ++					}
> ++					if postStringIndexmapkey > l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
> ++					iNdEx = postStringIndexmapkey
> ++				} else if fieldNum == 2 {
> ++					var stringLenmapvalue uint64
> ++					for shift := uint(0); ; shift += 7 {
> ++						if shift >= 64 {
> ++							return ErrIntOverflowShim
> ++						}
> ++						if iNdEx >= l {
> ++							return io.ErrUnexpectedEOF
> ++						}
> ++						b := dAtA[iNdEx]
> ++						iNdEx++
> ++						stringLenmapvalue |= uint64(b&0x7F) << shift
> ++						if b < 0x80 {
> ++							break
> ++						}
> ++					}
> ++					intStringLenmapvalue := int(stringLenmapvalue)
> ++					if intStringLenmapvalue < 0 {
> ++						return ErrInvalidLengthShim
> ++					}
> ++					postStringIndexmapvalue := iNdEx + intStringLenmapvalue
> ++					if postStringIndexmapvalue < 0 {
> ++						return ErrInvalidLengthShim
> ++					}
> ++					if postStringIndexmapvalue > l {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
> ++					iNdEx = postStringIndexmapvalue
> ++				} else {
> ++					iNdEx = entryPreIndex
> ++					skippy, err := skipShim(dAtA[iNdEx:])
> ++					if err != nil {
> ++						return err
> ++					}
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> ++						return ErrInvalidLengthShim
> ++					}
> ++					if (iNdEx + skippy) > postIndex {
> ++						return io.ErrUnexpectedEOF
> ++					}
> ++					iNdEx += skippy
> ++				}
> ++			}
> ++			m.Annotations[mapkey] = mapvalue
> ++			iNdEx = postIndex
> + 		default:
> + 			iNdEx = preIndex
> + 			skippy, err := skipShim(dAtA[iNdEx:])
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6152,10 +6279,7 @@ func (m *StartRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6225,10 +6349,7 @@ func (m *StartResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6343,10 +6464,7 @@ func (m *WaitRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6449,10 +6567,7 @@ func (m *WaitResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6535,10 +6650,7 @@ func (m *StatsRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6625,10 +6737,7 @@ func (m *StatsResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6711,10 +6820,7 @@ func (m *ConnectRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6835,10 +6941,7 @@ func (m *ConnectResponse) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -6941,10 +7044,7 @@ func (m *ShutdownRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -7027,10 +7127,7 @@ func (m *PauseRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -7113,10 +7210,7 @@ func (m *ResumeRequest) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthShim
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthShim
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> +index 9a2374b56..fae67de4f 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/plugin/unmarshal/unmarshal.go
> +@@ -844,7 +844,7 @@ func (p *unmarshal) field(file *generator.FileDescriptor, msg *generator.Descrip
> + 			p.P(`return err`)
> + 			p.Out()
> + 			p.P(`}`)
> +-			p.P(`if skippy < 0 {`)
> ++			p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> + 			p.In()
> + 			p.P(`return ErrInvalidLength`, p.localName)
> + 			p.Out()
> +@@ -1484,12 +1484,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
> + 			p.P(`return err`)
> + 			p.Out()
> + 			p.P(`}`)
> +-			p.P(`if skippy < 0 {`)
> +-			p.In()
> +-			p.P(`return ErrInvalidLength`, p.localName)
> +-			p.Out()
> +-			p.P(`}`)
> +-			p.P(`if (iNdEx + skippy) < 0 {`)
> ++			p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> + 			p.In()
> + 			p.P(`return ErrInvalidLength`, p.localName)
> + 			p.Out()
> +@@ -1512,12 +1507,7 @@ func (p *unmarshal) Generate(file *generator.FileDescriptor) {
> + 		p.P(`return err`)
> + 		p.Out()
> + 		p.P(`}`)
> +-		p.P(`if skippy < 0 {`)
> +-		p.In()
> +-		p.P(`return ErrInvalidLength`, p.localName)
> +-		p.Out()
> +-		p.P(`}`)
> +-		p.P(`if (iNdEx + skippy) < 0 {`)
> ++		p.P(`if (skippy < 0) || (iNdEx + skippy) < 0 {`)
> + 		p.In()
> + 		p.P(`return ErrInvalidLength`, p.localName)
> + 		p.Out()
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> +index 1ce0be2fa..f85c0cc81 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/proto/text_parser.go
> +@@ -318,7 +318,7 @@ func unescape(s string) (ch string, tail string, err error) {
> + 		if i > utf8.MaxRune {
> + 			return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss)
> + 		}
> +-		return string(i), s, nil
> ++		return string(rune(i)), s, nil
> + 	}
> + 	return "", "", fmt.Errorf(`unknown escape \%c`, r)
> + }
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> +index 98e269d54..e3d4d9490 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/any.pb.go
> +@@ -592,10 +592,7 @@ func (m *Any) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthAny
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthAny
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> +index 58bf4b53b..83e886920 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/api.pb.go
> +@@ -1677,10 +1677,7 @@ func (m *Api) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthApi
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthApi
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -1920,10 +1917,7 @@ func (m *Method) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthApi
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthApi
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2038,10 +2032,7 @@ func (m *Mixin) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthApi
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthApi
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> +index 3959f0669..4deafcb1c 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/duration.pb.go
> +@@ -415,10 +415,7 @@ func (m *Duration) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthDuration
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthDuration
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> +index 17e3aa558..9e94748b3 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/empty.pb.go
> +@@ -360,10 +360,7 @@ func (m *Empty) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthEmpty
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthEmpty
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> +index 7226b57f7..6ae346d92 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/field_mask.pb.go
> +@@ -636,10 +636,7 @@ func (m *FieldMask) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthFieldMask
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthFieldMask
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> +index 61045ce10..8e6ce71b2 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/source_context.pb.go
> +@@ -422,10 +422,7 @@ func (m *SourceContext) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthSourceContext
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthSourceContext
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> +index cea553eef..c0457312e 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/struct.pb.go
> +@@ -1862,7 +1862,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
> + 					if err != nil {
> + 						return err
> + 					}
> +-					if skippy < 0 {
> ++					if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 						return ErrInvalidLengthStruct
> + 					}
> + 					if (iNdEx + skippy) > postIndex {
> +@@ -1879,10 +1879,7 @@ func (m *Struct) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthStruct
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthStruct
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2087,10 +2084,7 @@ func (m *Value) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthStruct
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthStruct
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2175,10 +2169,7 @@ func (m *ListValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthStruct
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthStruct
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> +index b81875267..45db7b3bb 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/timestamp.pb.go
> +@@ -437,10 +437,7 @@ func (m *Timestamp) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthTimestamp
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthTimestamp
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> +index 13b7ec02f..791427bb2 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/type.pb.go
> +@@ -2483,10 +2483,7 @@ func (m *Type) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthType
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthType
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2795,10 +2792,7 @@ func (m *Field) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthType
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthType
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3004,10 +2998,7 @@ func (m *Enum) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthType
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthType
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3143,10 +3134,7 @@ func (m *EnumValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthType
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthType
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -3265,10 +3253,7 @@ func (m *Option) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthType
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthType
> + 			}
> + 			if (iNdEx + skippy) > l {
> +diff --git a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> +index 8f1edb57d..8d415420a 100644
> +--- a/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> ++++ b/src/import/vendor/github.com/gogo/protobuf/types/wrappers.pb.go
> +@@ -2020,10 +2020,7 @@ func (m *DoubleValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2085,10 +2082,7 @@ func (m *FloatValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2158,10 +2152,7 @@ func (m *Int64Value) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2231,10 +2222,7 @@ func (m *UInt64Value) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2304,10 +2292,7 @@ func (m *Int32Value) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2377,10 +2362,7 @@ func (m *UInt32Value) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2451,10 +2433,7 @@ func (m *BoolValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2537,10 +2516,7 @@ func (m *StringValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +@@ -2625,10 +2601,7 @@ func (m *BytesValue) Unmarshal(dAtA []byte) error {
> + 			if err != nil {
> + 				return err
> + 			}
> +-			if skippy < 0 {
> +-				return ErrInvalidLengthWrappers
> +-			}
> +-			if (iNdEx + skippy) < 0 {
> ++			if (skippy < 0) || (iNdEx+skippy) < 0 {
> + 				return ErrInvalidLengthWrappers
> + 			}
> + 			if (iNdEx + skippy) > l {
> +-- 
> +2.30.2
> +
> -- 
> 2.30.2
> 

> 
> 
> 


  reply	other threads:[~2021-04-20 21:01 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-20 18:42 [meta-virtualization][hardknott][PATCH] containerd: fix CVE-2021-3121 Trevor Gamblin
2021-04-20 21:01 ` Bruce Ashfield [this message]
2021-04-23 16:30   ` Martin Jansa
2021-04-23 16:32     ` Trevor Gamblin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210420210143.GB1997@gmail.com \
    --to=bruce.ashfield@gmail.com \
    --cc=meta-virtualization@lists.yoctoproject.org \
    --cc=trevor.gamblin@windriver.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.