From 68983201bfd97562c301f893bd901a971275b3a4 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Thu, 3 Aug 2017 11:53:55 -0700 Subject: [PATCH 1/2] Added field CollisionCount to StatefulSetStatus --- pkg/apis/apps/types.go | 6 + pkg/apis/apps/validation/validation.go | 30 +++++ pkg/apis/apps/validation/validation_test.go | 114 +++++++++++++++++++ staging/src/k8s.io/api/apps/v1beta1/types.go | 6 + staging/src/k8s.io/api/apps/v1beta2/types.go | 6 + 5 files changed, 162 insertions(+) diff --git a/pkg/apis/apps/types.go b/pkg/apis/apps/types.go index 5e4173b0828..9841c2ab4f6 100644 --- a/pkg/apis/apps/types.go +++ b/pkg/apis/apps/types.go @@ -187,6 +187,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/pkg/apis/apps/validation/validation.go b/pkg/apis/apps/validation/validation.go index d4a02bc7434..6b0e7d98534 100644 --- a/pkg/apis/apps/validation/validation.go +++ b/pkg/apis/apps/validation/validation.go @@ -163,9 +163,39 @@ func ValidateStatefulSetUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) fi return allErrs } +// ValidateStatefulSetStatus validates a StatefulSetStatus. +func ValidateStatefulSetStatus(status *apps.StatefulSetStatus, fieldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.Replicas), fieldPath.Child("replicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.ReadyReplicas), fieldPath.Child("readyReplicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentReplicas), fieldPath.Child("currentReplicas"))...) + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.UpdatedReplicas), fieldPath.Child("updatedReplicas"))...) + if status.ObservedGeneration != nil { + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.ObservedGeneration), fieldPath.Child("observedGeneration"))...) + } + if status.CollisionCount != nil { + allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(*status.CollisionCount), fieldPath.Child("collisionCount"))...) + } + + msg := "cannot be greater than status.replicas" + if status.ReadyReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("readyReplicas"), status.ReadyReplicas, msg)) + } + if status.CurrentReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("currentReplicas"), status.CurrentReplicas, msg)) + } + if status.UpdatedReplicas > status.Replicas { + allErrs = append(allErrs, field.Invalid(fieldPath.Child("updatedReplicas"), status.UpdatedReplicas, msg)) + } + + return allErrs +} + // ValidateStatefulSetStatusUpdate tests if required fields in the StatefulSet are set. func ValidateStatefulSetStatusUpdate(statefulSet, oldStatefulSet *apps.StatefulSet) field.ErrorList { allErrs := field.ErrorList{} + allErrs = append(allErrs, ValidateStatefulSetStatus(&statefulSet.Status, field.NewPath("status"))...) allErrs = append(allErrs, apivalidation.ValidateObjectMetaUpdate(&statefulSet.ObjectMeta, &oldStatefulSet.ObjectMeta, field.NewPath("metadata"))...) // TODO: Validate status. return allErrs diff --git a/pkg/apis/apps/validation/validation_test.go b/pkg/apis/apps/validation/validation_test.go index f968fdc83cb..9071fa189f0 100644 --- a/pkg/apis/apps/validation/validation_test.go +++ b/pkg/apis/apps/validation/validation_test.go @@ -22,6 +22,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/util/validation/field" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/apps" ) @@ -300,6 +301,119 @@ func TestValidateStatefulSet(t *testing.T) { } } +func TestValidateStatefulSetStatus(t *testing.T) { + minusOne := int64(-1) + tests := []struct { + name string + replicas int32 + readyReplicas int32 + currentReplicas int32 + updatedReplicas int32 + observedGeneration *int64 + collisionCount *int64 + expectedErr bool + }{ + { + name: "valid status", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: false, + }, + { + name: "invalid replicas", + replicas: -1, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid readyReplicas", + replicas: 3, + readyReplicas: -1, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid currentReplicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: -1, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "invalid updatedReplicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: -1, + expectedErr: true, + }, + { + name: "invalid observedGeneration", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + observedGeneration: &minusOne, + expectedErr: true, + }, + { + name: "invalid collisionCount", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 1, + collisionCount: &minusOne, + expectedErr: true, + }, + { + name: "readyReplicas greater than replicas", + replicas: 3, + readyReplicas: 4, + currentReplicas: 2, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "currentReplicas greater than replicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 4, + updatedReplicas: 1, + expectedErr: true, + }, + { + name: "updatedReplicas greater than replicas", + replicas: 3, + readyReplicas: 3, + currentReplicas: 2, + updatedReplicas: 4, + expectedErr: true, + }, + } + + for _, test := range tests { + status := apps.StatefulSetStatus{ + Replicas: test.replicas, + ReadyReplicas: test.readyReplicas, + CurrentReplicas: test.currentReplicas, + UpdatedReplicas: test.updatedReplicas, + ObservedGeneration: test.observedGeneration, + CollisionCount: test.collisionCount, + } + + errs := ValidateStatefulSetStatus(&status, field.NewPath("status")) + if hasErr := len(errs) > 0; hasErr != test.expectedErr { + t.Errorf("%s: expected error: %t, got error: %t\nerrors: %s", test.name, test.expectedErr, hasErr, errs.ToAggregate().Error()) + } + } +} + func TestValidateStatefulSetUpdate(t *testing.T) { validLabels := map[string]string{"a": "b"} validPodTemplate := api.PodTemplate{ diff --git a/staging/src/k8s.io/api/apps/v1beta1/types.go b/staging/src/k8s.io/api/apps/v1beta1/types.go index dbdadaed93b..afd5b4fa8d4 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types.go @@ -239,6 +239,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object diff --git a/staging/src/k8s.io/api/apps/v1beta2/types.go b/staging/src/k8s.io/api/apps/v1beta2/types.go index 6aada49f6e2..764d168dc96 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types.go @@ -246,6 +246,12 @@ type StatefulSetStatus struct { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) UpdateRevision string `json:"updateRevision,omitempty" protobuf:"bytes,7,opt,name=updateRevision"` + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + CollisionCount *int64 `json:"collisionCount,omitempty" protobuf:"varint,9,opt,name=collisionCount"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object From f4d596356a5d1e56538f8dd1e3f71c61bd822ef7 Mon Sep 17 00:00:00 2001 From: Yinan Li Date: Thu, 3 Aug 2017 12:11:54 -0700 Subject: [PATCH 2/2] Added changes as a result of running make update --- api/openapi-spec/swagger.json | 10 + api/swagger-spec/apps_v1beta1.json | 5 + api/swagger-spec/apps_v1beta2.json | 5 + .../apps/v1beta1/definitions.html | 7 + .../apps/v1beta2/definitions.html | 7 + pkg/api/testing/fuzzer.go | 3 + .../apps/v1beta1/zz_generated.conversion.go | 2 + pkg/apis/apps/v1beta2/conversion.go | 8 + .../apps/v1beta2/zz_generated.conversion.go | 2 + pkg/apis/apps/validation/BUILD | 1 + pkg/apis/apps/zz_generated.deepcopy.go | 9 + .../k8s.io/api/apps/v1beta1/generated.pb.go | 257 ++++++++------- .../k8s.io/api/apps/v1beta1/generated.proto | 6 + .../api/apps/v1beta1/types.generated.go | 258 +++++++++------ .../v1beta1/types_swagger_doc_generated.go | 1 + .../api/apps/v1beta1/zz_generated.deepcopy.go | 9 + .../k8s.io/api/apps/v1beta2/generated.pb.go | 297 ++++++++++-------- .../k8s.io/api/apps/v1beta2/generated.proto | 6 + .../v1beta2/types_swagger_doc_generated.go | 1 + .../api/apps/v1beta2/zz_generated.deepcopy.go | 11 +- 20 files changed, 566 insertions(+), 339 deletions(-) diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 6e2d2f80f0f..fc3db028af7 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -51317,6 +51317,11 @@ "replicas" ], "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int64" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", @@ -52166,6 +52171,11 @@ "replicas" ], "properties": { + "collisionCount": { + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", + "type": "integer", + "format": "int64" + }, "currentReplicas": { "description": "currentReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by currentRevision.", "type": "integer", diff --git a/api/swagger-spec/apps_v1beta1.json b/api/swagger-spec/apps_v1beta1.json index 3d19866302d..b484a864d33 100644 --- a/api/swagger-spec/apps_v1beta1.json +++ b/api/swagger-spec/apps_v1beta1.json @@ -6110,6 +6110,11 @@ "updateRevision": { "type": "string", "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" + }, + "collisionCount": { + "type": "integer", + "format": "int64", + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." } } }, diff --git a/api/swagger-spec/apps_v1beta2.json b/api/swagger-spec/apps_v1beta2.json index 0977ae02c09..3810848d4c2 100644 --- a/api/swagger-spec/apps_v1beta2.json +++ b/api/swagger-spec/apps_v1beta2.json @@ -7729,6 +7729,11 @@ "updateRevision": { "type": "string", "description": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)" + }, + "collisionCount": { + "type": "integer", + "format": "int64", + "description": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision." } } }, diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index 8730ab176a4..cab88482108 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -5125,6 +5125,13 @@ Examples:

string

+ +

collisionCount

+

collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

+

false

+

integer (int64)

+ + diff --git a/docs/api-reference/apps/v1beta2/definitions.html b/docs/api-reference/apps/v1beta2/definitions.html index abd552247cb..85fa13658c9 100755 --- a/docs/api-reference/apps/v1beta2/definitions.html +++ b/docs/api-reference/apps/v1beta2/definitions.html @@ -1584,6 +1584,13 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }

string

+ +

collisionCount

+

collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.

+

false

+

integer (int64)

+ + diff --git a/pkg/api/testing/fuzzer.go b/pkg/api/testing/fuzzer.go index 8ec590deb98..56492941243 100644 --- a/pkg/api/testing/fuzzer.go +++ b/pkg/api/testing/fuzzer.go @@ -734,6 +734,9 @@ func appsFuncs(codecs runtimeserializer.CodecFactory) []interface{} { if s.Status.ObservedGeneration == nil { s.Status.ObservedGeneration = new(int64) } + if s.Status.CollisionCount == nil { + s.Status.CollisionCount = new(int64) + } }, } } diff --git a/pkg/apis/apps/v1beta1/zz_generated.conversion.go b/pkg/apis/apps/v1beta1/zz_generated.conversion.go index 7da7c398cee..160c1884a4e 100644 --- a/pkg/apis/apps/v1beta1/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta1/zz_generated.conversion.go @@ -271,6 +271,7 @@ func autoConvert_v1beta1_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta1 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } @@ -287,6 +288,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta1_StatefulSetStatus(in *apps.St out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } diff --git a/pkg/apis/apps/v1beta2/conversion.go b/pkg/apis/apps/v1beta2/conversion.go index 7fc32b3ccb4..feb93f049c7 100644 --- a/pkg/apis/apps/v1beta2/conversion.go +++ b/pkg/apis/apps/v1beta2/conversion.go @@ -234,6 +234,10 @@ func Convert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *appsv1beta2 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int64) + *out.CollisionCount = *in.CollisionCount + } return nil } @@ -247,6 +251,10 @@ func Convert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.Statef out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + if in.CollisionCount != nil { + out.CollisionCount = new(int64) + *out.CollisionCount = *in.CollisionCount + } return nil } diff --git a/pkg/apis/apps/v1beta2/zz_generated.conversion.go b/pkg/apis/apps/v1beta2/zz_generated.conversion.go index 7bda17f45d6..9e88b34f700 100644 --- a/pkg/apis/apps/v1beta2/zz_generated.conversion.go +++ b/pkg/apis/apps/v1beta2/zz_generated.conversion.go @@ -197,6 +197,7 @@ func autoConvert_v1beta2_StatefulSetStatus_To_apps_StatefulSetStatus(in *v1beta2 out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } @@ -208,6 +209,7 @@ func autoConvert_apps_StatefulSetStatus_To_v1beta2_StatefulSetStatus(in *apps.St out.UpdatedReplicas = in.UpdatedReplicas out.CurrentRevision = in.CurrentRevision out.UpdateRevision = in.UpdateRevision + out.CollisionCount = (*int64)(unsafe.Pointer(in.CollisionCount)) return nil } diff --git a/pkg/apis/apps/validation/BUILD b/pkg/apis/apps/validation/BUILD index 2cd9d971bc6..d0bec4f4701 100644 --- a/pkg/apis/apps/validation/BUILD +++ b/pkg/apis/apps/validation/BUILD @@ -33,6 +33,7 @@ go_test( "//pkg/apis/apps:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/runtime:go_default_library", + "//vendor/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", ], ) diff --git a/pkg/apis/apps/zz_generated.deepcopy.go b/pkg/apis/apps/zz_generated.deepcopy.go index 5ac521976c7..0a4d3638614 100644 --- a/pkg/apis/apps/zz_generated.deepcopy.go +++ b/pkg/apis/apps/zz_generated.deepcopy.go @@ -273,6 +273,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return } diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go index 40d559a6717..bc0a74ab76a 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.pb.go @@ -992,6 +992,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i += copy(dAtA[i:], m.UpdateRevision) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } return i, nil } @@ -1339,6 +1344,9 @@ func (m *StatefulSetStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.UpdateRevision) n += 1 + l + sovGenerated(uint64(l)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } return n } @@ -1623,6 +1631,7 @@ func (this *StatefulSetStatus) String() string { `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, `}`, }, "") return s @@ -4574,6 +4583,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } m.UpdateRevision = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -4817,119 +4846,119 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 1816 bytes of a gzipped FileDescriptorProto + // 1820 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x2e, 0xaf, 0xc7, 0x71, 0xd9, 0xd8, 0xb3, 0x5e, 0x18, 0x5b, 0xcd, - 0x6a, 0xd7, 0xd9, 0x5d, 0xf7, 0x6c, 0xbc, 0xcb, 0x6a, 0x37, 0x91, 0x56, 0x78, 0xc6, 0x61, 0xd7, - 0x91, 0x8d, 0x9d, 0x1a, 0x3b, 0x88, 0x00, 0x52, 0x6a, 0x7a, 0x2a, 0xe3, 0x8e, 0xfb, 0x4b, 0xdd, - 0xd5, 0x43, 0x46, 0x5c, 0xf8, 0x03, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, - 0x10, 0x11, 0x17, 0x72, 0xb2, 0xc8, 0xe4, 0xca, 0x95, 0x4b, 0x24, 0x24, 0x54, 0xd5, 0xd5, 0xdf, - 0xdd, 0xf6, 0x18, 0x09, 0x1f, 0xb8, 0x4d, 0xd7, 0x7b, 0xef, 0xf7, 0x5e, 0x55, 0xbd, 0x7a, 0xef, - 0xf7, 0x06, 0xfc, 0xf0, 0xec, 0x4b, 0x57, 0xd1, 0xac, 0xd6, 0x99, 0xd7, 0x23, 0x8e, 0x49, 0x28, - 0x71, 0x5b, 0x43, 0x62, 0xf6, 0x2d, 0xa7, 0x25, 0x04, 0xd8, 0xd6, 0x5a, 0xd8, 0xb6, 0xdd, 0xd6, - 0xf0, 0x4e, 0x8f, 0x50, 0x7c, 0xa7, 0x35, 0x20, 0x26, 0x71, 0x30, 0x25, 0x7d, 0xc5, 0x76, 0x2c, - 0x6a, 0xc1, 0x55, 0x5f, 0x51, 0xc1, 0xb6, 0xa6, 0x30, 0x45, 0x45, 0x28, 0xae, 0x6d, 0x0d, 0x34, - 0x7a, 0xea, 0xf5, 0x14, 0xd5, 0x32, 0x5a, 0x03, 0x6b, 0x60, 0xb5, 0xb8, 0x7e, 0xcf, 0x7b, 0xca, - 0xbf, 0xf8, 0x07, 0xff, 0xe5, 0xe3, 0xac, 0xc9, 0x31, 0x87, 0xaa, 0xe5, 0x90, 0xd6, 0x30, 0xe3, - 0x6b, 0xed, 0x76, 0x4c, 0xc7, 0xb6, 0x74, 0x4d, 0x1d, 0x15, 0x85, 0xb5, 0xf6, 0x79, 0xa4, 0x6a, - 0x60, 0xf5, 0x54, 0x33, 0x89, 0x33, 0x6a, 0xd9, 0x67, 0x03, 0xb6, 0xe0, 0xb6, 0x0c, 0x42, 0x71, - 0x9e, 0x83, 0x56, 0x91, 0x95, 0xe3, 0x99, 0x54, 0x33, 0x48, 0xc6, 0xe0, 0x8b, 0xab, 0x0c, 0x5c, - 0xf5, 0x94, 0x18, 0x38, 0x63, 0xf7, 0x59, 0x91, 0x9d, 0x47, 0x35, 0xbd, 0xa5, 0x99, 0xd4, 0xa5, - 0x4e, 0xda, 0x48, 0xfe, 0x97, 0x04, 0x60, 0xc7, 0x32, 0xa9, 0x63, 0xe9, 0x3a, 0x71, 0x10, 0x19, - 0x6a, 0xae, 0x66, 0x99, 0xf0, 0x09, 0xa8, 0xb1, 0xfd, 0xf4, 0x31, 0xc5, 0x0d, 0x69, 0x43, 0xda, - 0x9c, 0xdb, 0xfe, 0x54, 0x89, 0x2e, 0x25, 0x84, 0x57, 0xec, 0xb3, 0x01, 0x5b, 0x70, 0x15, 0xa6, - 0xad, 0x0c, 0xef, 0x28, 0x87, 0xbd, 0x67, 0x44, 0xa5, 0x07, 0x84, 0xe2, 0x36, 0x3c, 0xbf, 0x58, - 0x9f, 0x1a, 0x5f, 0xac, 0x83, 0x68, 0x0d, 0x85, 0xa8, 0xf0, 0x10, 0x54, 0x38, 0x7a, 0x89, 0xa3, - 0x6f, 0x15, 0xa2, 0x8b, 0x4d, 0x2b, 0x08, 0xff, 0xf2, 0xfe, 0x73, 0x4a, 0x4c, 0x16, 0x5e, 0xfb, - 0x1d, 0x01, 0x5d, 0xd9, 0xc5, 0x14, 0x23, 0x0e, 0x04, 0x3f, 0x01, 0x35, 0x47, 0x84, 0xdf, 0x28, - 0x6f, 0x48, 0x9b, 0xe5, 0xf6, 0x2d, 0xa1, 0x55, 0x0b, 0xb6, 0x85, 0x42, 0x0d, 0xf9, 0x5c, 0x02, - 0x2b, 0xd9, 0x7d, 0xef, 0x6b, 0x2e, 0x85, 0x3f, 0xcf, 0xec, 0x5d, 0x99, 0x6c, 0xef, 0xcc, 0x9a, - 0xef, 0x3c, 0x74, 0x1c, 0xac, 0xc4, 0xf6, 0x7d, 0x04, 0xaa, 0x1a, 0x25, 0x86, 0xdb, 0x28, 0x6d, - 0x94, 0x37, 0xe7, 0xb6, 0x3f, 0x56, 0x0a, 0x72, 0x5d, 0xc9, 0x46, 0xd7, 0x9e, 0x17, 0xb8, 0xd5, - 0x3d, 0x86, 0x80, 0x7c, 0x20, 0xf9, 0x37, 0x25, 0x00, 0x76, 0x89, 0xad, 0x5b, 0x23, 0x83, 0x98, - 0xf4, 0x06, 0xae, 0x6e, 0x0f, 0x54, 0x5c, 0x9b, 0xa8, 0xe2, 0xea, 0x3e, 0x2c, 0xdc, 0x41, 0x14, - 0x54, 0xd7, 0x26, 0x6a, 0x74, 0x69, 0xec, 0x0b, 0x71, 0x08, 0xf8, 0x10, 0x4c, 0xbb, 0x14, 0x53, - 0xcf, 0xe5, 0x57, 0x36, 0xb7, 0x7d, 0x7b, 0x12, 0x30, 0x6e, 0xd0, 0xae, 0x0b, 0xb8, 0x69, 0xff, - 0x1b, 0x09, 0x20, 0xf9, 0xef, 0x65, 0xb0, 0x14, 0x29, 0x77, 0x2c, 0xb3, 0xaf, 0x51, 0x96, 0xd2, - 0xf7, 0x40, 0x85, 0x8e, 0x6c, 0xc2, 0xcf, 0x64, 0xb6, 0xfd, 0x61, 0x10, 0xcc, 0xf1, 0xc8, 0x26, - 0x6f, 0x2f, 0xd6, 0x57, 0x73, 0x4c, 0x98, 0x08, 0x71, 0x23, 0xb8, 0x1f, 0xc6, 0x59, 0xe2, 0xe6, - 0x9f, 0x27, 0x9d, 0xbf, 0xbd, 0x58, 0xcf, 0xa9, 0x35, 0x4a, 0x88, 0x94, 0x0c, 0x11, 0x7e, 0x00, - 0xa6, 0x1d, 0x82, 0x5d, 0xcb, 0x6c, 0x54, 0x38, 0x5a, 0xb8, 0x15, 0xc4, 0x57, 0x91, 0x90, 0xc2, - 0xdb, 0x60, 0xc6, 0x20, 0xae, 0x8b, 0x07, 0xa4, 0x51, 0xe5, 0x8a, 0x0b, 0x42, 0x71, 0xe6, 0xc0, - 0x5f, 0x46, 0x81, 0x1c, 0x3e, 0x03, 0x75, 0x1d, 0xbb, 0xf4, 0xc4, 0xee, 0x63, 0x4a, 0x8e, 0x35, - 0x83, 0x34, 0xa6, 0xf9, 0x81, 0x7e, 0x34, 0xd9, 0xdd, 0x33, 0x8b, 0xf6, 0x8a, 0x40, 0xaf, 0xef, - 0x27, 0x90, 0x50, 0x0a, 0x19, 0x0e, 0x01, 0x64, 0x2b, 0xc7, 0x0e, 0x36, 0x5d, 0xff, 0xa0, 0x98, - 0xbf, 0x99, 0x6b, 0xfb, 0x5b, 0x13, 0xfe, 0xe0, 0x7e, 0x06, 0x0d, 0xe5, 0x78, 0x90, 0xff, 0x20, - 0x81, 0x7a, 0x74, 0x4d, 0x37, 0xf0, 0x56, 0xbf, 0x4d, 0xbe, 0xd5, 0xef, 0x4f, 0x90, 0x9c, 0x05, - 0x6f, 0xf4, 0x9f, 0x25, 0x00, 0x23, 0x25, 0x64, 0xe9, 0x7a, 0x0f, 0xab, 0x67, 0x70, 0x03, 0x54, - 0x4c, 0x6c, 0x04, 0x39, 0x19, 0x3e, 0x90, 0x1f, 0x63, 0x83, 0x20, 0x2e, 0x81, 0x2f, 0x24, 0x00, - 0x3d, 0x7e, 0xf4, 0xfd, 0x1d, 0xd3, 0xb4, 0x28, 0x66, 0xa7, 0x11, 0x04, 0xd4, 0x99, 0x20, 0xa0, - 0xc0, 0x97, 0x72, 0x92, 0x41, 0xb9, 0x6f, 0x52, 0x67, 0x14, 0xdd, 0x42, 0x56, 0x01, 0xe5, 0xb8, - 0x86, 0x3f, 0x03, 0xc0, 0x11, 0x98, 0xc7, 0x96, 0x78, 0xb6, 0xc5, 0x35, 0x20, 0x70, 0xdf, 0xb1, - 0xcc, 0xa7, 0xda, 0x20, 0x2a, 0x2c, 0x28, 0x84, 0x40, 0x31, 0xb8, 0xb5, 0xfb, 0x60, 0xb5, 0x20, - 0x4e, 0x78, 0x0b, 0x94, 0xcf, 0xc8, 0xc8, 0x3f, 0x2a, 0xc4, 0x7e, 0xc2, 0x65, 0x50, 0x1d, 0x62, - 0xdd, 0x23, 0xfe, 0x9b, 0x44, 0xfe, 0xc7, 0xdd, 0xd2, 0x97, 0x92, 0xfc, 0xfb, 0x6a, 0x3c, 0x53, - 0x58, 0xbd, 0x81, 0x9b, 0xac, 0x3d, 0xd8, 0xba, 0xa6, 0x62, 0x97, 0x63, 0x54, 0xdb, 0xef, 0xf8, - 0xad, 0xc1, 0x5f, 0x43, 0xa1, 0x14, 0xfe, 0x02, 0xd4, 0x5c, 0xa2, 0x13, 0x95, 0x5a, 0x8e, 0x28, - 0x71, 0x9f, 0x4d, 0x98, 0x53, 0xb8, 0x47, 0xf4, 0xae, 0x30, 0xf5, 0xe1, 0x83, 0x2f, 0x14, 0x42, - 0xc2, 0x87, 0xa0, 0x46, 0x89, 0x61, 0xeb, 0x98, 0x12, 0x71, 0x7a, 0x89, 0xbc, 0x62, 0xb5, 0x83, - 0x81, 0x1d, 0x59, 0xfd, 0x63, 0xa1, 0xc6, 0xab, 0x67, 0x98, 0xa7, 0xc1, 0x2a, 0x0a, 0x61, 0xe0, - 0x4f, 0x41, 0xcd, 0xa5, 0xac, 0xab, 0x0f, 0x46, 0xbc, 0xa2, 0x5c, 0xd6, 0x56, 0xe2, 0x75, 0xd4, - 0x37, 0x89, 0xa0, 0x83, 0x15, 0x14, 0xc2, 0xc1, 0x1d, 0xb0, 0x60, 0x68, 0x26, 0x22, 0xb8, 0x3f, - 0xea, 0x12, 0xd5, 0x32, 0xfb, 0x2e, 0x2f, 0x45, 0xd5, 0xf6, 0xaa, 0x30, 0x5a, 0x38, 0x48, 0x8a, - 0x51, 0x5a, 0x1f, 0xee, 0x83, 0xe5, 0xa0, 0xed, 0x7e, 0xab, 0xb9, 0xd4, 0x72, 0x46, 0xfb, 0x9a, - 0xa1, 0x51, 0x5e, 0xa0, 0xaa, 0xed, 0xc6, 0xf8, 0x62, 0x7d, 0x19, 0xe5, 0xc8, 0x51, 0xae, 0x15, - 0xab, 0x9d, 0x36, 0xf6, 0x5c, 0xd2, 0xe7, 0x05, 0xa7, 0x16, 0xd5, 0xce, 0x23, 0xbe, 0x8a, 0x84, - 0x14, 0xfe, 0x24, 0x91, 0xa6, 0xb5, 0xeb, 0xa5, 0x69, 0xbd, 0x38, 0x45, 0xe1, 0x09, 0x58, 0xb5, - 0x1d, 0x6b, 0xe0, 0x10, 0xd7, 0xdd, 0x25, 0xb8, 0xaf, 0x6b, 0x26, 0x09, 0x4e, 0x66, 0x96, 0xef, - 0xe8, 0xbd, 0xf1, 0xc5, 0xfa, 0xea, 0x51, 0xbe, 0x0a, 0x2a, 0xb2, 0x95, 0xff, 0x5c, 0x01, 0xb7, - 0xd2, 0x3d, 0x0e, 0x3e, 0x00, 0xd0, 0xea, 0xb9, 0xc4, 0x19, 0x92, 0xfe, 0x37, 0x3e, 0x71, 0x63, - 0xec, 0x46, 0xe2, 0xec, 0x26, 0x7c, 0xb7, 0x87, 0x19, 0x0d, 0x94, 0x63, 0xe5, 0xf3, 0x23, 0xf1, - 0x00, 0x4a, 0x3c, 0xd0, 0x18, 0x3f, 0xca, 0x3c, 0x82, 0x1d, 0xb0, 0x20, 0xde, 0x7e, 0x20, 0xe4, - 0xc9, 0x1a, 0xbb, 0xf7, 0x93, 0xa4, 0x18, 0xa5, 0xf5, 0xe1, 0x37, 0x60, 0x11, 0x0f, 0xb1, 0xa6, - 0xe3, 0x9e, 0x4e, 0x42, 0x90, 0x0a, 0x07, 0x79, 0x57, 0x80, 0x2c, 0xee, 0xa4, 0x15, 0x50, 0xd6, - 0x06, 0x1e, 0x80, 0x25, 0xcf, 0xcc, 0x42, 0xf9, 0x79, 0xf8, 0x9e, 0x80, 0x5a, 0x3a, 0xc9, 0xaa, - 0xa0, 0x3c, 0x3b, 0xf8, 0x04, 0x00, 0x35, 0x68, 0xcc, 0x6e, 0x63, 0x9a, 0x57, 0xd2, 0x4f, 0x26, - 0x78, 0x2f, 0x61, 0x37, 0x8f, 0xaa, 0x58, 0xb8, 0xe4, 0xa2, 0x18, 0x26, 0xbc, 0x07, 0xe6, 0x1d, - 0xf6, 0x02, 0xc2, 0x50, 0x67, 0x78, 0xa8, 0xdf, 0x11, 0x66, 0xf3, 0x28, 0x2e, 0x44, 0x49, 0x5d, - 0x78, 0x17, 0xd4, 0x55, 0x4b, 0xd7, 0x79, 0xe6, 0x77, 0x2c, 0xcf, 0xa4, 0x3c, 0x79, 0xcb, 0x6d, - 0xc8, 0x3a, 0x73, 0x27, 0x21, 0x41, 0x29, 0x4d, 0xf9, 0x4f, 0x52, 0xbc, 0xcd, 0x04, 0xcf, 0x19, - 0xde, 0x4d, 0x50, 0x9f, 0x0f, 0x52, 0xd4, 0x67, 0x25, 0x6b, 0x11, 0x63, 0x3e, 0x1a, 0x98, 0x67, - 0xc9, 0xaf, 0x99, 0x03, 0xff, 0xc2, 0x45, 0x49, 0xfc, 0xf4, 0xd2, 0xa7, 0x14, 0x6a, 0xc7, 0x1a, - 0xe3, 0x22, 0xdf, 0x79, 0x5c, 0x88, 0x92, 0xc8, 0xf2, 0xd7, 0xa0, 0x9e, 0x7c, 0x87, 0x09, 0x4e, - 0x2f, 0x5d, 0xc9, 0xe9, 0xdf, 0x48, 0x60, 0xb5, 0xc0, 0x3b, 0xd4, 0x41, 0xdd, 0xc0, 0xcf, 0x63, - 0x39, 0x72, 0x25, 0x37, 0x66, 0x53, 0x93, 0xe2, 0x4f, 0x4d, 0xca, 0x9e, 0x49, 0x0f, 0x9d, 0x2e, - 0x75, 0x34, 0x73, 0xe0, 0xdf, 0xc3, 0x41, 0x02, 0x0b, 0xa5, 0xb0, 0xe1, 0x63, 0x50, 0x33, 0xf0, - 0xf3, 0xae, 0xe7, 0x0c, 0xf2, 0xce, 0x6b, 0x32, 0x3f, 0xbc, 0x7f, 0x1c, 0x08, 0x14, 0x14, 0xe2, - 0xc9, 0x87, 0x60, 0x23, 0xb1, 0x49, 0x56, 0x2a, 0xc8, 0x53, 0x4f, 0xef, 0x92, 0xe8, 0xc2, 0x3f, - 0x06, 0xb3, 0x36, 0x76, 0xa8, 0x16, 0x96, 0x8b, 0x6a, 0x7b, 0x7e, 0x7c, 0xb1, 0x3e, 0x7b, 0x14, - 0x2c, 0xa2, 0x48, 0x2e, 0xff, 0x5b, 0x02, 0xd5, 0xae, 0x8a, 0x75, 0x72, 0x03, 0xa3, 0xc3, 0x6e, - 0x62, 0x74, 0x90, 0x0b, 0x93, 0x88, 0xc7, 0x53, 0x38, 0x35, 0xec, 0xa7, 0xa6, 0x86, 0xf7, 0xaf, - 0xc0, 0xb9, 0x7c, 0x60, 0xf8, 0x0a, 0xcc, 0x86, 0xee, 0x12, 0x55, 0x52, 0xba, 0xaa, 0x4a, 0xca, - 0xbf, 0x2b, 0x81, 0xb9, 0x98, 0x8b, 0xeb, 0x59, 0xb3, 0xe3, 0x8e, 0x11, 0x0d, 0x56, 0x86, 0xb6, - 0x27, 0xd9, 0x88, 0x12, 0x90, 0x0a, 0x9f, 0xbf, 0x45, 0xdd, 0x3b, 0xcb, 0x35, 0xbe, 0x06, 0x75, - 0x8a, 0x9d, 0x01, 0xa1, 0x81, 0x8c, 0x1f, 0xd8, 0x6c, 0xc4, 0xf4, 0x8f, 0x13, 0x52, 0x94, 0xd2, - 0x5e, 0xbb, 0x07, 0xe6, 0x13, 0xce, 0xae, 0x45, 0xc2, 0x5e, 0xb0, 0xc3, 0x89, 0x92, 0xf3, 0x06, - 0xb2, 0xeb, 0x41, 0x22, 0xbb, 0x36, 0x8b, 0x0f, 0x33, 0xf6, 0x64, 0x8a, 0x72, 0x0c, 0xa5, 0x72, - 0xec, 0xa3, 0x89, 0xd0, 0x2e, 0xcf, 0xb4, 0x3f, 0x4a, 0x60, 0x21, 0xa6, 0x7d, 0x03, 0x13, 0xcc, - 0x5e, 0x72, 0x82, 0x79, 0x7f, 0x92, 0x4d, 0x14, 0x8c, 0x30, 0x7f, 0xa9, 0x26, 0x82, 0xff, 0xbf, - 0x27, 0xd5, 0xbf, 0x02, 0xcb, 0x43, 0x4b, 0xf7, 0x0c, 0xd2, 0xd1, 0xb1, 0x66, 0x04, 0x0a, 0x8c, - 0xc1, 0x94, 0xd3, 0x7f, 0x54, 0x84, 0xf0, 0xc4, 0x71, 0x35, 0x97, 0x12, 0x93, 0x3e, 0x8a, 0x2c, - 0xdb, 0xdf, 0x15, 0x4e, 0x96, 0x1f, 0xe5, 0xc0, 0xa1, 0x5c, 0x27, 0xf0, 0x07, 0x60, 0x8e, 0x11, - 0x38, 0x4d, 0x25, 0x6c, 0x16, 0x14, 0xd3, 0xff, 0x92, 0x00, 0x9a, 0xeb, 0x46, 0x22, 0x14, 0xd7, - 0x83, 0xa7, 0x60, 0xc9, 0xb6, 0xfa, 0x07, 0xd8, 0xc4, 0x03, 0xc2, 0xda, 0xde, 0x11, 0xff, 0x43, - 0x93, 0x33, 0xed, 0xd9, 0xf6, 0x17, 0x01, 0x53, 0x3a, 0xca, 0xaa, 0xbc, 0x65, 0x94, 0x35, 0xbb, - 0xcc, 0x79, 0x40, 0x1e, 0x24, 0x74, 0x40, 0xdd, 0x13, 0xed, 0x47, 0x0c, 0x1e, 0xfe, 0xfc, 0xbf, - 0x3d, 0x49, 0x86, 0x9d, 0x24, 0x2c, 0xa3, 0x6a, 0x94, 0x5c, 0x47, 0x29, 0x0f, 0x85, 0x83, 0x44, - 0xed, 0xbf, 0x19, 0x24, 0xe4, 0xbf, 0x96, 0xc1, 0x62, 0xe6, 0xe9, 0xc2, 0x1f, 0x5d, 0xc2, 0xb8, - 0x57, 0xfe, 0x67, 0x6c, 0x3b, 0x43, 0x18, 0xcb, 0xd7, 0x20, 0x8c, 0x3b, 0x60, 0x41, 0xf5, 0x1c, - 0x87, 0xcd, 0xfa, 0x49, 0x96, 0x1d, 0x52, 0xf5, 0x4e, 0x52, 0x8c, 0xd2, 0xfa, 0x79, 0x6c, 0xbf, - 0x7a, 0x4d, 0xb6, 0x1f, 0x8f, 0x42, 0x30, 0x36, 0x3f, 0xed, 0xb2, 0x51, 0x08, 0xe2, 0x96, 0xd6, - 0x67, 0xdd, 0xca, 0x47, 0x0d, 0x11, 0x66, 0x92, 0xdd, 0xea, 0x24, 0x21, 0x45, 0x29, 0x6d, 0xf9, - 0x6f, 0x12, 0x78, 0xb7, 0x30, 0xcb, 0xe0, 0x4e, 0x82, 0x04, 0x6f, 0xa5, 0x48, 0xf0, 0xf7, 0x0a, - 0x0d, 0x63, 0x5c, 0xd8, 0xc9, 0xe7, 0xc2, 0x5f, 0x4d, 0xc6, 0x85, 0x73, 0x88, 0xda, 0xd5, 0xa4, - 0xb8, 0xbd, 0x75, 0xfe, 0xba, 0x39, 0xf5, 0xf2, 0x75, 0x73, 0xea, 0xd5, 0xeb, 0xe6, 0xd4, 0xaf, - 0xc7, 0x4d, 0xe9, 0x7c, 0xdc, 0x94, 0x5e, 0x8e, 0x9b, 0xd2, 0xab, 0x71, 0x53, 0xfa, 0xc7, 0xb8, - 0x29, 0xfd, 0xf6, 0x4d, 0x73, 0xea, 0xf1, 0x8c, 0xf0, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xa4, 0xc5, 0x7c, 0x3a, 0x7d, 0x19, 0x00, 0x00, + 0x15, 0x77, 0xcf, 0x87, 0x3d, 0x53, 0x5e, 0x8f, 0xe3, 0xb2, 0xb1, 0x67, 0xbd, 0x30, 0xb6, 0x86, + 0xd5, 0xae, 0xb3, 0xbb, 0xee, 0xd9, 0x78, 0x97, 0xd5, 0x26, 0x91, 0x22, 0x3c, 0xe3, 0x90, 0x38, + 0xb2, 0xb1, 0x53, 0x63, 0x07, 0x11, 0x40, 0x4a, 0x4d, 0x4f, 0x65, 0xdc, 0x71, 0x7f, 0xa9, 0xbb, + 0x7a, 0xc8, 0x88, 0x0b, 0x77, 0x90, 0xc2, 0x99, 0xbf, 0x82, 0x23, 0x82, 0x1b, 0x27, 0x5f, 0x90, + 0x22, 0x2e, 0xe4, 0x64, 0x91, 0xc9, 0x95, 0x2b, 0x97, 0x48, 0x48, 0xa8, 0xaa, 0xab, 0xbf, 0xbb, + 0xed, 0x31, 0x12, 0x3e, 0x70, 0x9b, 0xae, 0xf7, 0xde, 0xef, 0xbd, 0xaa, 0x7a, 0xf5, 0xde, 0xef, + 0x0d, 0xf8, 0xe1, 0xe9, 0xb7, 0x8e, 0xac, 0x9a, 0xad, 0x53, 0xb7, 0x47, 0x6c, 0x83, 0x50, 0xe2, + 0xb4, 0x86, 0xc4, 0xe8, 0x9b, 0x76, 0x4b, 0x08, 0xb0, 0xa5, 0xb6, 0xb0, 0x65, 0x39, 0xad, 0xe1, + 0xad, 0x1e, 0xa1, 0xf8, 0x56, 0x6b, 0x40, 0x0c, 0x62, 0x63, 0x4a, 0xfa, 0xb2, 0x65, 0x9b, 0xd4, + 0x84, 0x2b, 0x9e, 0xa2, 0x8c, 0x2d, 0x55, 0x66, 0x8a, 0xb2, 0x50, 0x5c, 0xdd, 0x1c, 0xa8, 0xf4, + 0xc4, 0xed, 0xc9, 0x8a, 0xa9, 0xb7, 0x06, 0xe6, 0xc0, 0x6c, 0x71, 0xfd, 0x9e, 0xfb, 0x9c, 0x7f, + 0xf1, 0x0f, 0xfe, 0xcb, 0xc3, 0x59, 0x6d, 0x46, 0x1c, 0x2a, 0xa6, 0x4d, 0x5a, 0xc3, 0x94, 0xaf, + 0xd5, 0x9b, 0x11, 0x1d, 0xcb, 0xd4, 0x54, 0x65, 0x94, 0x17, 0xd6, 0xea, 0xd7, 0xa1, 0xaa, 0x8e, + 0x95, 0x13, 0xd5, 0x20, 0xf6, 0xa8, 0x65, 0x9d, 0x0e, 0xd8, 0x82, 0xd3, 0xd2, 0x09, 0xc5, 0x59, + 0x0e, 0x5a, 0x79, 0x56, 0xb6, 0x6b, 0x50, 0x55, 0x27, 0x29, 0x83, 0x6f, 0x2e, 0x33, 0x70, 0x94, + 0x13, 0xa2, 0xe3, 0x94, 0xdd, 0x57, 0x79, 0x76, 0x2e, 0x55, 0xb5, 0x96, 0x6a, 0x50, 0x87, 0xda, + 0x49, 0xa3, 0xe6, 0xbf, 0x24, 0x00, 0x3b, 0xa6, 0x41, 0x6d, 0x53, 0xd3, 0x88, 0x8d, 0xc8, 0x50, + 0x75, 0x54, 0xd3, 0x80, 0xcf, 0x40, 0x85, 0xed, 0xa7, 0x8f, 0x29, 0xae, 0x4b, 0xeb, 0xd2, 0xc6, + 0xec, 0xd6, 0x97, 0x72, 0x78, 0x29, 0x01, 0xbc, 0x6c, 0x9d, 0x0e, 0xd8, 0x82, 0x23, 0x33, 0x6d, + 0x79, 0x78, 0x4b, 0x3e, 0xe8, 0xbd, 0x20, 0x0a, 0xdd, 0x27, 0x14, 0xb7, 0xe1, 0xd9, 0xf9, 0xda, + 0xd4, 0xf8, 0x7c, 0x0d, 0x84, 0x6b, 0x28, 0x40, 0x85, 0x07, 0xa0, 0xc4, 0xd1, 0x0b, 0x1c, 0x7d, + 0x33, 0x17, 0x5d, 0x6c, 0x5a, 0x46, 0xf8, 0x97, 0xf7, 0x5f, 0x52, 0x62, 0xb0, 0xf0, 0xda, 0x1f, + 0x08, 0xe8, 0xd2, 0x0e, 0xa6, 0x18, 0x71, 0x20, 0xf8, 0x05, 0xa8, 0xd8, 0x22, 0xfc, 0x7a, 0x71, + 0x5d, 0xda, 0x28, 0xb6, 0x6f, 0x08, 0xad, 0x8a, 0xbf, 0x2d, 0x14, 0x68, 0x34, 0xcf, 0x24, 0xb0, + 0x9c, 0xde, 0xf7, 0x9e, 0xea, 0x50, 0xf8, 0xf3, 0xd4, 0xde, 0xe5, 0xc9, 0xf6, 0xce, 0xac, 0xf9, + 0xce, 0x03, 0xc7, 0xfe, 0x4a, 0x64, 0xdf, 0x87, 0xa0, 0xac, 0x52, 0xa2, 0x3b, 0xf5, 0xc2, 0x7a, + 0x71, 0x63, 0x76, 0xeb, 0x73, 0x39, 0x27, 0xd7, 0xe5, 0x74, 0x74, 0xed, 0x39, 0x81, 0x5b, 0xde, + 0x65, 0x08, 0xc8, 0x03, 0x6a, 0xfe, 0xb6, 0x00, 0xc0, 0x0e, 0xb1, 0x34, 0x73, 0xa4, 0x13, 0x83, + 0x5e, 0xc3, 0xd5, 0xed, 0x82, 0x92, 0x63, 0x11, 0x45, 0x5c, 0xdd, 0xa7, 0xb9, 0x3b, 0x08, 0x83, + 0xea, 0x5a, 0x44, 0x09, 0x2f, 0x8d, 0x7d, 0x21, 0x0e, 0x01, 0x1f, 0x83, 0x69, 0x87, 0x62, 0xea, + 0x3a, 0xfc, 0xca, 0x66, 0xb7, 0x6e, 0x4e, 0x02, 0xc6, 0x0d, 0xda, 0x35, 0x01, 0x37, 0xed, 0x7d, + 0x23, 0x01, 0xd4, 0xfc, 0x7b, 0x11, 0x2c, 0x86, 0xca, 0x1d, 0xd3, 0xe8, 0xab, 0x94, 0xa5, 0xf4, + 0x5d, 0x50, 0xa2, 0x23, 0x8b, 0xf0, 0x33, 0xa9, 0xb6, 0x3f, 0xf5, 0x83, 0x39, 0x1a, 0x59, 0xe4, + 0xfd, 0xf9, 0xda, 0x4a, 0x86, 0x09, 0x13, 0x21, 0x6e, 0x04, 0xf7, 0x82, 0x38, 0x0b, 0xdc, 0xfc, + 0xeb, 0xb8, 0xf3, 0xf7, 0xe7, 0x6b, 0x19, 0xb5, 0x46, 0x0e, 0x90, 0xe2, 0x21, 0xc2, 0x4f, 0xc0, + 0xb4, 0x4d, 0xb0, 0x63, 0x1a, 0xf5, 0x12, 0x47, 0x0b, 0xb6, 0x82, 0xf8, 0x2a, 0x12, 0x52, 0x78, + 0x13, 0xcc, 0xe8, 0xc4, 0x71, 0xf0, 0x80, 0xd4, 0xcb, 0x5c, 0x71, 0x5e, 0x28, 0xce, 0xec, 0x7b, + 0xcb, 0xc8, 0x97, 0xc3, 0x17, 0xa0, 0xa6, 0x61, 0x87, 0x1e, 0x5b, 0x7d, 0x4c, 0xc9, 0x91, 0xaa, + 0x93, 0xfa, 0x34, 0x3f, 0xd0, 0xcf, 0x26, 0xbb, 0x7b, 0x66, 0xd1, 0x5e, 0x16, 0xe8, 0xb5, 0xbd, + 0x18, 0x12, 0x4a, 0x20, 0xc3, 0x21, 0x80, 0x6c, 0xe5, 0xc8, 0xc6, 0x86, 0xe3, 0x1d, 0x14, 0xf3, + 0x37, 0x73, 0x65, 0x7f, 0xab, 0xc2, 0x1f, 0xdc, 0x4b, 0xa1, 0xa1, 0x0c, 0x0f, 0xcd, 0x3f, 0x4a, + 0xa0, 0x16, 0x5e, 0xd3, 0x35, 0xbc, 0xd5, 0x87, 0xf1, 0xb7, 0xfa, 0xfd, 0x09, 0x92, 0x33, 0xe7, + 0x8d, 0xfe, 0xb3, 0x00, 0x60, 0xa8, 0x84, 0x4c, 0x4d, 0xeb, 0x61, 0xe5, 0x14, 0xae, 0x83, 0x92, + 0x81, 0x75, 0x3f, 0x27, 0x83, 0x07, 0xf2, 0x63, 0xac, 0x13, 0xc4, 0x25, 0xf0, 0x95, 0x04, 0xa0, + 0xcb, 0x8f, 0xbe, 0xbf, 0x6d, 0x18, 0x26, 0xc5, 0xec, 0x34, 0xfc, 0x80, 0x3a, 0x13, 0x04, 0xe4, + 0xfb, 0x92, 0x8f, 0x53, 0x28, 0xf7, 0x0d, 0x6a, 0x8f, 0xc2, 0x5b, 0x48, 0x2b, 0xa0, 0x0c, 0xd7, + 0xf0, 0x67, 0x00, 0xd8, 0x02, 0xf3, 0xc8, 0x14, 0xcf, 0x36, 0xbf, 0x06, 0xf8, 0xee, 0x3b, 0xa6, + 0xf1, 0x5c, 0x1d, 0x84, 0x85, 0x05, 0x05, 0x10, 0x28, 0x02, 0xb7, 0x7a, 0x1f, 0xac, 0xe4, 0xc4, + 0x09, 0x6f, 0x80, 0xe2, 0x29, 0x19, 0x79, 0x47, 0x85, 0xd8, 0x4f, 0xb8, 0x04, 0xca, 0x43, 0xac, + 0xb9, 0xc4, 0x7b, 0x93, 0xc8, 0xfb, 0xb8, 0x53, 0xf8, 0x56, 0x6a, 0xfe, 0xa1, 0x1c, 0xcd, 0x14, + 0x56, 0x6f, 0xe0, 0x06, 0x6b, 0x0f, 0x96, 0xa6, 0x2a, 0xd8, 0xe1, 0x18, 0xe5, 0xf6, 0x07, 0x5e, + 0x6b, 0xf0, 0xd6, 0x50, 0x20, 0x85, 0xbf, 0x00, 0x15, 0x87, 0x68, 0x44, 0xa1, 0xa6, 0x2d, 0x4a, + 0xdc, 0x57, 0x13, 0xe6, 0x14, 0xee, 0x11, 0xad, 0x2b, 0x4c, 0x3d, 0x78, 0xff, 0x0b, 0x05, 0x90, + 0xf0, 0x31, 0xa8, 0x50, 0xa2, 0x5b, 0x1a, 0xa6, 0x44, 0x9c, 0x5e, 0x2c, 0xaf, 0x58, 0xed, 0x60, + 0x60, 0x87, 0x66, 0xff, 0x48, 0xa8, 0xf1, 0xea, 0x19, 0xe4, 0xa9, 0xbf, 0x8a, 0x02, 0x18, 0xf8, + 0x53, 0x50, 0x71, 0x28, 0xeb, 0xea, 0x83, 0x11, 0xaf, 0x28, 0x17, 0xb5, 0x95, 0x68, 0x1d, 0xf5, + 0x4c, 0x42, 0x68, 0x7f, 0x05, 0x05, 0x70, 0x70, 0x1b, 0xcc, 0xeb, 0xaa, 0x81, 0x08, 0xee, 0x8f, + 0xba, 0x44, 0x31, 0x8d, 0xbe, 0xc3, 0x4b, 0x51, 0xb9, 0xbd, 0x22, 0x8c, 0xe6, 0xf7, 0xe3, 0x62, + 0x94, 0xd4, 0x87, 0x7b, 0x60, 0xc9, 0x6f, 0xbb, 0x0f, 0x55, 0x87, 0x9a, 0xf6, 0x68, 0x4f, 0xd5, + 0x55, 0xca, 0x0b, 0x54, 0xb9, 0x5d, 0x1f, 0x9f, 0xaf, 0x2d, 0xa1, 0x0c, 0x39, 0xca, 0xb4, 0x62, + 0xb5, 0xd3, 0xc2, 0xae, 0x43, 0xfa, 0xbc, 0xe0, 0x54, 0xc2, 0xda, 0x79, 0xc8, 0x57, 0x91, 0x90, + 0xc2, 0x9f, 0xc4, 0xd2, 0xb4, 0x72, 0xb5, 0x34, 0xad, 0xe5, 0xa7, 0x28, 0x3c, 0x06, 0x2b, 0x96, + 0x6d, 0x0e, 0x6c, 0xe2, 0x38, 0x3b, 0x04, 0xf7, 0x35, 0xd5, 0x20, 0xfe, 0xc9, 0x54, 0xf9, 0x8e, + 0x3e, 0x1a, 0x9f, 0xaf, 0xad, 0x1c, 0x66, 0xab, 0xa0, 0x3c, 0xdb, 0xe6, 0x5f, 0x4a, 0xe0, 0x46, + 0xb2, 0xc7, 0xc1, 0x47, 0x00, 0x9a, 0x3d, 0x87, 0xd8, 0x43, 0xd2, 0x7f, 0xe0, 0x11, 0x37, 0xc6, + 0x6e, 0x24, 0xce, 0x6e, 0x82, 0x77, 0x7b, 0x90, 0xd2, 0x40, 0x19, 0x56, 0x1e, 0x3f, 0x12, 0x0f, + 0xa0, 0xc0, 0x03, 0x8d, 0xf0, 0xa3, 0xd4, 0x23, 0xd8, 0x06, 0xf3, 0xe2, 0xed, 0xfb, 0x42, 0x9e, + 0xac, 0x91, 0x7b, 0x3f, 0x8e, 0x8b, 0x51, 0x52, 0x1f, 0x3e, 0x00, 0x0b, 0x78, 0x88, 0x55, 0x0d, + 0xf7, 0x34, 0x12, 0x80, 0x94, 0x38, 0xc8, 0x87, 0x02, 0x64, 0x61, 0x3b, 0xa9, 0x80, 0xd2, 0x36, + 0x70, 0x1f, 0x2c, 0xba, 0x46, 0x1a, 0xca, 0xcb, 0xc3, 0x8f, 0x04, 0xd4, 0xe2, 0x71, 0x5a, 0x05, + 0x65, 0xd9, 0xc1, 0x67, 0x00, 0x28, 0x7e, 0x63, 0x76, 0xea, 0xd3, 0xbc, 0x92, 0x7e, 0x31, 0xc1, + 0x7b, 0x09, 0xba, 0x79, 0x58, 0xc5, 0x82, 0x25, 0x07, 0x45, 0x30, 0xe1, 0x5d, 0x30, 0x67, 0xb3, + 0x17, 0x10, 0x84, 0x3a, 0xc3, 0x43, 0xfd, 0x8e, 0x30, 0x9b, 0x43, 0x51, 0x21, 0x8a, 0xeb, 0xc2, + 0x3b, 0xa0, 0xa6, 0x98, 0x9a, 0xc6, 0x33, 0xbf, 0x63, 0xba, 0x06, 0xe5, 0xc9, 0x5b, 0x6c, 0x43, + 0xd6, 0x99, 0x3b, 0x31, 0x09, 0x4a, 0x68, 0x36, 0xff, 0x2c, 0x45, 0xdb, 0x8c, 0xff, 0x9c, 0xe1, + 0x9d, 0x18, 0xf5, 0xf9, 0x24, 0x41, 0x7d, 0x96, 0xd3, 0x16, 0x11, 0xe6, 0xa3, 0x82, 0x39, 0x96, + 0xfc, 0xaa, 0x31, 0xf0, 0x2e, 0x5c, 0x94, 0xc4, 0x2f, 0x2f, 0x7c, 0x4a, 0x81, 0x76, 0xa4, 0x31, + 0x2e, 0xf0, 0x9d, 0x47, 0x85, 0x28, 0x8e, 0xdc, 0xbc, 0x07, 0x6a, 0xf1, 0x77, 0x18, 0xe3, 0xf4, + 0xd2, 0xa5, 0x9c, 0xfe, 0x9d, 0x04, 0x56, 0x72, 0xbc, 0x43, 0x0d, 0xd4, 0x74, 0xfc, 0x32, 0x92, + 0x23, 0x97, 0x72, 0x63, 0x36, 0x35, 0xc9, 0xde, 0xd4, 0x24, 0xef, 0x1a, 0xf4, 0xc0, 0xee, 0x52, + 0x5b, 0x35, 0x06, 0xde, 0x3d, 0xec, 0xc7, 0xb0, 0x50, 0x02, 0x1b, 0x3e, 0x05, 0x15, 0x1d, 0xbf, + 0xec, 0xba, 0xf6, 0x20, 0xeb, 0xbc, 0x26, 0xf3, 0xc3, 0xfb, 0xc7, 0xbe, 0x40, 0x41, 0x01, 0x5e, + 0xf3, 0x00, 0xac, 0xc7, 0x36, 0xc9, 0x4a, 0x05, 0x79, 0xee, 0x6a, 0x5d, 0x12, 0x5e, 0xf8, 0xe7, + 0xa0, 0x6a, 0x61, 0x9b, 0xaa, 0x41, 0xb9, 0x28, 0xb7, 0xe7, 0xc6, 0xe7, 0x6b, 0xd5, 0x43, 0x7f, + 0x11, 0x85, 0xf2, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0x2a, 0x58, 0x23, 0xd7, 0x30, 0x3a, 0xec, 0xc4, + 0x46, 0x87, 0x66, 0x6e, 0x12, 0xf1, 0x78, 0x72, 0xa7, 0x86, 0xbd, 0xc4, 0xd4, 0xf0, 0xf1, 0x25, + 0x38, 0x17, 0x0f, 0x0c, 0xb7, 0x41, 0x35, 0x70, 0x17, 0xab, 0x92, 0xd2, 0x65, 0x55, 0xb2, 0xf9, + 0xfb, 0x02, 0x98, 0x8d, 0xb8, 0xb8, 0x9a, 0x35, 0x3b, 0xee, 0x08, 0xd1, 0x60, 0x65, 0x68, 0x6b, + 0x92, 0x8d, 0xc8, 0x3e, 0xa9, 0xf0, 0xf8, 0x5b, 0xd8, 0xbd, 0xd3, 0x5c, 0xe3, 0x1e, 0xa8, 0x51, + 0x6c, 0x0f, 0x08, 0xf5, 0x65, 0xfc, 0xc0, 0xaa, 0x21, 0xd3, 0x3f, 0x8a, 0x49, 0x51, 0x42, 0x7b, + 0xf5, 0x2e, 0x98, 0x8b, 0x39, 0xbb, 0x12, 0x09, 0x7b, 0xc5, 0x0e, 0x27, 0x4c, 0xce, 0x6b, 0xc8, + 0xae, 0x47, 0xb1, 0xec, 0xda, 0xc8, 0x3f, 0xcc, 0xc8, 0x93, 0xc9, 0xcb, 0x31, 0x94, 0xc8, 0xb1, + 0xcf, 0x26, 0x42, 0xbb, 0x38, 0xd3, 0xfe, 0x24, 0x81, 0xf9, 0x88, 0xf6, 0x35, 0x4c, 0x30, 0xbb, + 0xf1, 0x09, 0xe6, 0xe3, 0x49, 0x36, 0x91, 0x33, 0xc2, 0xfc, 0xb5, 0x1c, 0x0b, 0xfe, 0xff, 0x9e, + 0x54, 0xff, 0x0a, 0x2c, 0x0d, 0x4d, 0xcd, 0xd5, 0x49, 0x47, 0xc3, 0xaa, 0xee, 0x2b, 0x30, 0x06, + 0x53, 0x4c, 0xfe, 0x51, 0x11, 0xc0, 0x13, 0xdb, 0x51, 0x1d, 0x4a, 0x0c, 0xfa, 0x24, 0xb4, 0x6c, + 0x7f, 0x57, 0x38, 0x59, 0x7a, 0x92, 0x01, 0x87, 0x32, 0x9d, 0xc0, 0x1f, 0x80, 0x59, 0x46, 0xe0, + 0x54, 0x85, 0xb0, 0x59, 0x50, 0x4c, 0xff, 0x8b, 0x02, 0x68, 0xb6, 0x1b, 0x8a, 0x50, 0x54, 0x0f, + 0x9e, 0x80, 0x45, 0xcb, 0xec, 0xef, 0x63, 0x03, 0x0f, 0x08, 0x6b, 0x7b, 0x87, 0xfc, 0x0f, 0x4d, + 0xce, 0xb4, 0xab, 0xed, 0x6f, 0x7c, 0xa6, 0x74, 0x98, 0x56, 0x79, 0xcf, 0x28, 0x6b, 0x7a, 0x99, + 0xf3, 0x80, 0x2c, 0x48, 0x68, 0x83, 0x9a, 0x2b, 0xda, 0x8f, 0x18, 0x3c, 0xbc, 0xf9, 0x7f, 0x6b, + 0x92, 0x0c, 0x3b, 0x8e, 0x59, 0x86, 0xd5, 0x28, 0xbe, 0x8e, 0x12, 0x1e, 0x72, 0x07, 0x89, 0xca, + 0x7f, 0x33, 0x48, 0x34, 0x7f, 0x53, 0x02, 0x0b, 0xa9, 0xa7, 0x0b, 0x7f, 0x74, 0x01, 0xe3, 0x5e, + 0xfe, 0x9f, 0xb1, 0xed, 0x14, 0x61, 0x2c, 0x5e, 0x81, 0x30, 0x6e, 0x83, 0x79, 0xc5, 0xb5, 0x6d, + 0x36, 0xeb, 0xc7, 0x59, 0x76, 0x40, 0xd5, 0x3b, 0x71, 0x31, 0x4a, 0xea, 0x67, 0xb1, 0xfd, 0xf2, + 0x15, 0xd9, 0x7e, 0x34, 0x0a, 0xc1, 0xd8, 0xbc, 0xb4, 0x4b, 0x47, 0x21, 0x88, 0x5b, 0x52, 0x9f, + 0x75, 0x2b, 0x0f, 0x35, 0x40, 0x98, 0x89, 0x77, 0xab, 0xe3, 0x98, 0x14, 0x25, 0xb4, 0x33, 0x98, + 0x73, 0x75, 0x62, 0xe6, 0xfc, 0x37, 0x09, 0x7c, 0x98, 0x9b, 0xa1, 0x70, 0x3b, 0x46, 0xa0, 0x37, + 0x13, 0x04, 0xfa, 0x7b, 0xb9, 0x86, 0x11, 0x1e, 0x6d, 0x67, 0xf3, 0xe8, 0xdb, 0x93, 0xf1, 0xe8, + 0x0c, 0x92, 0x77, 0x39, 0xa1, 0x6e, 0x6f, 0x9e, 0xbd, 0x6d, 0x4c, 0xbd, 0x7e, 0xdb, 0x98, 0x7a, + 0xf3, 0xb6, 0x31, 0xf5, 0xeb, 0x71, 0x43, 0x3a, 0x1b, 0x37, 0xa4, 0xd7, 0xe3, 0x86, 0xf4, 0x66, + 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0xbf, 0x7b, 0xd7, 0x98, 0x7a, 0x3a, 0x23, 0x3c, 0xfe, 0x27, + 0x00, 0x00, 0xff, 0xff, 0x72, 0x04, 0xd9, 0xa7, 0xb9, 0x19, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/apps/v1beta1/generated.proto b/staging/src/k8s.io/api/apps/v1beta1/generated.proto index 476571e389a..f1465728650 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta1/generated.proto @@ -426,6 +426,12 @@ message StatefulSetStatus { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) optional string updateRevision = 7; + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + optional int64 collisionCount = 9; } // StatefulSetUpdateStrategy indicates the strategy that the StatefulSet diff --git a/staging/src/k8s.io/api/apps/v1beta1/types.generated.go b/staging/src/k8s.io/api/apps/v1beta1/types.generated.go index 52bd1fe32a0..faf2b8e711f 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types.generated.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types.generated.go @@ -2419,7 +2419,7 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { } else { yysep2 := !z.EncBinary() yy2arr2 := z.EncBasicHandle().StructToArray - var yyq2 [7]bool + var yyq2 [8]bool _, _, _ = yysep2, yyq2, yy2arr2 const yyr2 bool = false yyq2[0] = x.ObservedGeneration != nil @@ -2428,9 +2428,10 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { yyq2[4] = x.UpdatedReplicas != 0 yyq2[5] = x.CurrentRevision != "" yyq2[6] = x.UpdateRevision != "" + yyq2[7] = x.CollisionCount != nil var yynn2 int if yyr2 || yy2arr2 { - r.EncodeArrayStart(7) + r.EncodeArrayStart(8) } else { yynn2 = 1 for _, b := range yyq2 { @@ -2620,6 +2621,41 @@ func (x *StatefulSetStatus) CodecEncodeSelf(e *codec1978.Encoder) { } } } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[7] { + if x.CollisionCount == nil { + r.EncodeNil() + } else { + yy27 := *x.CollisionCount + yym28 := z.EncBinary() + _ = yym28 + if false { + } else { + r.EncodeInt(int64(yy27)) + } + } + } else { + r.EncodeNil() + } + } else { + if yyq2[7] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("collisionCount")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.CollisionCount == nil { + r.EncodeNil() + } else { + yy29 := *x.CollisionCount + yym30 := z.EncBinary() + _ = yym30 + if false { + } else { + r.EncodeInt(int64(yy29)) + } + } + } + } if yyr2 || yy2arr2 { z.EncSendContainerState(codecSelfer_containerArrayEnd1234) } else { @@ -2769,6 +2805,22 @@ func (x *StatefulSetStatus) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) *((*string)(yyv16)) = r.DecodeString() } } + case "collisionCount": + if r.TryDecodeAsNil() { + if x.CollisionCount != nil { + x.CollisionCount = nil + } + } else { + if x.CollisionCount == nil { + x.CollisionCount = new(int64) + } + yym19 := z.DecBinary() + _ = yym19 + if false { + } else { + *((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64)) + } + } default: z.DecStructFieldNotFound(-1, yys3) } // end switch yys3 @@ -2780,16 +2832,16 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder var h codecSelfer1234 z, r := codec1978.GenHelperDecoder(d) _, _, _ = h, z, r - var yyj18 int - var yyb18 bool - var yyhl18 bool = l >= 0 - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + var yyj20 int + var yyb20 bool + var yyhl20 bool = l >= 0 + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2802,20 +2854,20 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if x.ObservedGeneration == nil { x.ObservedGeneration = new(int64) } - yym20 := z.DecBinary() - _ = yym20 + yym22 := z.DecBinary() + _ = yym22 if false { } else { *((*int64)(x.ObservedGeneration)) = int64(r.DecodeInt(64)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2823,29 +2875,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if r.TryDecodeAsNil() { x.Replicas = 0 } else { - yyv21 := &x.Replicas - yym22 := z.DecBinary() - _ = yym22 - if false { - } else { - *((*int32)(yyv21)) = int32(r.DecodeInt(32)) - } - } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l - } else { - yyb18 = r.CheckBreak() - } - if yyb18 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.ReadyReplicas = 0 - } else { - yyv23 := &x.ReadyReplicas + yyv23 := &x.Replicas yym24 := z.DecBinary() _ = yym24 if false { @@ -2853,21 +2883,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv23)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.CurrentReplicas = 0 + x.ReadyReplicas = 0 } else { - yyv25 := &x.CurrentReplicas + yyv25 := &x.ReadyReplicas yym26 := z.DecBinary() _ = yym26 if false { @@ -2875,21 +2905,21 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv25)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } z.DecSendContainerState(codecSelfer_containerArrayElem1234) if r.TryDecodeAsNil() { - x.UpdatedReplicas = 0 + x.CurrentReplicas = 0 } else { - yyv27 := &x.UpdatedReplicas + yyv27 := &x.CurrentReplicas yym28 := z.DecBinary() _ = yym28 if false { @@ -2897,13 +2927,35 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*int32)(yyv27)) = int32(r.DecodeInt(32)) } } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l } else { - yyb18 = r.CheckBreak() + yyb20 = r.CheckBreak() } - if yyb18 { + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.UpdatedReplicas = 0 + } else { + yyv29 := &x.UpdatedReplicas + yym30 := z.DecBinary() + _ = yym30 + if false { + } else { + *((*int32)(yyv29)) = int32(r.DecodeInt(32)) + } + } + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { z.DecSendContainerState(codecSelfer_containerArrayEnd1234) return } @@ -2911,29 +2963,7 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder if r.TryDecodeAsNil() { x.CurrentRevision = "" } else { - yyv29 := &x.CurrentRevision - yym30 := z.DecBinary() - _ = yym30 - if false { - } else { - *((*string)(yyv29)) = r.DecodeString() - } - } - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l - } else { - yyb18 = r.CheckBreak() - } - if yyb18 { - z.DecSendContainerState(codecSelfer_containerArrayEnd1234) - return - } - z.DecSendContainerState(codecSelfer_containerArrayElem1234) - if r.TryDecodeAsNil() { - x.UpdateRevision = "" - } else { - yyv31 := &x.UpdateRevision + yyv31 := &x.CurrentRevision yym32 := z.DecBinary() _ = yym32 if false { @@ -2941,18 +2971,66 @@ func (x *StatefulSetStatus) codecDecodeSelfFromArray(l int, d *codec1978.Decoder *((*string)(yyv31)) = r.DecodeString() } } - for { - yyj18++ - if yyhl18 { - yyb18 = yyj18 > l + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.UpdateRevision = "" + } else { + yyv33 := &x.UpdateRevision + yym34 := z.DecBinary() + _ = yym34 + if false { } else { - yyb18 = r.CheckBreak() + *((*string)(yyv33)) = r.DecodeString() } - if yyb18 { + } + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + if x.CollisionCount != nil { + x.CollisionCount = nil + } + } else { + if x.CollisionCount == nil { + x.CollisionCount = new(int64) + } + yym36 := z.DecBinary() + _ = yym36 + if false { + } else { + *((*int64)(x.CollisionCount)) = int64(r.DecodeInt(64)) + } + } + for { + yyj20++ + if yyhl20 { + yyb20 = yyj20 > l + } else { + yyb20 = r.CheckBreak() + } + if yyb20 { break } z.DecSendContainerState(codecSelfer_containerArrayElem1234) - z.DecStructFieldNotFound(yyj18-1, "") + z.DecStructFieldNotFound(yyj20-1, "") } z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } @@ -7976,7 +8054,7 @@ func (x codecSelfer1234) decSliceStatefulSet(v *[]StatefulSet, d *codec1978.Deco yyrg1 := len(yyv1) > 0 yyv21 := yyv1 - yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1008) + yyrl1, yyrt1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1016) if yyrt1 { if yyrl1 <= cap(yyv1) { yyv1 = yyv1[:yyrl1] diff --git a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go index 00d1a617fcc..40fda1b6fee 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta1/types_swagger_doc_generated.go @@ -238,6 +238,7 @@ var map_StatefulSetStatus = map[string]string{ "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go index 0531f834e73..4ee37fe9636 100644 --- a/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta1/zz_generated.deepcopy.go @@ -689,6 +689,15 @@ func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { **out = **in } } + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return } diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go index a6550b091a5..88c7ef976d7 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.pb.go @@ -1422,6 +1422,11 @@ func (m *StatefulSetStatus) MarshalTo(dAtA []byte) (int, error) { i++ i = encodeVarintGenerated(dAtA, i, uint64(len(m.UpdateRevision))) i += copy(dAtA[i:], m.UpdateRevision) + if m.CollisionCount != nil { + dAtA[i] = 0x48 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(*m.CollisionCount)) + } return i, nil } @@ -1901,6 +1906,9 @@ func (m *StatefulSetStatus) Size() (n int) { n += 1 + l + sovGenerated(uint64(l)) l = len(m.UpdateRevision) n += 1 + l + sovGenerated(uint64(l)) + if m.CollisionCount != nil { + n += 1 + sovGenerated(uint64(*m.CollisionCount)) + } return n } @@ -2304,6 +2312,7 @@ func (this *StatefulSetStatus) String() string { `UpdatedReplicas:` + fmt.Sprintf("%v", this.UpdatedReplicas) + `,`, `CurrentRevision:` + fmt.Sprintf("%v", this.CurrentRevision) + `,`, `UpdateRevision:` + fmt.Sprintf("%v", this.UpdateRevision) + `,`, + `CollisionCount:` + valueToStringGenerated(this.CollisionCount) + `,`, `}`, }, "") return s @@ -6658,6 +6667,26 @@ func (m *StatefulSetStatus) Unmarshal(dAtA []byte) error { } m.UpdateRevision = string(dAtA[iNdEx:postIndex]) iNdEx = postIndex + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CollisionCount", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + m.CollisionCount = &v default: iNdEx = preIndex skippy, err := skipGenerated(dAtA[iNdEx:]) @@ -6901,142 +6930,142 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 2178 bytes of a gzipped FileDescriptorProto + // 2180 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x5a, 0x5b, 0x6f, 0x1b, 0xc7, 0x15, 0xd6, 0xf2, 0x22, 0x91, 0xa3, 0x88, 0xb2, 0x47, 0xaa, 0xc4, 0xc8, 0x2d, 0x25, 0x30, 0x81, 0x2d, 0xc7, 0xf1, 0xd2, 0x56, 0x2e, 0x48, 0x6c, 0x20, 0xad, 0x28, 0xa5, 0xb6, 0x03, 0x49, 0x56, 0x86, 0x92, 0x8b, 0xa6, 0x2d, 0xe0, 0x21, 0x39, 0xa6, 0x36, 0xda, 0x1b, 0xf6, 0x42, 0x84, 0xe8, - 0x4b, 0x9f, 0x0a, 0x14, 0x28, 0x90, 0x3c, 0xf7, 0x4f, 0xb4, 0x4f, 0x45, 0xd1, 0xbe, 0x15, 0x45, - 0xe1, 0x97, 0x02, 0x41, 0xfb, 0xd0, 0x3c, 0x09, 0x35, 0xf3, 0xd8, 0xfe, 0x82, 0x00, 0x05, 0x8a, - 0x99, 0x9d, 0xbd, 0xcc, 0x5e, 0xa4, 0xa5, 0x6a, 0xab, 0x85, 0xdf, 0xc4, 0x39, 0xdf, 0xf9, 0xe6, - 0xec, 0xcc, 0x99, 0x73, 0xbe, 0x9d, 0x15, 0xf8, 0xde, 0xf1, 0x7b, 0xb6, 0xac, 0x18, 0xad, 0x63, - 0xb7, 0x4b, 0x2c, 0x9d, 0x38, 0xc4, 0x6e, 0x0d, 0x89, 0xde, 0x37, 0xac, 0x16, 0x37, 0x60, 0x53, - 0x69, 0x61, 0xd3, 0xb4, 0x5b, 0xc3, 0xdb, 0x5d, 0xe2, 0xe0, 0x8d, 0xd6, 0x80, 0xe8, 0xc4, 0xc2, - 0x0e, 0xe9, 0xcb, 0xa6, 0x65, 0x38, 0x06, 0x5c, 0xf6, 0x80, 0x32, 0x36, 0x15, 0x99, 0x02, 0x65, - 0x0e, 0x5c, 0xb9, 0x39, 0x50, 0x9c, 0x23, 0xb7, 0x2b, 0xf7, 0x0c, 0xad, 0x35, 0x30, 0x06, 0x46, - 0x8b, 0xe1, 0xbb, 0xee, 0x13, 0xf6, 0x8b, 0xfd, 0x60, 0x7f, 0x79, 0x3c, 0x2b, 0xcd, 0xc8, 0x84, - 0x3d, 0xc3, 0x22, 0xad, 0xe1, 0xed, 0xf8, 0x5c, 0x2b, 0xd7, 0x23, 0x18, 0xd3, 0x50, 0x95, 0xde, - 0x88, 0x87, 0x95, 0x84, 0xbe, 0x1d, 0x42, 0x35, 0xdc, 0x3b, 0x52, 0x74, 0x62, 0x8d, 0x5a, 0xe6, - 0xf1, 0x80, 0x0e, 0xd8, 0x2d, 0x8d, 0x38, 0x38, 0x6d, 0x82, 0x56, 0x96, 0x97, 0xe5, 0xea, 0x8e, - 0xa2, 0x91, 0x84, 0xc3, 0xbb, 0x67, 0x39, 0xd8, 0xbd, 0x23, 0xa2, 0xe1, 0x84, 0xdf, 0x5b, 0x59, - 0x7e, 0xae, 0xa3, 0xa8, 0x2d, 0x45, 0x77, 0x6c, 0xc7, 0x8a, 0x3b, 0x35, 0x7f, 0x51, 0x00, 0xd5, - 0x6d, 0x4c, 0x34, 0x43, 0xef, 0x10, 0x07, 0x3e, 0x06, 0x15, 0xfa, 0x18, 0x7d, 0xec, 0xe0, 0xba, - 0xb4, 0x26, 0xad, 0xcf, 0x6e, 0xdc, 0x92, 0xc3, 0xbd, 0x08, 0x58, 0x65, 0xf3, 0x78, 0x40, 0x07, - 0x6c, 0x99, 0xa2, 0xe5, 0xe1, 0x6d, 0xf9, 0x61, 0xf7, 0x53, 0xd2, 0x73, 0x76, 0x89, 0x83, 0xdb, - 0xf0, 0xe9, 0xc9, 0xea, 0xd4, 0xf8, 0x64, 0x15, 0x84, 0x63, 0x28, 0x60, 0x85, 0xf7, 0x41, 0xc9, - 0x36, 0x49, 0xaf, 0x5e, 0x60, 0xec, 0x57, 0xe5, 0x8c, 0x9d, 0x96, 0x83, 0x98, 0x3a, 0x26, 0xe9, - 0xb5, 0x5f, 0xe1, 0x9c, 0x25, 0xfa, 0x0b, 0x31, 0x06, 0xb8, 0x0f, 0xa6, 0x6d, 0x07, 0x3b, 0xae, - 0x5d, 0x2f, 0x32, 0xae, 0xf5, 0x1c, 0x5c, 0x0c, 0xdf, 0xae, 0x71, 0xb6, 0x69, 0xef, 0x37, 0xe2, - 0x3c, 0xcd, 0xdf, 0x4a, 0x60, 0x2e, 0xc0, 0xee, 0x28, 0xb6, 0x03, 0x7f, 0x9c, 0x58, 0x0f, 0x39, - 0xdf, 0x7a, 0x50, 0x6f, 0xb6, 0x1a, 0x97, 0xf8, 0x5c, 0x15, 0x7f, 0x24, 0xb2, 0x16, 0xf7, 0x40, - 0x59, 0x71, 0x88, 0x66, 0xd7, 0x0b, 0x6b, 0xc5, 0xf5, 0xd9, 0x8d, 0xe6, 0xd9, 0x0f, 0xd0, 0x9e, - 0xe3, 0x74, 0xe5, 0x07, 0xd4, 0x11, 0x79, 0xfe, 0xcd, 0x2f, 0x4a, 0x91, 0xc0, 0xe9, 0x12, 0xc1, - 0x9f, 0x80, 0x8a, 0x4d, 0x54, 0xd2, 0x73, 0x0c, 0x8b, 0x07, 0xfe, 0x56, 0xce, 0xc0, 0x71, 0x97, - 0xa8, 0x1d, 0xee, 0xda, 0x7e, 0x85, 0x46, 0xee, 0xff, 0x42, 0x01, 0x25, 0xfc, 0x18, 0x54, 0x1c, - 0xa2, 0x99, 0x2a, 0x76, 0x08, 0xdf, 0xc9, 0xd7, 0xa2, 0xc1, 0xd3, 0xb3, 0x46, 0xc9, 0xf6, 0x8d, - 0xfe, 0x01, 0x87, 0xb1, 0x6d, 0x0c, 0x16, 0xc3, 0x1f, 0x45, 0x01, 0x0d, 0x34, 0x41, 0xcd, 0x35, - 0xfb, 0x14, 0xe9, 0xd0, 0xfc, 0x1c, 0x8c, 0xf8, 0xb6, 0xde, 0x3a, 0x7b, 0x55, 0x0e, 0x05, 0xbf, - 0xf6, 0x12, 0x9f, 0xa5, 0x26, 0x8e, 0xa3, 0x18, 0x3f, 0xdc, 0x04, 0xf3, 0x9a, 0xa2, 0x23, 0x82, - 0xfb, 0xa3, 0x0e, 0xe9, 0x19, 0x7a, 0xdf, 0xae, 0x97, 0xd6, 0xa4, 0xf5, 0x72, 0x7b, 0x99, 0x13, - 0xcc, 0xef, 0x8a, 0x66, 0x14, 0xc7, 0xc3, 0x8f, 0x00, 0xf4, 0x1f, 0xe0, 0x9e, 0x77, 0xb0, 0x14, - 0x43, 0xaf, 0x97, 0xd7, 0xa4, 0xf5, 0x62, 0x7b, 0x85, 0xb3, 0xc0, 0x83, 0x04, 0x02, 0xa5, 0x78, - 0xc1, 0x1d, 0xb0, 0x68, 0x91, 0xa1, 0x62, 0x2b, 0x86, 0x7e, 0x5f, 0xb1, 0x1d, 0xc3, 0x1a, 0xed, - 0x28, 0x9a, 0xe2, 0xd4, 0xa7, 0x59, 0x4c, 0xf5, 0xf1, 0xc9, 0xea, 0x22, 0x4a, 0xb1, 0xa3, 0x54, - 0xaf, 0xe6, 0x6f, 0xca, 0x60, 0x3e, 0x96, 0xf7, 0xf0, 0x11, 0x58, 0xea, 0xb9, 0x96, 0x45, 0x74, - 0x67, 0xcf, 0xd5, 0xba, 0xc4, 0xea, 0xf4, 0x8e, 0x48, 0xdf, 0x55, 0x49, 0x9f, 0xa5, 0x48, 0xb9, - 0xdd, 0xe0, 0x11, 0x2f, 0x6d, 0xa5, 0xa2, 0x50, 0x86, 0x37, 0x5d, 0x05, 0x9d, 0x0d, 0xed, 0x2a, - 0xb6, 0x1d, 0x70, 0x16, 0x18, 0x67, 0xb0, 0x0a, 0x7b, 0x09, 0x04, 0x4a, 0xf1, 0xa2, 0x31, 0xf6, - 0x89, 0xad, 0x58, 0xa4, 0x1f, 0x8f, 0xb1, 0x28, 0xc6, 0xb8, 0x9d, 0x8a, 0x42, 0x19, 0xde, 0xf0, - 0x1d, 0x30, 0xeb, 0xcd, 0xc6, 0xf6, 0x8f, 0x6f, 0xf4, 0x02, 0x27, 0x9b, 0xdd, 0x0b, 0x4d, 0x28, - 0x8a, 0xa3, 0x8f, 0x66, 0x74, 0x6d, 0x62, 0x0d, 0x49, 0x3f, 0x7b, 0x83, 0x1f, 0x26, 0x10, 0x28, - 0xc5, 0x8b, 0x3e, 0x9a, 0x97, 0x81, 0x89, 0x47, 0x9b, 0x16, 0x1f, 0xed, 0x30, 0x15, 0x85, 0x32, - 0xbc, 0x69, 0x1e, 0x7b, 0x21, 0x6f, 0x0e, 0xb1, 0xa2, 0xe2, 0xae, 0x4a, 0xea, 0x33, 0x62, 0x1e, - 0xef, 0x89, 0x66, 0x14, 0xc7, 0xc3, 0x7b, 0xe0, 0xb2, 0x37, 0x74, 0xa8, 0xe3, 0x80, 0xa4, 0xc2, - 0x48, 0x5e, 0xe5, 0x24, 0x97, 0xf7, 0xe2, 0x00, 0x94, 0xf4, 0x81, 0x77, 0x40, 0xad, 0x67, 0xa8, - 0x2a, 0xcb, 0xc7, 0x2d, 0xc3, 0xd5, 0x9d, 0x7a, 0x95, 0xad, 0x15, 0xa4, 0xe7, 0x71, 0x4b, 0xb0, - 0xa0, 0x18, 0xb2, 0xf9, 0x27, 0x09, 0x2c, 0x67, 0x9c, 0x69, 0xf8, 0x5d, 0x50, 0x72, 0x46, 0x26, - 0x61, 0x89, 0x5a, 0x6d, 0xdf, 0xf0, 0xdb, 0xc1, 0xc1, 0xc8, 0x24, 0xdf, 0x9c, 0xac, 0x5e, 0xc9, - 0x70, 0xa3, 0x66, 0xc4, 0x1c, 0xe1, 0x11, 0x98, 0xb3, 0xe8, 0x74, 0xfa, 0xc0, 0x83, 0xf0, 0xb2, - 0xd5, 0xca, 0xac, 0x2e, 0x28, 0x8a, 0x0e, 0x0b, 0xf0, 0xe5, 0xf1, 0xc9, 0xea, 0x9c, 0x60, 0x43, - 0x22, 0x71, 0xf3, 0x97, 0x05, 0x00, 0xb6, 0x89, 0xa9, 0x1a, 0x23, 0x8d, 0xe8, 0x17, 0xd1, 0x52, - 0x1f, 0x08, 0x2d, 0xf5, 0x5a, 0x76, 0xbd, 0x0c, 0x82, 0xca, 0xec, 0xa9, 0x1f, 0xc7, 0x7a, 0xea, - 0xf5, 0x3c, 0x64, 0xa7, 0x37, 0xd5, 0xbf, 0x17, 0xc1, 0x42, 0x08, 0xde, 0x32, 0xf4, 0xbe, 0xc2, - 0x4e, 0xc3, 0x5d, 0x61, 0x47, 0xaf, 0xc5, 0x76, 0x74, 0x39, 0xc5, 0x25, 0xb2, 0x9b, 0x3b, 0x41, - 0x9c, 0x05, 0xe6, 0xfe, 0xb6, 0x38, 0xf9, 0x37, 0x27, 0xab, 0x29, 0xd2, 0x4f, 0x0e, 0x98, 0xc4, - 0x10, 0xe1, 0x55, 0x30, 0x6d, 0x11, 0x6c, 0x1b, 0x3a, 0x2b, 0x0b, 0xd5, 0xf0, 0x51, 0x10, 0x1b, - 0x45, 0xdc, 0x0a, 0xaf, 0x83, 0x19, 0x8d, 0xd8, 0x36, 0x1e, 0x10, 0x56, 0x01, 0xaa, 0xed, 0x79, - 0x0e, 0x9c, 0xd9, 0xf5, 0x86, 0x91, 0x6f, 0x87, 0x9f, 0x82, 0x9a, 0x8a, 0x6d, 0x9e, 0x8e, 0x07, - 0x8a, 0x46, 0xd8, 0x19, 0x9f, 0xdd, 0x78, 0x23, 0xdf, 0xde, 0x53, 0x8f, 0xb0, 0x8f, 0xed, 0x08, - 0x4c, 0x28, 0xc6, 0x0c, 0x87, 0x00, 0xd2, 0x91, 0x03, 0x0b, 0xeb, 0xb6, 0xb7, 0x50, 0x74, 0xbe, - 0x99, 0x89, 0xe7, 0x0b, 0xea, 0xd9, 0x4e, 0x82, 0x0d, 0xa5, 0xcc, 0xd0, 0xfc, 0x9d, 0x04, 0x6a, - 0xe1, 0x36, 0x5d, 0x80, 0x5e, 0xba, 0x2f, 0xea, 0xa5, 0xd7, 0x72, 0x24, 0x67, 0x86, 0x60, 0xfa, - 0x57, 0x01, 0xc0, 0x10, 0x44, 0x8f, 0x73, 0x17, 0xf7, 0x8e, 0xe1, 0x1a, 0x28, 0xe9, 0x58, 0xf3, - 0x73, 0x32, 0x38, 0x20, 0x7b, 0x58, 0x23, 0x88, 0x59, 0xe0, 0xe7, 0x12, 0x80, 0xbc, 0x0c, 0x6f, - 0xea, 0xba, 0xe1, 0xb0, 0xca, 0xee, 0x07, 0xb4, 0x95, 0x23, 0x20, 0x7f, 0x2e, 0xf9, 0x30, 0xc1, - 0xf2, 0xa1, 0xee, 0x58, 0xa3, 0x70, 0x17, 0x92, 0x00, 0x94, 0x32, 0x35, 0xfc, 0x11, 0x00, 0x16, - 0xe7, 0x3c, 0x30, 0xf8, 0xb1, 0xbd, 0x76, 0x6a, 0x55, 0xa3, 0xd0, 0x2d, 0x43, 0x7f, 0xa2, 0x0c, - 0xc2, 0xc2, 0x82, 0x02, 0x0a, 0x14, 0xa1, 0x5b, 0xf9, 0x10, 0x2c, 0x67, 0xc4, 0x09, 0x2f, 0x81, - 0xe2, 0x31, 0x19, 0x79, 0x4b, 0x85, 0xe8, 0x9f, 0x70, 0x11, 0x94, 0x87, 0x58, 0x75, 0xbd, 0xd2, - 0x5a, 0x45, 0xde, 0x8f, 0x3b, 0x85, 0xf7, 0x24, 0x2a, 0x46, 0x6a, 0x62, 0xf5, 0x81, 0xeb, 0xa0, - 0x62, 0x11, 0x53, 0x55, 0x7a, 0xd8, 0xe6, 0xea, 0x83, 0x69, 0x4d, 0xc4, 0xc7, 0x50, 0x60, 0x15, - 0xa4, 0x6c, 0xe1, 0xc5, 0x4a, 0xd9, 0xe2, 0xf3, 0x91, 0xb2, 0x3f, 0x04, 0x15, 0xdb, 0x17, 0xb1, - 0x25, 0x46, 0x79, 0x23, 0x57, 0x1d, 0xe5, 0xfa, 0x35, 0xa0, 0x0e, 0x94, 0x6b, 0x40, 0x97, 0xa6, - 0x59, 0xcb, 0x13, 0x6a, 0xd6, 0xe7, 0xaa, 0x33, 0x69, 0xed, 0x34, 0xb1, 0x6b, 0x93, 0x3e, 0x2b, - 0x38, 0x95, 0xb0, 0x76, 0xee, 0xb3, 0x51, 0xc4, 0xad, 0xf0, 0x07, 0x42, 0x9a, 0x56, 0x26, 0x4b, - 0xd3, 0x5a, 0x76, 0x8a, 0xc2, 0x43, 0xb0, 0x6c, 0x5a, 0xc6, 0xc0, 0x22, 0xb6, 0xbd, 0x4d, 0x70, - 0x5f, 0x55, 0x74, 0xe2, 0xaf, 0x4c, 0x95, 0x3d, 0xd1, 0x95, 0xf1, 0xc9, 0xea, 0xf2, 0x7e, 0x3a, - 0x04, 0x65, 0xf9, 0x36, 0xff, 0x58, 0x02, 0x97, 0xe2, 0x3d, 0x2e, 0x43, 0x0d, 0x4a, 0xe7, 0x52, - 0x83, 0x6f, 0x46, 0x0e, 0x80, 0x27, 0x95, 0x83, 0x7d, 0x4f, 0x39, 0x04, 0x9b, 0x60, 0x9e, 0x9f, - 0x7d, 0xdf, 0xc8, 0xf5, 0x70, 0xb0, 0xef, 0x87, 0xa2, 0x19, 0xc5, 0xf1, 0x54, 0xe3, 0x85, 0xd2, - 0xcd, 0x27, 0x29, 0x89, 0x1a, 0x6f, 0x33, 0x0e, 0x40, 0x49, 0x1f, 0xb8, 0x0b, 0x16, 0x5c, 0x3d, - 0x49, 0xe5, 0xe5, 0xe1, 0x15, 0x4e, 0xb5, 0x70, 0x98, 0x84, 0xa0, 0x34, 0x3f, 0xf8, 0x18, 0x80, - 0x9e, 0xdf, 0x98, 0xed, 0xfa, 0x34, 0xab, 0xa4, 0x6f, 0xe6, 0x38, 0x2f, 0x41, 0x37, 0x0f, 0xab, - 0x58, 0x30, 0x64, 0xa3, 0x08, 0x27, 0xbc, 0x0b, 0xe6, 0x2c, 0x26, 0xed, 0xfd, 0x50, 0x3d, 0x79, - 0xfc, 0x2d, 0xee, 0x36, 0x87, 0xa2, 0x46, 0x24, 0x62, 0x53, 0x14, 0x6d, 0x25, 0xb7, 0xa2, 0xfd, - 0x83, 0x14, 0x6d, 0x33, 0x81, 0x98, 0xbd, 0x23, 0x48, 0x9f, 0xab, 0x31, 0xe9, 0xb3, 0x94, 0xf4, - 0x88, 0x28, 0x1f, 0x25, 0x5d, 0xc7, 0xde, 0xca, 0xa9, 0x63, 0xc3, 0xc6, 0x98, 0x4f, 0xc8, 0xf2, - 0x65, 0xb8, 0x98, 0xbb, 0xa1, 0xbc, 0x42, 0x36, 0x0c, 0xea, 0x39, 0x08, 0xd9, 0x08, 0xd9, 0xe9, - 0x42, 0xf6, 0x9f, 0x05, 0xb0, 0x10, 0x82, 0x73, 0x0b, 0xd9, 0x14, 0x97, 0x17, 0x26, 0x64, 0xd3, - 0x95, 0x60, 0xf1, 0x45, 0x2b, 0xc1, 0x17, 0x20, 0xa0, 0x99, 0xb8, 0x0c, 0x97, 0xee, 0xff, 0x49, - 0x5c, 0x86, 0x51, 0x65, 0x88, 0xcb, 0x5f, 0x17, 0xa2, 0xa1, 0xbf, 0xf4, 0x6a, 0xe7, 0xbf, 0xbf, - 0x46, 0x6b, 0xfe, 0xb9, 0x08, 0x2e, 0xc5, 0xcf, 0xa1, 0xd0, 0x20, 0xa5, 0x33, 0x1b, 0xe4, 0x3e, - 0x58, 0x7c, 0xe2, 0xaa, 0xea, 0x88, 0x2d, 0x43, 0xa4, 0x4b, 0x7a, 0xad, 0xf5, 0xdb, 0xdc, 0x73, - 0xf1, 0xfb, 0x29, 0x18, 0x94, 0xea, 0x99, 0xd1, 0xec, 0x8b, 0xe7, 0x6a, 0xf6, 0x89, 0x0e, 0x54, - 0x9a, 0xa0, 0x03, 0xa5, 0x36, 0xee, 0xf2, 0x39, 0x1a, 0xf7, 0x64, 0x9d, 0x36, 0xa5, 0x70, 0x9d, - 0xd5, 0x69, 0x9b, 0x1f, 0x80, 0x9a, 0x28, 0xdd, 0xbc, 0x5d, 0xf4, 0x74, 0x23, 0x17, 0x4a, 0x91, - 0x5d, 0xf4, 0xc6, 0x51, 0x80, 0x68, 0xfe, 0x5c, 0x02, 0x4b, 0xe9, 0x17, 0x2f, 0x50, 0x05, 0x35, - 0x0d, 0x7f, 0x16, 0xbd, 0x9f, 0x3a, 0xab, 0x09, 0xb9, 0x8e, 0xa2, 0xca, 0xde, 0x67, 0x0f, 0xf9, - 0x81, 0xee, 0x3c, 0xb4, 0x3a, 0x8e, 0xa5, 0xe8, 0x03, 0xaf, 0x73, 0xef, 0x0a, 0x5c, 0x28, 0xc6, - 0xdd, 0xfc, 0x5a, 0x02, 0xcb, 0x19, 0x9d, 0xf3, 0x62, 0x23, 0x81, 0x9f, 0x80, 0x8a, 0x86, 0x3f, - 0xeb, 0xb8, 0xd6, 0x20, 0xad, 0xd7, 0xe7, 0x9b, 0x87, 0x55, 0x83, 0x5d, 0xce, 0x82, 0x02, 0xbe, - 0xe6, 0x43, 0xb0, 0x26, 0x3c, 0x24, 0x3d, 0x79, 0xe4, 0x89, 0xab, 0xb2, 0x43, 0xc8, 0xc5, 0xca, - 0x0d, 0x50, 0x35, 0xb1, 0xe5, 0x28, 0x81, 0xd4, 0x2d, 0xb7, 0xe7, 0xc6, 0x27, 0xab, 0xd5, 0x7d, - 0x7f, 0x10, 0x85, 0xf6, 0xe6, 0xbf, 0x25, 0x50, 0xee, 0xf4, 0xb0, 0x4a, 0x2e, 0x40, 0x2d, 0x6c, - 0x0b, 0x6a, 0x21, 0xfb, 0xe3, 0x09, 0x8b, 0x27, 0x53, 0x28, 0xec, 0xc4, 0x84, 0xc2, 0xeb, 0x67, - 0xf0, 0x9c, 0xae, 0x11, 0xde, 0x07, 0xd5, 0x60, 0xba, 0xc9, 0x0a, 0x58, 0xf3, 0x57, 0x05, 0x30, - 0x1b, 0x99, 0x62, 0xc2, 0xf2, 0xf7, 0x58, 0x68, 0x1b, 0xf4, 0x60, 0x6f, 0xe4, 0x79, 0x10, 0xd9, - 0x6f, 0x11, 0xde, 0xdd, 0x43, 0xf8, 0xe6, 0x99, 0xec, 0x1c, 0x1f, 0x80, 0x9a, 0x83, 0xad, 0x01, - 0x71, 0x7c, 0x1b, 0x5b, 0xb0, 0x6a, 0x78, 0x4b, 0x75, 0x20, 0x58, 0x51, 0x0c, 0xbd, 0x72, 0x17, - 0xcc, 0x09, 0x93, 0x4d, 0x74, 0x81, 0xf0, 0x39, 0x5d, 0x9c, 0x30, 0x39, 0x2f, 0x20, 0xbb, 0x3e, - 0x12, 0xb2, 0x2b, 0xfb, 0xdb, 0x62, 0xf4, 0xc8, 0x64, 0xe5, 0x18, 0x8a, 0xe5, 0xd8, 0x1b, 0xb9, - 0xd8, 0x4e, 0xcf, 0xb4, 0xdf, 0x4b, 0x60, 0x3e, 0x82, 0xbe, 0x00, 0x81, 0xf4, 0x40, 0x14, 0x48, - 0xaf, 0xe7, 0x79, 0x88, 0x0c, 0x85, 0xf4, 0x97, 0xb2, 0x10, 0xfc, 0x4b, 0x2f, 0x91, 0x7e, 0x0a, - 0x16, 0x87, 0x86, 0xea, 0x6a, 0x64, 0x4b, 0xc5, 0x8a, 0xe6, 0x03, 0xa8, 0x0a, 0x28, 0xc6, 0xdf, - 0x4d, 0x02, 0x7a, 0x62, 0xd9, 0x8a, 0xed, 0x10, 0xdd, 0x79, 0x14, 0x7a, 0x86, 0x3a, 0xe6, 0x51, - 0x0a, 0x1d, 0x4a, 0x9d, 0x04, 0xbe, 0x03, 0x66, 0xa9, 0x1e, 0x51, 0x7a, 0x64, 0x0f, 0x6b, 0xbe, - 0xf0, 0x0e, 0xbe, 0x7c, 0x75, 0x42, 0x13, 0x8a, 0xe2, 0xe0, 0x11, 0x58, 0x30, 0x8d, 0xfe, 0x2e, - 0xd6, 0xf1, 0x80, 0xd0, 0xb6, 0xb7, 0xcf, 0xfe, 0x37, 0x82, 0xdd, 0x12, 0x55, 0xdb, 0xef, 0xfa, - 0x6f, 0xf9, 0xfb, 0x49, 0x08, 0x7d, 0xe9, 0x49, 0x19, 0x66, 0x2f, 0x3d, 0x69, 0x94, 0xd0, 0x4a, - 0x7c, 0xf9, 0xf5, 0xee, 0xae, 0x37, 0xf2, 0x64, 0xd8, 0x39, 0xbf, 0xfd, 0x66, 0x5d, 0x82, 0x55, - 0xce, 0xf5, 0xb1, 0xf5, 0x6f, 0x45, 0x70, 0x39, 0x71, 0x74, 0xff, 0x87, 0xb7, 0x45, 0x09, 0xb9, - 0x59, 0x9c, 0x40, 0x6e, 0x6e, 0x82, 0x79, 0xfe, 0x9d, 0x37, 0xa6, 0x56, 0x03, 0x3d, 0xbf, 0x25, - 0x9a, 0x51, 0x1c, 0x9f, 0x76, 0x5b, 0x55, 0x9e, 0xf0, 0xb6, 0x2a, 0x1a, 0x05, 0x97, 0x8f, 0x5e, - 0xea, 0x25, 0xa3, 0xe0, 0x2a, 0x32, 0x8e, 0xa7, 0x1d, 0xcb, 0x63, 0x0d, 0x18, 0x66, 0xc4, 0x8e, - 0x75, 0x28, 0x58, 0x51, 0x0c, 0xdd, 0xfc, 0xab, 0x04, 0x5e, 0xcd, 0xcc, 0x34, 0xb8, 0x29, 0xbc, - 0xf6, 0xdf, 0x8c, 0xbd, 0xf6, 0x7f, 0x27, 0xd3, 0x31, 0xf2, 0xf2, 0x6f, 0xa5, 0xdf, 0xe5, 0xbc, - 0x9f, 0xef, 0x2e, 0x27, 0x45, 0xac, 0x9d, 0x7d, 0xa9, 0xd3, 0xbe, 0xf9, 0xf4, 0x59, 0x63, 0xea, - 0xcb, 0x67, 0x8d, 0xa9, 0xaf, 0x9e, 0x35, 0xa6, 0x7e, 0x36, 0x6e, 0x48, 0x4f, 0xc7, 0x0d, 0xe9, - 0xcb, 0x71, 0x43, 0xfa, 0x6a, 0xdc, 0x90, 0xfe, 0x31, 0x6e, 0x48, 0x5f, 0x7c, 0xdd, 0x98, 0xfa, - 0x64, 0x86, 0xcf, 0xf8, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8a, 0xc7, 0xc0, 0x83, 0xcc, 0x25, - 0x00, 0x00, + 0x4b, 0x9f, 0x0a, 0x14, 0x28, 0xe0, 0x3c, 0xf7, 0x4f, 0xb4, 0x4f, 0x45, 0xd1, 0xbe, 0x15, 0x45, + 0xe1, 0x97, 0x02, 0x41, 0x5f, 0x9a, 0x27, 0xa1, 0x66, 0x1e, 0xdb, 0x5f, 0x10, 0xa0, 0x40, 0x31, + 0xb3, 0xb3, 0x97, 0xd9, 0x8b, 0xb4, 0x54, 0x6c, 0xb5, 0xc8, 0x9b, 0x76, 0xce, 0x77, 0xbe, 0x39, + 0x3b, 0x73, 0xe6, 0x9c, 0x8f, 0xb3, 0x02, 0x3f, 0x38, 0x7e, 0xcf, 0x96, 0x15, 0xa3, 0x75, 0xec, + 0x76, 0x89, 0xa5, 0x13, 0x87, 0xd8, 0xad, 0x21, 0xd1, 0xfb, 0x86, 0xd5, 0xe2, 0x06, 0x6c, 0x2a, + 0x2d, 0x6c, 0x9a, 0x76, 0x6b, 0x78, 0xbb, 0x4b, 0x1c, 0xbc, 0xd1, 0x1a, 0x10, 0x9d, 0x58, 0xd8, + 0x21, 0x7d, 0xd9, 0xb4, 0x0c, 0xc7, 0x80, 0xcb, 0x1e, 0x50, 0xc6, 0xa6, 0x22, 0x53, 0xa0, 0xcc, + 0x81, 0x2b, 0x37, 0x07, 0x8a, 0x73, 0xe4, 0x76, 0xe5, 0x9e, 0xa1, 0xb5, 0x06, 0xc6, 0xc0, 0x68, + 0x31, 0x7c, 0xd7, 0x7d, 0xc2, 0x9e, 0xd8, 0x03, 0xfb, 0xcb, 0xe3, 0x59, 0x69, 0x46, 0x26, 0xec, + 0x19, 0x16, 0x69, 0x0d, 0x6f, 0xc7, 0xe7, 0x5a, 0xb9, 0x1e, 0xc1, 0x98, 0x86, 0xaa, 0xf4, 0x46, + 0x3c, 0xac, 0x24, 0xf4, 0xed, 0x10, 0xaa, 0xe1, 0xde, 0x91, 0xa2, 0x13, 0x6b, 0xd4, 0x32, 0x8f, + 0x07, 0x74, 0xc0, 0x6e, 0x69, 0xc4, 0xc1, 0x69, 0x13, 0xb4, 0xb2, 0xbc, 0x2c, 0x57, 0x77, 0x14, + 0x8d, 0x24, 0x1c, 0xde, 0x3d, 0xcb, 0xc1, 0xee, 0x1d, 0x11, 0x0d, 0x27, 0xfc, 0xde, 0xca, 0xf2, + 0x73, 0x1d, 0x45, 0x6d, 0x29, 0xba, 0x63, 0x3b, 0x56, 0xdc, 0xa9, 0xf9, 0xab, 0x02, 0xa8, 0x6e, + 0x63, 0xa2, 0x19, 0x7a, 0x87, 0x38, 0xf0, 0x31, 0xa8, 0xd0, 0xd7, 0xe8, 0x63, 0x07, 0xd7, 0xa5, + 0x35, 0x69, 0x7d, 0x76, 0xe3, 0x96, 0x1c, 0xee, 0x45, 0xc0, 0x2a, 0x9b, 0xc7, 0x03, 0x3a, 0x60, + 0xcb, 0x14, 0x2d, 0x0f, 0x6f, 0xcb, 0x0f, 0xbb, 0x9f, 0x92, 0x9e, 0xb3, 0x4b, 0x1c, 0xdc, 0x86, + 0xcf, 0x4e, 0x56, 0xa7, 0xc6, 0x27, 0xab, 0x20, 0x1c, 0x43, 0x01, 0x2b, 0xbc, 0x0f, 0x4a, 0xb6, + 0x49, 0x7a, 0xf5, 0x02, 0x63, 0xbf, 0x2a, 0x67, 0xec, 0xb4, 0x1c, 0xc4, 0xd4, 0x31, 0x49, 0xaf, + 0xfd, 0x0a, 0xe7, 0x2c, 0xd1, 0x27, 0xc4, 0x18, 0xe0, 0x3e, 0x98, 0xb6, 0x1d, 0xec, 0xb8, 0x76, + 0xbd, 0xc8, 0xb8, 0xd6, 0x73, 0x70, 0x31, 0x7c, 0xbb, 0xc6, 0xd9, 0xa6, 0xbd, 0x67, 0xc4, 0x79, + 0x9a, 0xbf, 0x97, 0xc0, 0x5c, 0x80, 0xdd, 0x51, 0x6c, 0x07, 0xfe, 0x34, 0xb1, 0x1e, 0x72, 0xbe, + 0xf5, 0xa0, 0xde, 0x6c, 0x35, 0x2e, 0xf1, 0xb9, 0x2a, 0xfe, 0x48, 0x64, 0x2d, 0xee, 0x81, 0xb2, + 0xe2, 0x10, 0xcd, 0xae, 0x17, 0xd6, 0x8a, 0xeb, 0xb3, 0x1b, 0xcd, 0xb3, 0x5f, 0xa0, 0x3d, 0xc7, + 0xe9, 0xca, 0x0f, 0xa8, 0x23, 0xf2, 0xfc, 0x9b, 0x9f, 0x97, 0x22, 0x81, 0xd3, 0x25, 0x82, 0x3f, + 0x03, 0x15, 0x9b, 0xa8, 0xa4, 0xe7, 0x18, 0x16, 0x0f, 0xfc, 0xad, 0x9c, 0x81, 0xe3, 0x2e, 0x51, + 0x3b, 0xdc, 0xb5, 0xfd, 0x0a, 0x8d, 0xdc, 0x7f, 0x42, 0x01, 0x25, 0xfc, 0x18, 0x54, 0x1c, 0xa2, + 0x99, 0x2a, 0x76, 0x08, 0xdf, 0xc9, 0xd7, 0xa2, 0xc1, 0xd3, 0xb3, 0x46, 0xc9, 0xf6, 0x8d, 0xfe, + 0x01, 0x87, 0xb1, 0x6d, 0x0c, 0x16, 0xc3, 0x1f, 0x45, 0x01, 0x0d, 0x34, 0x41, 0xcd, 0x35, 0xfb, + 0x14, 0xe9, 0xd0, 0xfc, 0x1c, 0x8c, 0xf8, 0xb6, 0xde, 0x3a, 0x7b, 0x55, 0x0e, 0x05, 0xbf, 0xf6, + 0x12, 0x9f, 0xa5, 0x26, 0x8e, 0xa3, 0x18, 0x3f, 0xdc, 0x04, 0xf3, 0x9a, 0xa2, 0x23, 0x82, 0xfb, + 0xa3, 0x0e, 0xe9, 0x19, 0x7a, 0xdf, 0xae, 0x97, 0xd6, 0xa4, 0xf5, 0x72, 0x7b, 0x99, 0x13, 0xcc, + 0xef, 0x8a, 0x66, 0x14, 0xc7, 0xc3, 0x8f, 0x00, 0xf4, 0x5f, 0xe0, 0x9e, 0x77, 0xb0, 0x14, 0x43, + 0xaf, 0x97, 0xd7, 0xa4, 0xf5, 0x62, 0x7b, 0x85, 0xb3, 0xc0, 0x83, 0x04, 0x02, 0xa5, 0x78, 0xc1, + 0x1d, 0xb0, 0x68, 0x91, 0xa1, 0x62, 0x2b, 0x86, 0x7e, 0x5f, 0xb1, 0x1d, 0xc3, 0x1a, 0xed, 0x28, + 0x9a, 0xe2, 0xd4, 0xa7, 0x59, 0x4c, 0xf5, 0xf1, 0xc9, 0xea, 0x22, 0x4a, 0xb1, 0xa3, 0x54, 0xaf, + 0xe6, 0xef, 0xca, 0x60, 0x3e, 0x96, 0xf7, 0xf0, 0x11, 0x58, 0xea, 0xb9, 0x96, 0x45, 0x74, 0x67, + 0xcf, 0xd5, 0xba, 0xc4, 0xea, 0xf4, 0x8e, 0x48, 0xdf, 0x55, 0x49, 0x9f, 0xa5, 0x48, 0xb9, 0xdd, + 0xe0, 0x11, 0x2f, 0x6d, 0xa5, 0xa2, 0x50, 0x86, 0x37, 0x5d, 0x05, 0x9d, 0x0d, 0xed, 0x2a, 0xb6, + 0x1d, 0x70, 0x16, 0x18, 0x67, 0xb0, 0x0a, 0x7b, 0x09, 0x04, 0x4a, 0xf1, 0xa2, 0x31, 0xf6, 0x89, + 0xad, 0x58, 0xa4, 0x1f, 0x8f, 0xb1, 0x28, 0xc6, 0xb8, 0x9d, 0x8a, 0x42, 0x19, 0xde, 0xf0, 0x1d, + 0x30, 0xeb, 0xcd, 0xc6, 0xf6, 0x8f, 0x6f, 0xf4, 0x02, 0x27, 0x9b, 0xdd, 0x0b, 0x4d, 0x28, 0x8a, + 0xa3, 0xaf, 0x66, 0x74, 0x6d, 0x62, 0x0d, 0x49, 0x3f, 0x7b, 0x83, 0x1f, 0x26, 0x10, 0x28, 0xc5, + 0x8b, 0xbe, 0x9a, 0x97, 0x81, 0x89, 0x57, 0x9b, 0x16, 0x5f, 0xed, 0x30, 0x15, 0x85, 0x32, 0xbc, + 0x69, 0x1e, 0x7b, 0x21, 0x6f, 0x0e, 0xb1, 0xa2, 0xe2, 0xae, 0x4a, 0xea, 0x33, 0x62, 0x1e, 0xef, + 0x89, 0x66, 0x14, 0xc7, 0xc3, 0x7b, 0xe0, 0xb2, 0x37, 0x74, 0xa8, 0xe3, 0x80, 0xa4, 0xc2, 0x48, + 0x5e, 0xe5, 0x24, 0x97, 0xf7, 0xe2, 0x00, 0x94, 0xf4, 0x81, 0x77, 0x40, 0xad, 0x67, 0xa8, 0x2a, + 0xcb, 0xc7, 0x2d, 0xc3, 0xd5, 0x9d, 0x7a, 0x95, 0xad, 0x15, 0xa4, 0xe7, 0x71, 0x4b, 0xb0, 0xa0, + 0x18, 0xb2, 0xf9, 0x17, 0x09, 0x2c, 0x67, 0x9c, 0x69, 0xf8, 0x7d, 0x50, 0x72, 0x46, 0x26, 0x61, + 0x89, 0x5a, 0x6d, 0xdf, 0xf0, 0xdb, 0xc1, 0xc1, 0xc8, 0x24, 0x5f, 0x9f, 0xac, 0x5e, 0xc9, 0x70, + 0xa3, 0x66, 0xc4, 0x1c, 0xe1, 0x11, 0x98, 0xb3, 0xe8, 0x74, 0xfa, 0xc0, 0x83, 0xf0, 0xb2, 0xd5, + 0xca, 0xac, 0x2e, 0x28, 0x8a, 0x0e, 0x0b, 0xf0, 0xe5, 0xf1, 0xc9, 0xea, 0x9c, 0x60, 0x43, 0x22, + 0x71, 0xf3, 0xd7, 0x05, 0x00, 0xb6, 0x89, 0xa9, 0x1a, 0x23, 0x8d, 0xe8, 0x17, 0xd1, 0x52, 0x1f, + 0x08, 0x2d, 0xf5, 0x5a, 0x76, 0xbd, 0x0c, 0x82, 0xca, 0xec, 0xa9, 0x1f, 0xc7, 0x7a, 0xea, 0xf5, + 0x3c, 0x64, 0xa7, 0x37, 0xd5, 0x7f, 0x14, 0xc1, 0x42, 0x08, 0xde, 0x32, 0xf4, 0xbe, 0xc2, 0x4e, + 0xc3, 0x5d, 0x61, 0x47, 0xaf, 0xc5, 0x76, 0x74, 0x39, 0xc5, 0x25, 0xb2, 0x9b, 0x3b, 0x41, 0x9c, + 0x05, 0xe6, 0xfe, 0xb6, 0x38, 0xf9, 0xd7, 0x27, 0xab, 0x29, 0xd2, 0x4f, 0x0e, 0x98, 0xc4, 0x10, + 0xe1, 0x55, 0x30, 0x6d, 0x11, 0x6c, 0x1b, 0x3a, 0x2b, 0x0b, 0xd5, 0xf0, 0x55, 0x10, 0x1b, 0x45, + 0xdc, 0x0a, 0xaf, 0x83, 0x19, 0x8d, 0xd8, 0x36, 0x1e, 0x10, 0x56, 0x01, 0xaa, 0xed, 0x79, 0x0e, + 0x9c, 0xd9, 0xf5, 0x86, 0x91, 0x6f, 0x87, 0x9f, 0x82, 0x9a, 0x8a, 0x6d, 0x9e, 0x8e, 0x07, 0x8a, + 0x46, 0xd8, 0x19, 0x9f, 0xdd, 0x78, 0x23, 0xdf, 0xde, 0x53, 0x8f, 0xb0, 0x8f, 0xed, 0x08, 0x4c, + 0x28, 0xc6, 0x0c, 0x87, 0x00, 0xd2, 0x91, 0x03, 0x0b, 0xeb, 0xb6, 0xb7, 0x50, 0x74, 0xbe, 0x99, + 0x89, 0xe7, 0x0b, 0xea, 0xd9, 0x4e, 0x82, 0x0d, 0xa5, 0xcc, 0xd0, 0xfc, 0x83, 0x04, 0x6a, 0xe1, + 0x36, 0x5d, 0x80, 0x5e, 0xba, 0x2f, 0xea, 0xa5, 0xd7, 0x72, 0x24, 0x67, 0x86, 0x60, 0xfa, 0x77, + 0x01, 0xc0, 0x10, 0x44, 0x8f, 0x73, 0x17, 0xf7, 0x8e, 0xe1, 0x1a, 0x28, 0xe9, 0x58, 0xf3, 0x73, + 0x32, 0x38, 0x20, 0x7b, 0x58, 0x23, 0x88, 0x59, 0xe0, 0x53, 0x09, 0x40, 0x5e, 0x86, 0x37, 0x75, + 0xdd, 0x70, 0x58, 0x65, 0xf7, 0x03, 0xda, 0xca, 0x11, 0x90, 0x3f, 0x97, 0x7c, 0x98, 0x60, 0xf9, + 0x50, 0x77, 0xac, 0x51, 0xb8, 0x0b, 0x49, 0x00, 0x4a, 0x99, 0x1a, 0xfe, 0x04, 0x00, 0x8b, 0x73, + 0x1e, 0x18, 0xfc, 0xd8, 0x5e, 0x3b, 0xb5, 0xaa, 0x51, 0xe8, 0x96, 0xa1, 0x3f, 0x51, 0x06, 0x61, + 0x61, 0x41, 0x01, 0x05, 0x8a, 0xd0, 0xad, 0x7c, 0x08, 0x96, 0x33, 0xe2, 0x84, 0x97, 0x40, 0xf1, + 0x98, 0x8c, 0xbc, 0xa5, 0x42, 0xf4, 0x4f, 0xb8, 0x08, 0xca, 0x43, 0xac, 0xba, 0x5e, 0x69, 0xad, + 0x22, 0xef, 0xe1, 0x4e, 0xe1, 0x3d, 0x89, 0x8a, 0x91, 0x9a, 0x58, 0x7d, 0xe0, 0x3a, 0xa8, 0x58, + 0xc4, 0x54, 0x95, 0x1e, 0xb6, 0xb9, 0xfa, 0x60, 0x5a, 0x13, 0xf1, 0x31, 0x14, 0x58, 0x05, 0x29, + 0x5b, 0x78, 0xb9, 0x52, 0xb6, 0xf8, 0x62, 0xa4, 0xec, 0x8f, 0x41, 0xc5, 0xf6, 0x45, 0x6c, 0x89, + 0x51, 0xde, 0xc8, 0x55, 0x47, 0xb9, 0x7e, 0x0d, 0xa8, 0x03, 0xe5, 0x1a, 0xd0, 0xa5, 0x69, 0xd6, + 0xf2, 0x84, 0x9a, 0xf5, 0x85, 0xea, 0x4c, 0x5a, 0x3b, 0x4d, 0xec, 0xda, 0xa4, 0xcf, 0x0a, 0x4e, + 0x25, 0xac, 0x9d, 0xfb, 0x6c, 0x14, 0x71, 0x2b, 0xfc, 0x91, 0x90, 0xa6, 0x95, 0xc9, 0xd2, 0xb4, + 0x96, 0x9d, 0xa2, 0xf0, 0x10, 0x2c, 0x9b, 0x96, 0x31, 0xb0, 0x88, 0x6d, 0x6f, 0x13, 0xdc, 0x57, + 0x15, 0x9d, 0xf8, 0x2b, 0x53, 0x65, 0x6f, 0x74, 0x65, 0x7c, 0xb2, 0xba, 0xbc, 0x9f, 0x0e, 0x41, + 0x59, 0xbe, 0xcd, 0x3f, 0x97, 0xc0, 0xa5, 0x78, 0x8f, 0xcb, 0x50, 0x83, 0xd2, 0xb9, 0xd4, 0xe0, + 0x9b, 0x91, 0x03, 0xe0, 0x49, 0xe5, 0x60, 0xdf, 0x53, 0x0e, 0xc1, 0x26, 0x98, 0xe7, 0x67, 0xdf, + 0x37, 0x72, 0x3d, 0x1c, 0xec, 0xfb, 0xa1, 0x68, 0x46, 0x71, 0x3c, 0xd5, 0x78, 0xa1, 0x74, 0xf3, + 0x49, 0x4a, 0xa2, 0xc6, 0xdb, 0x8c, 0x03, 0x50, 0xd2, 0x07, 0xee, 0x82, 0x05, 0x57, 0x4f, 0x52, + 0x79, 0x79, 0x78, 0x85, 0x53, 0x2d, 0x1c, 0x26, 0x21, 0x28, 0xcd, 0x0f, 0x3e, 0x06, 0xa0, 0xe7, + 0x37, 0x66, 0xbb, 0x3e, 0xcd, 0x2a, 0xe9, 0x9b, 0x39, 0xce, 0x4b, 0xd0, 0xcd, 0xc3, 0x2a, 0x16, + 0x0c, 0xd9, 0x28, 0xc2, 0x09, 0xef, 0x82, 0x39, 0x8b, 0x49, 0x7b, 0x3f, 0x54, 0x4f, 0x1e, 0x7f, + 0x87, 0xbb, 0xcd, 0xa1, 0xa8, 0x11, 0x89, 0xd8, 0x14, 0x45, 0x5b, 0xc9, 0xad, 0x68, 0xff, 0x24, + 0x45, 0xdb, 0x4c, 0x20, 0x66, 0xef, 0x08, 0xd2, 0xe7, 0x6a, 0x4c, 0xfa, 0x2c, 0x25, 0x3d, 0x22, + 0xca, 0x47, 0x49, 0xd7, 0xb1, 0xb7, 0x72, 0xea, 0xd8, 0xb0, 0x31, 0xe6, 0x13, 0xb2, 0x7c, 0x19, + 0x2e, 0xe6, 0x6e, 0x28, 0xaf, 0x90, 0x0d, 0x83, 0x7a, 0x01, 0x42, 0x36, 0x42, 0x76, 0xba, 0x90, + 0xfd, 0x57, 0x01, 0x2c, 0x84, 0xe0, 0xdc, 0x42, 0x36, 0xc5, 0xe5, 0xa5, 0x09, 0xd9, 0x74, 0x25, + 0x58, 0x7c, 0xd9, 0x4a, 0xf0, 0x25, 0x08, 0x68, 0x26, 0x2e, 0xc3, 0xa5, 0xfb, 0x7f, 0x12, 0x97, + 0x61, 0x54, 0x19, 0xe2, 0xf2, 0xb7, 0x85, 0x68, 0xe8, 0xdf, 0x7a, 0xb5, 0xf3, 0xcd, 0xaf, 0xd1, + 0x9a, 0x7f, 0x2d, 0x82, 0x4b, 0xf1, 0x73, 0x28, 0x34, 0x48, 0xe9, 0xcc, 0x06, 0xb9, 0x0f, 0x16, + 0x9f, 0xb8, 0xaa, 0x3a, 0x62, 0xcb, 0x10, 0xe9, 0x92, 0x5e, 0x6b, 0xfd, 0x2e, 0xf7, 0x5c, 0xfc, + 0x61, 0x0a, 0x06, 0xa5, 0x7a, 0x66, 0x34, 0xfb, 0xe2, 0xb9, 0x9a, 0x7d, 0xa2, 0x03, 0x95, 0x26, + 0xe8, 0x40, 0xa9, 0x8d, 0xbb, 0x7c, 0x8e, 0xc6, 0x3d, 0x59, 0xa7, 0x4d, 0x29, 0x5c, 0x67, 0x75, + 0xda, 0xe6, 0x07, 0xa0, 0x26, 0x4a, 0x37, 0x6f, 0x17, 0x3d, 0xdd, 0xc8, 0x85, 0x52, 0x64, 0x17, + 0xbd, 0x71, 0x14, 0x20, 0x9a, 0xbf, 0x94, 0xc0, 0x52, 0xfa, 0xc5, 0x0b, 0x54, 0x41, 0x4d, 0xc3, + 0x9f, 0x45, 0xef, 0xa7, 0xce, 0x6a, 0x42, 0xae, 0xa3, 0xa8, 0xb2, 0xf7, 0xd9, 0x43, 0x7e, 0xa0, + 0x3b, 0x0f, 0xad, 0x8e, 0x63, 0x29, 0xfa, 0xc0, 0xeb, 0xdc, 0xbb, 0x02, 0x17, 0x8a, 0x71, 0x37, + 0xbf, 0x92, 0xc0, 0x72, 0x46, 0xe7, 0xbc, 0xd8, 0x48, 0xe0, 0x27, 0xa0, 0xa2, 0xe1, 0xcf, 0x3a, + 0xae, 0x35, 0x48, 0xeb, 0xf5, 0xf9, 0xe6, 0x61, 0xd5, 0x60, 0x97, 0xb3, 0xa0, 0x80, 0xaf, 0xf9, + 0x10, 0xac, 0x09, 0x2f, 0x49, 0x4f, 0x1e, 0x79, 0xe2, 0xaa, 0xec, 0x10, 0x72, 0xb1, 0x72, 0x03, + 0x54, 0x4d, 0x6c, 0x39, 0x4a, 0x20, 0x75, 0xcb, 0xed, 0xb9, 0xf1, 0xc9, 0x6a, 0x75, 0xdf, 0x1f, + 0x44, 0xa1, 0xbd, 0xf9, 0x1f, 0x09, 0x94, 0x3b, 0x3d, 0xac, 0x92, 0x0b, 0x50, 0x0b, 0xdb, 0x82, + 0x5a, 0xc8, 0xfe, 0x78, 0xc2, 0xe2, 0xc9, 0x14, 0x0a, 0x3b, 0x31, 0xa1, 0xf0, 0xfa, 0x19, 0x3c, + 0xa7, 0x6b, 0x84, 0xf7, 0x41, 0x35, 0x98, 0x6e, 0xb2, 0x02, 0xd6, 0xfc, 0x4d, 0x01, 0xcc, 0x46, + 0xa6, 0x98, 0xb0, 0xfc, 0x3d, 0x16, 0xda, 0x06, 0x3d, 0xd8, 0x1b, 0x79, 0x5e, 0x44, 0xf6, 0x5b, + 0x84, 0x77, 0xf7, 0x10, 0xfe, 0xf2, 0x4c, 0x76, 0x8e, 0x0f, 0x40, 0xcd, 0xc1, 0xd6, 0x80, 0x38, + 0xbe, 0x8d, 0x2d, 0x58, 0x35, 0xbc, 0xa5, 0x3a, 0x10, 0xac, 0x28, 0x86, 0x5e, 0xb9, 0x0b, 0xe6, + 0x84, 0xc9, 0x26, 0xba, 0x40, 0x78, 0x4a, 0x17, 0x27, 0x4c, 0xce, 0x0b, 0xc8, 0xae, 0x8f, 0x84, + 0xec, 0xca, 0xfe, 0xb6, 0x18, 0x3d, 0x32, 0x59, 0x39, 0x86, 0x62, 0x39, 0xf6, 0x46, 0x2e, 0xb6, + 0xd3, 0x33, 0xed, 0x8f, 0x12, 0x98, 0x8f, 0xa0, 0x2f, 0x40, 0x20, 0x3d, 0x10, 0x05, 0xd2, 0xeb, + 0x79, 0x5e, 0x22, 0x43, 0x21, 0xfd, 0xad, 0x2c, 0x04, 0xff, 0xad, 0x97, 0x48, 0x3f, 0x07, 0x8b, + 0x43, 0x43, 0x75, 0x35, 0xb2, 0xa5, 0x62, 0x45, 0xf3, 0x01, 0x54, 0x05, 0x14, 0xe3, 0xbf, 0x4d, + 0x02, 0x7a, 0x62, 0xd9, 0x8a, 0xed, 0x10, 0xdd, 0x79, 0x14, 0x7a, 0x86, 0x3a, 0xe6, 0x51, 0x0a, + 0x1d, 0x4a, 0x9d, 0x04, 0xbe, 0x03, 0x66, 0xa9, 0x1e, 0x51, 0x7a, 0x64, 0x0f, 0x6b, 0xbe, 0xf0, + 0x0e, 0xbe, 0x7c, 0x75, 0x42, 0x13, 0x8a, 0xe2, 0xe0, 0x11, 0x58, 0x30, 0x8d, 0xfe, 0x2e, 0xd6, + 0xf1, 0x80, 0xd0, 0xb6, 0xb7, 0xcf, 0xfe, 0x37, 0x82, 0xdd, 0x12, 0x55, 0xdb, 0xef, 0xfa, 0xbf, + 0xf2, 0xf7, 0x93, 0x10, 0xfa, 0xa3, 0x27, 0x65, 0x98, 0xfd, 0xe8, 0x49, 0xa3, 0x84, 0x56, 0xe2, + 0xcb, 0xaf, 0x77, 0x77, 0xbd, 0x91, 0x27, 0xc3, 0xce, 0xf9, 0xed, 0x37, 0xeb, 0x12, 0xac, 0x72, + 0xae, 0x8f, 0xad, 0x4f, 0x4b, 0xe0, 0x72, 0xe2, 0xe8, 0xfe, 0x0f, 0x6f, 0x8b, 0x12, 0x72, 0xb3, + 0x38, 0x81, 0xdc, 0xdc, 0x04, 0xf3, 0xfc, 0x3b, 0x6f, 0x4c, 0xad, 0x06, 0x7a, 0x7e, 0x4b, 0x34, + 0xa3, 0x38, 0x3e, 0xed, 0xb6, 0xaa, 0x3c, 0xe1, 0x6d, 0x55, 0x34, 0x0a, 0x2e, 0x1f, 0xbd, 0xd4, + 0x4b, 0x46, 0xc1, 0x55, 0x64, 0x1c, 0x4f, 0x3b, 0x96, 0xc7, 0x1a, 0x30, 0xcc, 0x88, 0x1d, 0xeb, + 0x50, 0xb0, 0xa2, 0x18, 0xfa, 0x1b, 0x7d, 0xcb, 0xfc, 0xbb, 0x04, 0x5e, 0xcd, 0xcc, 0x52, 0xb8, + 0x29, 0x5c, 0x19, 0xdc, 0x8c, 0x5d, 0x19, 0x7c, 0x2f, 0xd3, 0x31, 0x72, 0x71, 0x60, 0xa5, 0xdf, + 0x03, 0xbd, 0x9f, 0xef, 0x1e, 0x28, 0x45, 0xe8, 0x9d, 0x7d, 0x21, 0xd4, 0xbe, 0xf9, 0xec, 0x79, + 0x63, 0xea, 0x8b, 0xe7, 0x8d, 0xa9, 0x2f, 0x9f, 0x37, 0xa6, 0x7e, 0x31, 0x6e, 0x48, 0xcf, 0xc6, + 0x0d, 0xe9, 0x8b, 0x71, 0x43, 0xfa, 0x72, 0xdc, 0x90, 0xfe, 0x39, 0x6e, 0x48, 0x9f, 0x7f, 0xd5, + 0x98, 0xfa, 0x64, 0x86, 0xcf, 0xf8, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x69, 0x9d, 0x8d, 0x07, + 0x08, 0x26, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/apps/v1beta2/generated.proto b/staging/src/k8s.io/api/apps/v1beta2/generated.proto index 1bc58370a3a..8a3ecd1709b 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/generated.proto +++ b/staging/src/k8s.io/api/apps/v1beta2/generated.proto @@ -690,6 +690,12 @@ message StatefulSetStatus { // updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence // [replicas-updatedReplicas,replicas) optional string updateRevision = 7; + + // collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller + // uses this field as a collision avoidance mechanism when it needs to create the name for the + // newest ControllerRevision. + // +optional + optional int64 collisionCount = 9; } // WIP: This is not ready to be used and we plan to make breaking changes to it. diff --git a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go index c6f97f6c719..554e92be75c 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/apps/v1beta2/types_swagger_doc_generated.go @@ -349,6 +349,7 @@ var map_StatefulSetStatus = map[string]string{ "updatedReplicas": "updatedReplicas is the number of Pods created by the StatefulSet controller from the StatefulSet version indicated by updateRevision.", "currentRevision": "currentRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [0,currentReplicas).", "updateRevision": "updateRevision, if not empty, indicates the version of the StatefulSet used to generate Pods in the sequence [replicas-updatedReplicas,replicas)", + "collisionCount": "collisionCount is the count of hash collisions for the StatefulSet. The StatefulSet controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest ControllerRevision.", } func (StatefulSetStatus) SwaggerDoc() map[string]string { diff --git a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go index bc2b9cd8167..ddc0a778e06 100644 --- a/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/apps/v1beta2/zz_generated.deepcopy.go @@ -854,7 +854,7 @@ func (in *StatefulSet) DeepCopyInto(out *StatefulSet) { out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) in.Spec.DeepCopyInto(&out.Spec) - out.Status = in.Status + in.Status.DeepCopyInto(&out.Status) return } @@ -966,6 +966,15 @@ func (in *StatefulSetSpec) DeepCopy() *StatefulSetSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *StatefulSetStatus) DeepCopyInto(out *StatefulSetStatus) { *out = *in + if in.CollisionCount != nil { + in, out := &in.CollisionCount, &out.CollisionCount + if *in == nil { + *out = nil + } else { + *out = new(int64) + **out = **in + } + } return }