mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 15:05:27 +00:00
DRA: remove "sharable" from claim allocation result
Now all claims are shareable up to the limit imposed by the size of the "reserverFor" array. This is one of the agreed simplifications for 1.31.
This commit is contained in:
parent
de5742ae83
commit
8a629b9f15
8
api/openapi-spec/swagger.json
generated
8
api/openapi-spec/swagger.json
generated
@ -15068,10 +15068,6 @@
|
||||
},
|
||||
"type": "array",
|
||||
"x-kubernetes-list-type": "atomic"
|
||||
},
|
||||
"shareable": {
|
||||
"description": "Shareable determines whether the resource supports more than one consumer at a time.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@ -15496,10 +15492,6 @@
|
||||
"metadata": {
|
||||
"$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta",
|
||||
"description": "Standard object metadata"
|
||||
},
|
||||
"shareable": {
|
||||
"description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
|
@ -109,10 +109,6 @@
|
||||
},
|
||||
"type": "array",
|
||||
"x-kubernetes-list-type": "atomic"
|
||||
},
|
||||
"shareable": {
|
||||
"description": "Shareable determines whether the resource supports more than one consumer at a time.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
@ -656,10 +652,6 @@
|
||||
],
|
||||
"default": {},
|
||||
"description": "Standard object metadata"
|
||||
},
|
||||
"shareable": {
|
||||
"description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
|
@ -130,11 +130,6 @@ type AllocationResult struct {
|
||||
// everywhere.
|
||||
// +optional
|
||||
AvailableOnNodes *core.NodeSelector
|
||||
|
||||
// Shareable determines whether the resource supports more
|
||||
// than one consumer at a time.
|
||||
// +optional
|
||||
Shareable bool
|
||||
}
|
||||
|
||||
// AllocationResultResourceHandlesMaxSize represents the maximum number of
|
||||
@ -509,10 +504,6 @@ type ResourceClaimParameters struct {
|
||||
// to some unknown type.
|
||||
GeneratedFrom *ResourceClaimParametersReference
|
||||
|
||||
// Shareable indicates whether the allocated claim is meant to be shareable
|
||||
// by multiple consumers at the same time.
|
||||
Shareable bool
|
||||
|
||||
// DriverRequests describes all resources that are needed for the
|
||||
// allocated claim. A single claim may use resources coming from
|
||||
// different drivers. For each driver, this array has at most one
|
||||
|
@ -497,7 +497,6 @@ func autoConvert_v1alpha3_AllocationResult_To_resource_AllocationResult(in *v1al
|
||||
out.ResourceHandles = nil
|
||||
}
|
||||
out.AvailableOnNodes = (*core.NodeSelector)(unsafe.Pointer(in.AvailableOnNodes))
|
||||
out.Shareable = in.Shareable
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -519,7 +518,6 @@ func autoConvert_resource_AllocationResult_To_v1alpha3_AllocationResult(in *reso
|
||||
out.ResourceHandles = nil
|
||||
}
|
||||
out.AvailableOnNodes = (*v1.NodeSelector)(unsafe.Pointer(in.AvailableOnNodes))
|
||||
out.Shareable = in.Shareable
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -1025,7 +1023,6 @@ func Convert_resource_ResourceClaimList_To_v1alpha3_ResourceClaimList(in *resour
|
||||
func autoConvert_v1alpha3_ResourceClaimParameters_To_resource_ResourceClaimParameters(in *v1alpha3.ResourceClaimParameters, out *resource.ResourceClaimParameters, s conversion.Scope) error {
|
||||
out.ObjectMeta = in.ObjectMeta
|
||||
out.GeneratedFrom = (*resource.ResourceClaimParametersReference)(unsafe.Pointer(in.GeneratedFrom))
|
||||
out.Shareable = in.Shareable
|
||||
if in.DriverRequests != nil {
|
||||
in, out := &in.DriverRequests, &out.DriverRequests
|
||||
*out = make([]resource.DriverRequests, len(*in))
|
||||
@ -1048,7 +1045,6 @@ func Convert_v1alpha3_ResourceClaimParameters_To_resource_ResourceClaimParameter
|
||||
func autoConvert_resource_ResourceClaimParameters_To_v1alpha3_ResourceClaimParameters(in *resource.ResourceClaimParameters, out *v1alpha3.ResourceClaimParameters, s conversion.Scope) error {
|
||||
out.ObjectMeta = in.ObjectMeta
|
||||
out.GeneratedFrom = (*v1alpha3.ResourceClaimParametersReference)(unsafe.Pointer(in.GeneratedFrom))
|
||||
out.Shareable = in.Shareable
|
||||
if in.DriverRequests != nil {
|
||||
in, out := &in.DriverRequests, &out.DriverRequests
|
||||
*out = make([]v1alpha3.DriverRequests, len(*in))
|
||||
|
@ -170,9 +170,6 @@ func ValidateClaimStatusUpdate(resourceClaim, oldClaim *resource.ResourceClaim)
|
||||
if resourceClaim.Status.Allocation == nil {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("reservedFor"), "may not be specified when `allocated` is not set"))
|
||||
} else {
|
||||
if !resourceClaim.Status.Allocation.Shareable && len(resourceClaim.Status.ReservedFor) > 1 {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("reservedFor"), "may not be reserved more than once"))
|
||||
}
|
||||
// Items may be removed from ReservedFor while the claim is meant to be deallocated,
|
||||
// but not added.
|
||||
if resourceClaim.DeletionTimestamp != nil || resourceClaim.Status.DeallocationRequested {
|
||||
|
@ -336,7 +336,6 @@ func TestValidateClaimStatusUpdate(t *testing.T) {
|
||||
}
|
||||
return handles
|
||||
}(),
|
||||
Shareable: true,
|
||||
},
|
||||
}
|
||||
|
||||
@ -584,25 +583,6 @@ func TestValidateClaimStatusUpdate(t *testing.T) {
|
||||
return claim
|
||||
},
|
||||
},
|
||||
"invalid-reserved-for-not-shared": {
|
||||
wantFailures: field.ErrorList{field.Forbidden(field.NewPath("status", "reservedFor"), "may not be reserved more than once")},
|
||||
oldClaim: func() *resource.ResourceClaim {
|
||||
claim := validAllocatedClaim.DeepCopy()
|
||||
claim.Status.Allocation.Shareable = false
|
||||
return claim
|
||||
}(),
|
||||
update: func(claim *resource.ResourceClaim) *resource.ResourceClaim {
|
||||
for i := 0; i < 2; i++ {
|
||||
claim.Status.ReservedFor = append(claim.Status.ReservedFor,
|
||||
resource.ResourceClaimConsumerReference{
|
||||
Resource: "pods",
|
||||
Name: fmt.Sprintf("foo-%d", i),
|
||||
UID: types.UID(fmt.Sprintf("%d", i)),
|
||||
})
|
||||
}
|
||||
return claim
|
||||
},
|
||||
},
|
||||
"invalid-reserved-for-no-allocation": {
|
||||
wantFailures: field.ErrorList{field.Forbidden(field.NewPath("status", "reservedFor"), "may not be specified when `allocated` is not set")},
|
||||
oldClaim: validClaim,
|
||||
|
@ -559,9 +559,7 @@ func makeGeneratedClaim(podClaimName, generateName, namespace, classname string,
|
||||
|
||||
func allocateClaim(claim *resourceapi.ResourceClaim) *resourceapi.ResourceClaim {
|
||||
claim = claim.DeepCopy()
|
||||
claim.Status.Allocation = &resourceapi.AllocationResult{
|
||||
Shareable: true,
|
||||
}
|
||||
claim.Status.Allocation = &resourceapi.AllocationResult{}
|
||||
return claim
|
||||
}
|
||||
|
||||
|
14
pkg/generated/openapi/zz_generated.openapi.go
generated
14
pkg/generated/openapi/zz_generated.openapi.go
generated
@ -45576,13 +45576,6 @@ func schema_k8sio_api_resource_v1alpha3_AllocationResult(ref common.ReferenceCal
|
||||
Ref: ref("k8s.io/api/core/v1.NodeSelector"),
|
||||
},
|
||||
},
|
||||
"shareable": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Shareable determines whether the resource supports more than one consumer at a time.",
|
||||
Type: []string{"boolean"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -46389,13 +46382,6 @@ func schema_k8sio_api_resource_v1alpha3_ResourceClaimParameters(ref common.Refer
|
||||
Ref: ref("k8s.io/api/resource/v1alpha3.ResourceClaimParametersReference"),
|
||||
},
|
||||
},
|
||||
"shareable": {
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
|
||||
Type: []string{"boolean"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"driverRequests": {
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
|
@ -1051,7 +1051,6 @@ func (pl *dynamicResources) lookupClassParameters(logger klog.Logger, class *res
|
||||
|
||||
func (pl *dynamicResources) lookupClaimParameters(logger klog.Logger, class *resourceapi.ResourceClass, claim *resourceapi.ResourceClaim) (*resourceapi.ResourceClaimParameters, *framework.Status) {
|
||||
defaultClaimParameters := resourceapi.ResourceClaimParameters{
|
||||
Shareable: true,
|
||||
DriverRequests: []resourceapi.DriverRequests{
|
||||
{
|
||||
DriverName: class.DriverName,
|
||||
|
@ -105,10 +105,6 @@ var (
|
||||
UID(podUID).
|
||||
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimName: &claimName}).
|
||||
Obj()
|
||||
otherPodWithClaimName = st.MakePod().Name(podName).Namespace(namespace).
|
||||
UID(podUID + "-II").
|
||||
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimName: &claimName}).
|
||||
Obj()
|
||||
podWithClaimTemplate = st.MakePod().Name(podName).Namespace(namespace).
|
||||
UID(podUID).
|
||||
PodResourceClaims(v1.PodResourceClaim{Name: resourceName, ResourceClaimTemplateName: &claimName}).
|
||||
@ -134,7 +130,6 @@ var (
|
||||
|
||||
claimParameters = st.MakeClaimParameters().Name(claimName).Namespace(namespace).
|
||||
NamedResourcesRequests("some-driver", "true").
|
||||
Shareable(true).
|
||||
GeneratedFrom(&resourceapi.ResourceClaimParametersReference{
|
||||
Name: claimName,
|
||||
Kind: "ResourceClaimParameters",
|
||||
@ -143,7 +138,6 @@ var (
|
||||
Obj()
|
||||
claimParametersOtherNamespace = st.MakeClaimParameters().Name(claimName).Namespace(namespace+"-2").
|
||||
NamedResourcesRequests("some-driver", "true").
|
||||
Shareable(true).
|
||||
GeneratedFrom(&resourceapi.ResourceClaimParametersReference{
|
||||
Name: claimName,
|
||||
Kind: "ResourceClaimParameters",
|
||||
@ -946,22 +940,6 @@ func TestPlugin(t *testing.T) {
|
||||
},
|
||||
},
|
||||
},
|
||||
"in-use-by-other": {
|
||||
nodes: []*v1.Node{},
|
||||
pod: otherPodWithClaimName,
|
||||
claims: []*resourceapi.ResourceClaim{inUseClaim},
|
||||
classes: []*resourceapi.ResourceClass{},
|
||||
schedulings: []*resourceapi.PodSchedulingContext{},
|
||||
prepare: prepare{},
|
||||
want: want{
|
||||
prefilter: result{
|
||||
status: framework.NewStatus(framework.UnschedulableAndUnresolvable, `resourceclaim in use`),
|
||||
},
|
||||
postfilter: result{
|
||||
status: framework.NewStatus(framework.Unschedulable, `no new claims to deallocate`),
|
||||
},
|
||||
},
|
||||
},
|
||||
"wrong-topology": {
|
||||
// PostFilter tries to get the pod scheduleable by
|
||||
// deallocating the claim.
|
||||
|
@ -188,7 +188,6 @@ func (c claimController) nodeIsSuitable(ctx context.Context, nodeName string, re
|
||||
|
||||
func (c claimController) allocate(ctx context.Context, nodeName string, resources resources) (string, *resourceapi.AllocationResult, error) {
|
||||
allocation := &resourceapi.AllocationResult{
|
||||
Shareable: c.claimParameters.Shareable,
|
||||
AvailableOnNodes: &v1.NodeSelector{
|
||||
NodeSelectorTerms: []v1.NodeSelectorTerm{
|
||||
{
|
||||
|
@ -1003,7 +1003,6 @@ func (wrapper *ResourceClaimWrapper) Structured(nodeName string, namedResourcesI
|
||||
resourceHandle.StructuredData.Results = append(resourceHandle.StructuredData.Results, result)
|
||||
}
|
||||
}
|
||||
wrapper.ResourceClaim.Status.Allocation.Shareable = true
|
||||
wrapper.ResourceClaim.Status.Allocation.AvailableOnNodes = &v1.NodeSelector{
|
||||
NodeSelectorTerms: []v1.NodeSelectorTerm{{
|
||||
MatchExpressions: []v1.NodeSelectorRequirement{{
|
||||
@ -1172,11 +1171,6 @@ func (wrapper *ClaimParametersWrapper) Namespace(s string) *ClaimParametersWrapp
|
||||
return wrapper
|
||||
}
|
||||
|
||||
func (wrapper *ClaimParametersWrapper) Shareable(value bool) *ClaimParametersWrapper {
|
||||
wrapper.ResourceClaimParameters.Shareable = value
|
||||
return wrapper
|
||||
}
|
||||
|
||||
func (wrapper *ClaimParametersWrapper) GeneratedFrom(value *resourceapi.ResourceClaimParametersReference) *ClaimParametersWrapper {
|
||||
wrapper.ResourceClaimParameters.GeneratedFrom = value
|
||||
return wrapper
|
||||
|
333
staging/src/k8s.io/api/resource/v1alpha3/generated.pb.go
generated
333
staging/src/k8s.io/api/resource/v1alpha3/generated.pb.go
generated
@ -1331,146 +1331,145 @@ func init() {
|
||||
}
|
||||
|
||||
var fileDescriptor_66649ee9bbcd89d2 = []byte{
|
||||
// 2219 bytes of a gzipped FileDescriptorProto
|
||||
// 2197 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x1a, 0x4d, 0x6c, 0x1c, 0x57,
|
||||
0xd9, 0xb3, 0xbb, 0x89, 0xd7, 0x9f, 0xed, 0xb5, 0x33, 0xb6, 0xe3, 0x4d, 0xea, 0xee, 0xba, 0x23,
|
||||
0x10, 0x11, 0x38, 0xbb, 0x8d, 0xd3, 0xa6, 0x51, 0x29, 0x48, 0x99, 0xb8, 0x09, 0x16, 0x6d, 0xea,
|
||||
0xbe, 0x25, 0x6e, 0x53, 0xfe, 0x3a, 0xde, 0x79, 0xb1, 0x87, 0xec, 0xce, 0x6c, 0xe6, 0xbd, 0x71,
|
||||
0x13, 0x71, 0x89, 0x2a, 0x10, 0x5c, 0x90, 0x8a, 0x40, 0x08, 0x4e, 0x9c, 0x38, 0x70, 0xe1, 0x02,
|
||||
0x57, 0x4e, 0x15, 0x34, 0xc7, 0x20, 0x40, 0x54, 0x1c, 0x56, 0x64, 0x39, 0x72, 0xe4, 0xc6, 0x09,
|
||||
0xcd, 0x7b, 0x6f, 0x7e, 0xde, 0xec, 0xcc, 0x7a, 0x67, 0x21, 0x56, 0x72, 0xf2, 0xce, 0x7b, 0xdf,
|
||||
0xdf, 0xfb, 0xfe, 0xdf, 0xf7, 0x0c, 0x1b, 0x77, 0x2e, 0x93, 0x86, 0xe5, 0x34, 0x8d, 0x9e, 0xd5,
|
||||
0x74, 0x31, 0x71, 0x3c, 0xb7, 0x8d, 0x9b, 0x87, 0x17, 0x8c, 0x4e, 0xef, 0xc0, 0xb8, 0xd8, 0xdc,
|
||||
0xc7, 0x36, 0x76, 0x0d, 0x8a, 0xcd, 0x46, 0xcf, 0x75, 0xa8, 0xa3, 0xae, 0x71, 0xe8, 0x86, 0xd1,
|
||||
0xb3, 0x1a, 0x01, 0x74, 0x23, 0x80, 0x3e, 0x7b, 0x7e, 0xdf, 0xa2, 0x07, 0xde, 0x5e, 0xa3, 0xed,
|
||||
0x74, 0x9b, 0xfb, 0xce, 0xbe, 0xd3, 0x64, 0x48, 0x7b, 0xde, 0x6d, 0xf6, 0xc5, 0x3e, 0xd8, 0x2f,
|
||||
0x4e, 0xec, 0xac, 0x16, 0x63, 0xdd, 0x76, 0x5c, 0x9f, 0x6d, 0x92, 0xe1, 0xd9, 0x97, 0x22, 0x98,
|
||||
0xae, 0xd1, 0x3e, 0xb0, 0x6c, 0xec, 0xde, 0x6f, 0xf6, 0xee, 0xec, 0xcb, 0xf2, 0xe6, 0xc1, 0x22,
|
||||
0xcd, 0x2e, 0xa6, 0x46, 0x1a, 0xaf, 0x66, 0x16, 0x96, 0xeb, 0xd9, 0xd4, 0xea, 0x0e, 0xb3, 0xb9,
|
||||
0x74, 0x14, 0x02, 0x69, 0x1f, 0xe0, 0xae, 0x91, 0xc4, 0xd3, 0x7e, 0x5e, 0x80, 0xc5, 0x2b, 0x9d,
|
||||
0x8e, 0xd3, 0x36, 0xa8, 0xe5, 0xd8, 0x08, 0x13, 0xaf, 0x43, 0x55, 0x07, 0x16, 0x82, 0xf3, 0x7c,
|
||||
0xc5, 0xb0, 0xcd, 0x0e, 0x26, 0x55, 0x65, 0xbd, 0x78, 0x6e, 0x76, 0x73, 0xa3, 0x31, 0x4a, 0xe9,
|
||||
0x0d, 0x24, 0x21, 0xe9, 0xab, 0x0f, 0xfb, 0xf5, 0xa9, 0x41, 0xbf, 0xbe, 0x20, 0xaf, 0x13, 0x94,
|
||||
0xa4, 0xae, 0xee, 0xc1, 0xa2, 0x71, 0x68, 0x58, 0x1d, 0x63, 0xaf, 0x83, 0xdf, 0xb2, 0x6f, 0x38,
|
||||
0x26, 0x26, 0xd5, 0xc2, 0xba, 0x72, 0x6e, 0x76, 0x73, 0x3d, 0xce, 0xd1, 0xb7, 0x4c, 0xe3, 0xf0,
|
||||
0x42, 0xc3, 0x07, 0x68, 0xe1, 0x0e, 0x6e, 0x53, 0xc7, 0xd5, 0x97, 0x07, 0xfd, 0xfa, 0xe2, 0x95,
|
||||
0x04, 0x36, 0x1a, 0xa2, 0xa7, 0x36, 0x61, 0x86, 0x1c, 0x18, 0x2e, 0xf6, 0xd7, 0xaa, 0xc5, 0x75,
|
||||
0xe5, 0x5c, 0x59, 0x3f, 0x25, 0x04, 0x9c, 0x69, 0x05, 0x1b, 0x28, 0x82, 0xd1, 0x7e, 0xac, 0xc0,
|
||||
0x4a, 0x52, 0x35, 0x6f, 0x3a, 0x26, 0xee, 0xa8, 0xf7, 0xa0, 0x62, 0x1b, 0x5d, 0x6c, 0x06, 0xe7,
|
||||
0xf2, 0xd5, 0xe3, 0x0b, 0xfb, 0xda, 0x68, 0xf5, 0xdc, 0x90, 0x70, 0x92, 0xa4, 0x75, 0x75, 0xd0,
|
||||
0xaf, 0x57, 0x64, 0x18, 0x94, 0xe0, 0xa3, 0xfd, 0xa6, 0x00, 0xa7, 0xb7, 0x5c, 0xeb, 0x10, 0xbb,
|
||||
0x43, 0x46, 0xfb, 0xa1, 0x02, 0xab, 0x87, 0xd8, 0x36, 0x1d, 0x17, 0xe1, 0xbb, 0x1e, 0x26, 0x74,
|
||||
0xc7, 0x70, 0x8d, 0x2e, 0xa6, 0xd8, 0x0d, 0xc4, 0x3b, 0x1f, 0x13, 0x2f, 0x74, 0x92, 0x46, 0xef,
|
||||
0xce, 0x7e, 0x43, 0x38, 0x49, 0x03, 0x19, 0x1f, 0xbc, 0x7e, 0x8f, 0x62, 0x9b, 0x58, 0x8e, 0xad,
|
||||
0xd7, 0x85, 0x76, 0x56, 0x77, 0xd3, 0xa9, 0xa2, 0x2c, 0x76, 0xbe, 0x28, 0x2b, 0x46, 0x9a, 0xe6,
|
||||
0x84, 0x51, 0x2f, 0x8e, 0xd6, 0x53, 0xaa, 0xd2, 0xf5, 0xe7, 0x85, 0x38, 0xe9, 0x36, 0x41, 0xe9,
|
||||
0x0c, 0xb5, 0x9f, 0x15, 0xa0, 0xc2, 0x15, 0x26, 0xc4, 0x24, 0xea, 0x26, 0x80, 0xc9, 0x56, 0x7c,
|
||||
0x5d, 0x33, 0xd5, 0xcc, 0xe8, 0xaa, 0x20, 0x0e, 0x5b, 0xe1, 0x0e, 0x8a, 0x41, 0xa9, 0x04, 0x16,
|
||||
0xf9, 0x61, 0x63, 0x4a, 0x2d, 0x4c, 0xa2, 0xd4, 0xaa, 0x60, 0xb4, 0xb8, 0x9b, 0x20, 0x87, 0x86,
|
||||
0x18, 0xa8, 0x5f, 0x87, 0xb2, 0x2b, 0x84, 0xae, 0x16, 0x59, 0xfc, 0x9d, 0x1f, 0x2f, 0xfe, 0xc4,
|
||||
0x51, 0xf5, 0x45, 0xc1, 0xac, 0x1c, 0x9c, 0x1d, 0x85, 0x04, 0x35, 0x1d, 0x6a, 0xa3, 0xfd, 0x51,
|
||||
0x5d, 0x87, 0x92, 0x1d, 0x69, 0x68, 0x4e, 0xd0, 0x2a, 0x31, 0xdd, 0xb0, 0x1d, 0xed, 0x8f, 0x0a,
|
||||
0xac, 0x26, 0x88, 0x50, 0xea, 0x5a, 0x7b, 0x1e, 0xc5, 0x47, 0x63, 0xfb, 0x5e, 0x52, 0x31, 0x02,
|
||||
0xf8, 0x5d, 0xa3, 0xe3, 0x61, 0xa1, 0xd2, 0x57, 0x73, 0x85, 0x91, 0x44, 0x41, 0xff, 0x8c, 0x60,
|
||||
0xb4, 0x36, 0x0a, 0x0a, 0x25, 0xf8, 0x6a, 0xff, 0x2a, 0xc2, 0x48, 0x04, 0xf5, 0x9b, 0x50, 0xbe,
|
||||
0xeb, 0x19, 0x36, 0xb5, 0xe8, 0xfd, 0xea, 0x49, 0x26, 0x64, 0x23, 0xd3, 0xee, 0x92, 0xd4, 0x6f,
|
||||
0x0b, 0x2c, 0xfd, 0xd4, 0xa0, 0x5f, 0x9f, 0x0f, 0xbe, 0xb8, 0x14, 0x21, 0x49, 0xf5, 0x05, 0x28,
|
||||
0xed, 0x39, 0x0e, 0x0f, 0x8f, 0xb2, 0x3e, 0xef, 0xa7, 0x24, 0xdd, 0x71, 0x3a, 0x1c, 0x8c, 0x6d,
|
||||
0xa9, 0x35, 0x28, 0x5a, 0x36, 0xad, 0x4e, 0xaf, 0x2b, 0xe7, 0x8a, 0xfa, 0x9c, 0x6f, 0xd4, 0x6d,
|
||||
0x9b, 0x72, 0x00, 0x7f, 0x43, 0x6d, 0x43, 0xd9, 0xb2, 0x69, 0xab, 0x63, 0xb5, 0x71, 0xb5, 0xcc,
|
||||
0x24, 0x7c, 0x29, 0x8f, 0x1a, 0xb7, 0x05, 0x2e, 0x97, 0x33, 0xf8, 0x12, 0x72, 0x06, 0x84, 0xd5,
|
||||
0xcf, 0xc1, 0x49, 0x42, 0x5d, 0xcb, 0xde, 0xaf, 0x9e, 0x60, 0x66, 0x5d, 0x18, 0xf4, 0xeb, 0xb3,
|
||||
0x2d, 0xb6, 0xc2, 0x41, 0xc5, 0xb6, 0xea, 0xc0, 0x2c, 0xff, 0xc5, 0x05, 0x9a, 0x61, 0x02, 0xbd,
|
||||
0x92, 0x47, 0xa0, 0x56, 0x84, 0xce, 0x53, 0x7c, 0x6c, 0x81, 0xf3, 0x8a, 0x73, 0x50, 0x3f, 0x0f,
|
||||
0xd3, 0x87, 0xd8, 0xf5, 0x43, 0xac, 0x0a, 0x4c, 0xb4, 0xc5, 0x41, 0xbf, 0x3e, 0xb7, 0xcb, 0x97,
|
||||
0x38, 0x7c, 0x00, 0xa0, 0x6d, 0xc1, 0xb2, 0xcc, 0xeb, 0x9a, 0xd5, 0xa1, 0xd8, 0x55, 0x37, 0xa0,
|
||||
0x4c, 0x44, 0x55, 0x11, 0x6e, 0x1b, 0x06, 0x50, 0x50, 0x6d, 0x50, 0x08, 0xa1, 0xfd, 0x4a, 0x81,
|
||||
0xd3, 0x49, 0x1d, 0x12, 0x6a, 0xd8, 0xed, 0x71, 0x7c, 0xdf, 0x02, 0x08, 0x5d, 0xd0, 0xcf, 0x24,
|
||||
0x7e, 0x70, 0xbf, 0x3c, 0x91, 0xdb, 0x47, 0xa9, 0x2b, 0x5c, 0x22, 0x28, 0x46, 0x5c, 0xbb, 0x34,
|
||||
0x2c, 0xa6, 0xb0, 0xe6, 0x1a, 0x94, 0x2c, 0x9b, 0xf2, 0xda, 0x5e, 0xd4, 0xcb, 0xbe, 0x88, 0xdb,
|
||||
0x36, 0x25, 0x88, 0xad, 0x6a, 0xaf, 0xc3, 0x4a, 0xa2, 0x18, 0xf1, 0xd4, 0x91, 0x53, 0x4d, 0x0f,
|
||||
0x86, 0x72, 0x44, 0xf8, 0x43, 0xc5, 0x30, 0x63, 0x09, 0x9d, 0x05, 0x1d, 0x46, 0x4e, 0xa7, 0xe5,
|
||||
0xc8, 0x51, 0x21, 0x0f, 0x56, 0x08, 0x8a, 0x28, 0x6b, 0x3a, 0x9c, 0xc9, 0xf4, 0x2d, 0xf5, 0xb3,
|
||||
0x30, 0xcd, 0xfd, 0x88, 0x4b, 0x30, 0xa3, 0xcf, 0x0e, 0xfa, 0xf5, 0x69, 0x0e, 0x41, 0x50, 0xb0,
|
||||
0xa7, 0xfd, 0xae, 0x00, 0xcb, 0x3b, 0x8e, 0xd9, 0x6a, 0x1f, 0x60, 0xd3, 0xeb, 0x58, 0xf6, 0xfe,
|
||||
0x55, 0xc7, 0xa6, 0xf8, 0x1e, 0x55, 0xdf, 0x87, 0xb2, 0xdf, 0xc4, 0x99, 0x06, 0x35, 0x44, 0x99,
|
||||
0x7d, 0x71, 0x54, 0x66, 0x20, 0x0d, 0x1f, 0xda, 0x6f, 0x62, 0xde, 0xda, 0xfb, 0x0e, 0x6e, 0xd3,
|
||||
0x37, 0x31, 0x35, 0x22, 0x13, 0x46, 0x6b, 0x28, 0xa4, 0xaa, 0xbe, 0x0b, 0x25, 0xd2, 0xc3, 0x6d,
|
||||
0x91, 0x1c, 0x2f, 0x8d, 0x56, 0x50, 0x9a, 0x8c, 0xad, 0x1e, 0x6e, 0x47, 0x5e, 0xe8, 0x7f, 0x21,
|
||||
0x46, 0x51, 0x7d, 0xdf, 0x0f, 0x67, 0x83, 0x7a, 0x84, 0xf5, 0x43, 0xb3, 0x9b, 0x97, 0x27, 0xa0,
|
||||
0xcd, 0xf0, 0xf5, 0x8a, 0xa0, 0x7e, 0x92, 0x7f, 0x23, 0x41, 0x57, 0xfb, 0x93, 0x02, 0xd5, 0x34,
|
||||
0xb4, 0x37, 0x2c, 0x42, 0xd5, 0x6f, 0x0c, 0xa9, 0xae, 0x31, 0x9e, 0xea, 0x7c, 0x6c, 0xa6, 0xb8,
|
||||
0xd0, 0xf1, 0x82, 0x95, 0x98, 0xda, 0xde, 0x81, 0x13, 0x16, 0xc5, 0xdd, 0x20, 0xba, 0x36, 0xf3,
|
||||
0x9f, 0x4d, 0x9f, 0x17, 0xe4, 0x4f, 0x6c, 0xfb, 0x84, 0x10, 0xa7, 0xa7, 0x7d, 0x94, 0x71, 0x26,
|
||||
0x5f, 0xb1, 0xea, 0x65, 0x98, 0xe3, 0xae, 0x8f, 0x4d, 0xbf, 0xed, 0x14, 0x01, 0xb2, 0x2c, 0x08,
|
||||
0xcd, 0xb5, 0x62, 0x7b, 0x48, 0x82, 0x54, 0x5f, 0x85, 0x4a, 0xcf, 0xa1, 0xd8, 0xa6, 0x96, 0xd1,
|
||||
0x09, 0x3a, 0x60, 0xdf, 0x1f, 0x59, 0x5b, 0xb8, 0x23, 0xed, 0xa0, 0x04, 0xa4, 0xf6, 0x0b, 0x05,
|
||||
0xce, 0x66, 0x5b, 0x47, 0xfd, 0x2e, 0x54, 0x82, 0x13, 0x5f, 0xed, 0x18, 0x56, 0x37, 0x08, 0xb6,
|
||||
0x2f, 0x8e, 0xd7, 0x4e, 0x30, 0x9c, 0x88, 0xb6, 0x30, 0xf9, 0x69, 0x71, 0xa6, 0x8a, 0x04, 0x46,
|
||||
0x50, 0x82, 0x95, 0xf6, 0xcb, 0x02, 0xcc, 0x4b, 0x20, 0xc7, 0x10, 0x32, 0x6f, 0x4b, 0x21, 0xd3,
|
||||
0xcc, 0x73, 0xcc, 0xac, 0x58, 0xb9, 0x95, 0x88, 0x95, 0x0b, 0x79, 0x88, 0x8e, 0x0e, 0x92, 0x81,
|
||||
0x02, 0x35, 0x09, 0xfe, 0xaa, 0x63, 0x13, 0xaf, 0xeb, 0xb7, 0xac, 0xb7, 0xb1, 0x8b, 0xfd, 0x8a,
|
||||
0xb2, 0x01, 0x65, 0xa3, 0x67, 0x5d, 0x77, 0x1d, 0xaf, 0x97, 0xcc, 0xb9, 0x57, 0x76, 0xb6, 0xd9,
|
||||
0x3a, 0x0a, 0x21, 0x7c, 0xe8, 0x40, 0x22, 0x26, 0xed, 0x4c, 0xbc, 0x13, 0x14, 0x2d, 0x62, 0x08,
|
||||
0x11, 0x56, 0xab, 0x52, 0x66, 0xb5, 0xd2, 0xa1, 0xe8, 0x59, 0xa6, 0xa8, 0xf9, 0x2f, 0x0a, 0x80,
|
||||
0xe2, 0xcd, 0xed, 0xad, 0xff, 0xf4, 0xeb, 0x2f, 0x64, 0x5d, 0x3c, 0xe9, 0xfd, 0x1e, 0x26, 0x8d,
|
||||
0x9b, 0xdb, 0x5b, 0xc8, 0x47, 0xd6, 0x3e, 0x56, 0xe0, 0x94, 0x74, 0xc8, 0x63, 0x48, 0x01, 0x3b,
|
||||
0x72, 0x0a, 0xf8, 0x42, 0x0e, 0x93, 0x65, 0xc4, 0xfe, 0x4f, 0x8a, 0xb0, 0x2a, 0xc1, 0xc5, 0xda,
|
||||
0xf5, 0x27, 0xef, 0xd6, 0x1f, 0xc0, 0x7c, 0x78, 0x7f, 0xbf, 0xe6, 0x3a, 0x5d, 0xe1, 0xdf, 0x5f,
|
||||
0xce, 0x71, 0xae, 0xd8, 0x85, 0x23, 0x70, 0x2e, 0xde, 0xf2, 0x5d, 0x8f, 0x13, 0x46, 0x32, 0x9f,
|
||||
0xdc, 0x77, 0x67, 0xb5, 0x03, 0x15, 0x53, 0xba, 0x75, 0x55, 0x4b, 0xe3, 0x0c, 0x10, 0xe4, 0x9b,
|
||||
0x5a, 0x94, 0x62, 0xe4, 0x75, 0x94, 0xa0, 0xad, 0xfd, 0x4d, 0x81, 0xe7, 0x32, 0x4e, 0x79, 0x0c,
|
||||
0x5e, 0xf6, 0x9e, 0xec, 0x65, 0x2f, 0x4f, 0x64, 0x8d, 0x0c, 0x7f, 0xfb, 0xa9, 0x02, 0xeb, 0x47,
|
||||
0xd9, 0x2f, 0x67, 0x72, 0x58, 0x87, 0xd2, 0x1d, 0xcb, 0x36, 0x99, 0xef, 0xc4, 0xc2, 0xfd, 0xab,
|
||||
0x96, 0x6d, 0x22, 0xb6, 0x13, 0x26, 0x84, 0x62, 0xe6, 0xc5, 0xef, 0x81, 0x02, 0xcf, 0x8f, 0xac,
|
||||
0x0e, 0x63, 0xb4, 0xc0, 0x5f, 0x82, 0x05, 0xcf, 0x26, 0x9e, 0x45, 0x7d, 0x87, 0x89, 0x17, 0xbc,
|
||||
0xa5, 0x41, 0xbf, 0xbe, 0x70, 0x53, 0xde, 0x42, 0x49, 0x58, 0xed, 0xaf, 0xc9, 0x7c, 0xc2, 0xca,
|
||||
0xef, 0x75, 0x38, 0x15, 0x2b, 0x3f, 0x84, 0xc4, 0xae, 0xf8, 0x67, 0x84, 0x0c, 0x71, 0x2c, 0x0e,
|
||||
0x80, 0x86, 0x71, 0xfc, 0x50, 0xeb, 0xc5, 0x55, 0xfd, 0xff, 0x0c, 0x35, 0x69, 0x03, 0xc9, 0x7c,
|
||||
0xb4, 0x7f, 0x17, 0x60, 0x29, 0xa5, 0x78, 0x4c, 0x34, 0xb5, 0xf8, 0x16, 0x40, 0x34, 0x15, 0x11,
|
||||
0x27, 0x68, 0xe4, 0x9b, 0xbd, 0xe8, 0x15, 0x76, 0xb5, 0x88, 0x56, 0x63, 0x14, 0x55, 0x02, 0xb3,
|
||||
0x2e, 0x26, 0xd8, 0x3d, 0xc4, 0xe6, 0x35, 0xc7, 0x15, 0x33, 0x8a, 0xd7, 0x72, 0xa8, 0x68, 0xa8,
|
||||
0xd0, 0xe9, 0x4b, 0xe2, 0x48, 0xb3, 0x28, 0x22, 0x8c, 0xe2, 0x5c, 0xd4, 0x16, 0xac, 0x98, 0x38,
|
||||
0x3e, 0xec, 0x61, 0x49, 0x00, 0x9b, 0xac, 0x7e, 0x95, 0xa3, 0x31, 0xd1, 0x56, 0x1a, 0x10, 0x4a,
|
||||
0xc7, 0xd5, 0xfe, 0xa2, 0xc0, 0x8a, 0x24, 0xd9, 0xd7, 0x70, 0xb7, 0xd7, 0x31, 0x28, 0x3e, 0x86,
|
||||
0xac, 0x7e, 0x4b, 0x6a, 0x56, 0x5e, 0xc9, 0xa1, 0xbe, 0x40, 0xc8, 0xac, 0xa6, 0x45, 0xfb, 0xb3,
|
||||
0x02, 0x67, 0x52, 0x31, 0x8e, 0x21, 0x2d, 0xbe, 0x2b, 0xa7, 0xc5, 0x8b, 0x13, 0x9c, 0x2b, 0x23,
|
||||
0x29, 0x3e, 0xca, 0x3a, 0x55, 0x8b, 0x5f, 0x6a, 0x9e, 0xbd, 0xee, 0x52, 0xfb, 0xa4, 0x28, 0x35,
|
||||
0xc9, 0xe4, 0x38, 0xba, 0x09, 0x39, 0xa3, 0x14, 0xc6, 0xca, 0x28, 0x43, 0x69, 0xb1, 0x98, 0x33,
|
||||
0x2d, 0x12, 0x32, 0x51, 0x5a, 0x54, 0x6f, 0xc1, 0xbc, 0x5c, 0x2b, 0x4a, 0x63, 0x3e, 0x0f, 0x30,
|
||||
0xd2, 0x2d, 0xa9, 0x96, 0xc8, 0x94, 0xd4, 0x37, 0x60, 0x99, 0x50, 0xd7, 0x6b, 0x53, 0xcf, 0xc5,
|
||||
0x66, 0x6c, 0xbe, 0x7b, 0x82, 0xe5, 0x93, 0xea, 0xa0, 0x5f, 0x5f, 0x6e, 0xa5, 0xec, 0xa3, 0x54,
|
||||
0xac, 0x64, 0x9f, 0x4b, 0xc8, 0xd3, 0xdc, 0xe7, 0x92, 0xac, 0xbe, 0xe3, 0x63, 0xb9, 0xcf, 0x8d,
|
||||
0x5b, 0xed, 0x59, 0xe8, 0x73, 0x47, 0x78, 0xd9, 0xc8, 0x3e, 0x97, 0xa6, 0x8c, 0xf9, 0x79, 0x55,
|
||||
0x3b, 0xa2, 0x6c, 0x26, 0xa7, 0xf9, 0xb9, 0xe6, 0xfc, 0xef, 0xc0, 0xf4, 0x6d, 0x36, 0x81, 0x1c,
|
||||
0xb3, 0x4b, 0x0e, 0x0e, 0xca, 0xc7, 0x96, 0xfa, 0x82, 0x60, 0x35, 0xcd, 0xbf, 0x09, 0x0a, 0xa8,
|
||||
0x25, 0xfb, 0xe2, 0xb8, 0x56, 0x9e, 0xe6, 0xbe, 0x38, 0x2e, 0x67, 0x86, 0x7f, 0xfe, 0x41, 0xee,
|
||||
0x8b, 0x53, 0xed, 0x7d, 0xfc, 0x7d, 0xb1, 0x7f, 0x4f, 0xf2, 0xff, 0x92, 0x9e, 0xd1, 0x0e, 0xee,
|
||||
0xd3, 0xe1, 0x3d, 0xe9, 0x46, 0xb0, 0x81, 0x22, 0x18, 0xed, 0x13, 0x05, 0x2a, 0xb2, 0x39, 0x27,
|
||||
0x6a, 0xf4, 0x1e, 0x28, 0xb0, 0xe4, 0x4a, 0x64, 0xe2, 0xcf, 0x6d, 0x17, 0xf2, 0xb8, 0x13, 0x7f,
|
||||
0x6c, 0x7b, 0x4e, 0x30, 0x5c, 0x4a, 0xd9, 0x44, 0x69, 0xac, 0xb4, 0xef, 0x2b, 0x90, 0x06, 0xac,
|
||||
0xda, 0x19, 0x6f, 0xa5, 0x9b, 0x79, 0x06, 0xbd, 0xc2, 0xd3, 0xc7, 0x79, 0x21, 0xfd, 0x7b, 0x4c,
|
||||
0xa3, 0xfc, 0x79, 0x79, 0x22, 0x8d, 0xae, 0x43, 0x89, 0x85, 0x45, 0xc2, 0x1b, 0xb6, 0x0c, 0x6a,
|
||||
0x20, 0xb6, 0xa3, 0xba, 0x50, 0x89, 0x0a, 0x80, 0xbf, 0xce, 0x0a, 0xc6, 0x91, 0x03, 0xda, 0xa8,
|
||||
0x94, 0x24, 0x5e, 0xcb, 0xd9, 0xe1, 0x5a, 0x12, 0x45, 0x94, 0xe0, 0xa0, 0x7d, 0xa8, 0x44, 0x6d,
|
||||
0x02, 0x57, 0xef, 0xdd, 0x0c, 0xf5, 0xe6, 0x7a, 0x4c, 0x08, 0x7f, 0x8c, 0xa5, 0xe1, 0x1f, 0x15,
|
||||
0x60, 0x21, 0xf1, 0xd2, 0x98, 0xfa, 0x3e, 0xaa, 0x3c, 0xe9, 0xf7, 0xd1, 0xef, 0x29, 0xb0, 0xec,
|
||||
0xca, 0x82, 0xc4, 0xdd, 0x7e, 0x33, 0xd7, 0x63, 0x29, 0xf7, 0xfb, 0x35, 0xc1, 0x7e, 0x39, 0x6d,
|
||||
0x17, 0xa5, 0x72, 0xd3, 0x7e, 0xa0, 0x40, 0x2a, 0xb8, 0xea, 0x64, 0xd8, 0xe6, 0x62, 0x3e, 0xdb,
|
||||
0xf0, 0xb7, 0xdc, 0x71, 0x2c, 0xf3, 0xfb, 0xd8, 0xa8, 0x95, 0xbf, 0x6e, 0x3c, 0xf9, 0x5a, 0xbd,
|
||||
0x01, 0x65, 0xdb, 0x31, 0x71, 0xac, 0x87, 0x0c, 0x93, 0xec, 0x0d, 0xb1, 0x8e, 0x42, 0x88, 0x44,
|
||||
0x28, 0x16, 0xc7, 0x0a, 0xc5, 0x03, 0x98, 0x77, 0xe3, 0x3e, 0x2f, 0x5a, 0xbf, 0x31, 0xbb, 0x1c,
|
||||
0x6e, 0xd7, 0x15, 0xc1, 0x43, 0x8e, 0x1e, 0x24, 0x13, 0x96, 0x7a, 0x37, 0xa6, 0xbf, 0xa7, 0xb6,
|
||||
0x77, 0xe3, 0xef, 0xa2, 0xe9, 0xb5, 0xf1, 0xb7, 0x45, 0xa8, 0x66, 0x65, 0x19, 0xf5, 0x43, 0x05,
|
||||
0x56, 0x78, 0x20, 0x25, 0xca, 0xe6, 0x64, 0xe1, 0x1a, 0xde, 0xb6, 0x77, 0xd3, 0x68, 0xa2, 0x74,
|
||||
0x56, 0xb2, 0x10, 0xf1, 0x41, 0xc9, 0x64, 0xff, 0x53, 0x31, 0x2c, 0x84, 0x34, 0x7c, 0x49, 0x67,
|
||||
0x25, 0x39, 0x6e, 0xe9, 0x48, 0xc7, 0xfd, 0x36, 0x4c, 0xbb, 0x6c, 0x20, 0xe2, 0xdf, 0x0b, 0xc6,
|
||||
0x78, 0xa8, 0x4c, 0xff, 0x27, 0x9d, 0xa8, 0x57, 0xe3, 0xdf, 0x04, 0x05, 0x54, 0xb5, 0x5f, 0x2b,
|
||||
0x30, 0x94, 0xf3, 0x26, 0xaa, 0x5c, 0x06, 0x40, 0xef, 0x7f, 0x54, 0x68, 0xc8, 0x22, 0xa6, 0xc5,
|
||||
0x18, 0x51, 0x5d, 0x7f, 0xf8, 0xb8, 0x36, 0xf5, 0xe8, 0x71, 0x6d, 0xea, 0xd3, 0xc7, 0xb5, 0xa9,
|
||||
0x07, 0x83, 0x9a, 0xf2, 0x70, 0x50, 0x53, 0x1e, 0x0d, 0x6a, 0xca, 0xa7, 0x83, 0x9a, 0xf2, 0x8f,
|
||||
0x41, 0x4d, 0xf9, 0xe8, 0x9f, 0xb5, 0xa9, 0xf7, 0xd6, 0x46, 0xfd, 0x3b, 0xdf, 0x7f, 0x03, 0x00,
|
||||
0x00, 0xff, 0xff, 0xf0, 0x19, 0xbb, 0x6c, 0xed, 0x27, 0x00, 0x00,
|
||||
0xbe, 0x25, 0x6e, 0x53, 0xfe, 0x3a, 0xde, 0x79, 0xb1, 0x87, 0xcc, 0xce, 0x6c, 0xe6, 0xbd, 0x75,
|
||||
0x13, 0x71, 0x89, 0x2a, 0x10, 0x5c, 0x90, 0x8a, 0x84, 0x90, 0x38, 0x71, 0xe2, 0xc0, 0x85, 0x0b,
|
||||
0x5c, 0x39, 0x55, 0xd0, 0x1c, 0x83, 0x00, 0x51, 0x71, 0x58, 0x91, 0xe5, 0xc0, 0x81, 0x23, 0x37,
|
||||
0x4e, 0x68, 0xde, 0x7b, 0xf3, 0xf3, 0x66, 0x67, 0xd6, 0x3b, 0x4b, 0x63, 0x25, 0x27, 0xef, 0xbc,
|
||||
0xf7, 0xfd, 0xbd, 0xef, 0xff, 0x7d, 0xcf, 0xb0, 0x71, 0xe7, 0x32, 0x69, 0x58, 0x6e, 0xd3, 0xe8,
|
||||
0x5a, 0x4d, 0x0f, 0x13, 0xb7, 0xe7, 0xb5, 0x71, 0xf3, 0xf0, 0x82, 0x61, 0x77, 0x0f, 0x8c, 0x8b,
|
||||
0xcd, 0x7d, 0xec, 0x60, 0xcf, 0xa0, 0xd8, 0x6c, 0x74, 0x3d, 0x97, 0xba, 0xea, 0x1a, 0x87, 0x6e,
|
||||
0x18, 0x5d, 0xab, 0x11, 0x40, 0x37, 0x02, 0xe8, 0xb3, 0xe7, 0xf7, 0x2d, 0x7a, 0xd0, 0xdb, 0x6b,
|
||||
0xb4, 0xdd, 0x4e, 0x73, 0xdf, 0xdd, 0x77, 0x9b, 0x0c, 0x69, 0xaf, 0x77, 0x9b, 0x7d, 0xb1, 0x0f,
|
||||
0xf6, 0x8b, 0x13, 0x3b, 0xab, 0xc5, 0x58, 0xb7, 0x5d, 0xcf, 0x67, 0x9b, 0x64, 0x78, 0xf6, 0xa5,
|
||||
0x08, 0xa6, 0x63, 0xb4, 0x0f, 0x2c, 0x07, 0x7b, 0xf7, 0x9b, 0xdd, 0x3b, 0xfb, 0xb2, 0xbc, 0x79,
|
||||
0xb0, 0x48, 0xb3, 0x83, 0xa9, 0x91, 0xc6, 0xab, 0x99, 0x85, 0xe5, 0xf5, 0x1c, 0x6a, 0x75, 0x86,
|
||||
0xd9, 0x5c, 0x3a, 0x0a, 0x81, 0xb4, 0x0f, 0x70, 0xc7, 0x48, 0xe2, 0x69, 0xff, 0x52, 0x60, 0xf1,
|
||||
0x8a, 0x6d, 0xbb, 0x6d, 0x83, 0x5a, 0xae, 0x83, 0x30, 0xe9, 0xd9, 0x54, 0x75, 0x61, 0x21, 0x38,
|
||||
0xcf, 0xd7, 0x0c, 0xc7, 0xb4, 0x31, 0xa9, 0x2a, 0xeb, 0xc5, 0x73, 0xb3, 0x9b, 0x1b, 0x8d, 0x51,
|
||||
0x4a, 0x6f, 0x20, 0x09, 0x49, 0x5f, 0x7d, 0xd8, 0xaf, 0x4f, 0x0d, 0xfa, 0xf5, 0x05, 0x79, 0x9d,
|
||||
0xa0, 0x24, 0x75, 0x75, 0x0f, 0x16, 0x8d, 0x43, 0xc3, 0xb2, 0x8d, 0x3d, 0x1b, 0xbf, 0xe5, 0xdc,
|
||||
0x70, 0x4d, 0x4c, 0xaa, 0x85, 0x75, 0xe5, 0xdc, 0xec, 0xe6, 0x7a, 0x9c, 0xa3, 0x6f, 0x99, 0xc6,
|
||||
0xe1, 0x85, 0x86, 0x0f, 0xd0, 0xc2, 0x36, 0x6e, 0x53, 0xd7, 0xd3, 0x97, 0x07, 0xfd, 0xfa, 0xe2,
|
||||
0x95, 0x04, 0x36, 0x1a, 0xa2, 0xa7, 0xfd, 0x54, 0x81, 0x95, 0xe4, 0x49, 0xdf, 0x74, 0x4d, 0x6c,
|
||||
0xab, 0xf7, 0xa0, 0xe2, 0x18, 0x1d, 0x6c, 0x06, 0x62, 0xfa, 0xa7, 0xf5, 0x79, 0xbf, 0x36, 0xfa,
|
||||
0xb4, 0x37, 0x24, 0x9c, 0x24, 0x69, 0x5d, 0x1d, 0xf4, 0xeb, 0x15, 0x19, 0x06, 0x25, 0xf8, 0x68,
|
||||
0xbf, 0x29, 0xc0, 0xe9, 0x2d, 0xcf, 0x3a, 0xc4, 0xde, 0x90, 0x0d, 0x7e, 0xac, 0xc0, 0xea, 0x21,
|
||||
0x76, 0x4c, 0xd7, 0x43, 0xf8, 0x6e, 0x0f, 0x13, 0xba, 0x63, 0x78, 0x46, 0x07, 0x53, 0xec, 0x05,
|
||||
0xe2, 0x9d, 0x8f, 0x89, 0x17, 0xda, 0xbc, 0xd1, 0xbd, 0xb3, 0xdf, 0x10, 0x36, 0x6f, 0x20, 0xe3,
|
||||
0x83, 0xd7, 0xef, 0x51, 0xec, 0x10, 0xcb, 0x75, 0xf4, 0xba, 0xb0, 0xc6, 0xea, 0x6e, 0x3a, 0x55,
|
||||
0x94, 0xc5, 0xce, 0x17, 0x65, 0xc5, 0x48, 0xd3, 0x9c, 0xb0, 0xd1, 0xc5, 0xd1, 0x7a, 0x4a, 0x55,
|
||||
0xba, 0xfe, 0xbc, 0x10, 0x27, 0xdd, 0x26, 0x28, 0x9d, 0xa1, 0xf6, 0xf3, 0x02, 0x54, 0xb8, 0xc2,
|
||||
0x84, 0x98, 0x44, 0xdd, 0x04, 0x30, 0xd9, 0x8a, 0xaf, 0x6b, 0xa6, 0x9a, 0x19, 0x5d, 0x15, 0xc4,
|
||||
0x61, 0x2b, 0xdc, 0x41, 0x31, 0x28, 0x95, 0xc0, 0x22, 0x3f, 0x6c, 0x4c, 0xa9, 0x85, 0x49, 0x94,
|
||||
0x5a, 0x15, 0x8c, 0x16, 0x77, 0x13, 0xe4, 0xd0, 0x10, 0x03, 0xf5, 0x9b, 0x50, 0xf6, 0x84, 0xd0,
|
||||
0xd5, 0x22, 0x0b, 0xa7, 0xf3, 0xe3, 0x85, 0x93, 0x38, 0xaa, 0xbe, 0x28, 0x98, 0x95, 0x83, 0xb3,
|
||||
0xa3, 0x90, 0xa0, 0xa6, 0x43, 0x6d, 0xb4, 0x3f, 0xaa, 0xeb, 0x50, 0x72, 0x22, 0x0d, 0xcd, 0x09,
|
||||
0x5a, 0x25, 0xa6, 0x1b, 0xb6, 0xa3, 0xfd, 0x51, 0x81, 0xd5, 0x04, 0x11, 0x4a, 0x3d, 0x6b, 0xaf,
|
||||
0x47, 0xf1, 0xd1, 0xd8, 0xbe, 0x97, 0x54, 0x8c, 0x00, 0x7e, 0xd7, 0xb0, 0x7b, 0x58, 0xa8, 0xf4,
|
||||
0xd5, 0x5c, 0x61, 0x24, 0x51, 0xd0, 0x3f, 0x27, 0x18, 0xad, 0x8d, 0x82, 0x42, 0x09, 0xbe, 0xda,
|
||||
0xbf, 0x8b, 0x30, 0x12, 0x41, 0xfd, 0x36, 0x94, 0xef, 0xf6, 0x0c, 0x87, 0x5a, 0xf4, 0x7e, 0xf5,
|
||||
0x24, 0x13, 0xb2, 0x91, 0x69, 0x77, 0x49, 0xea, 0xb7, 0x05, 0x96, 0x7e, 0x6a, 0xd0, 0xaf, 0xcf,
|
||||
0x07, 0x5f, 0x5c, 0x8a, 0x90, 0xa4, 0xfa, 0x02, 0x94, 0xf6, 0x5c, 0x97, 0x87, 0x47, 0x59, 0x9f,
|
||||
0x1f, 0xf4, 0xeb, 0x33, 0xba, 0xeb, 0xda, 0x1c, 0x8c, 0x6d, 0xa9, 0x35, 0x28, 0x5a, 0x0e, 0xad,
|
||||
0x4e, 0xaf, 0x2b, 0xe7, 0x8a, 0xfa, 0x9c, 0x6f, 0xd4, 0x6d, 0x87, 0x72, 0x00, 0x7f, 0x43, 0x6d,
|
||||
0x43, 0xd9, 0x72, 0x68, 0xcb, 0xb6, 0xda, 0xb8, 0x5a, 0x66, 0x12, 0xbe, 0x94, 0x47, 0x8d, 0xdb,
|
||||
0x02, 0x97, 0xcb, 0x19, 0x7c, 0x09, 0x39, 0x03, 0xc2, 0xea, 0x17, 0xe0, 0x24, 0xa1, 0x9e, 0xe5,
|
||||
0xec, 0x57, 0x4f, 0x30, 0xb3, 0x2e, 0x0c, 0xfa, 0xf5, 0xd9, 0x16, 0x5b, 0xe1, 0xa0, 0x62, 0x5b,
|
||||
0x75, 0x61, 0x96, 0xff, 0xe2, 0x02, 0xcd, 0x30, 0x81, 0x5e, 0xc9, 0x23, 0x50, 0x2b, 0x42, 0xe7,
|
||||
0x19, 0x3b, 0xb6, 0xc0, 0x79, 0xc5, 0x39, 0xa8, 0x5f, 0x84, 0xe9, 0x43, 0xec, 0xf9, 0x21, 0x56,
|
||||
0x05, 0x26, 0xda, 0xe2, 0xa0, 0x5f, 0x9f, 0xdb, 0xe5, 0x4b, 0x1c, 0x3e, 0x00, 0xd0, 0xb6, 0x60,
|
||||
0x59, 0xe6, 0x75, 0xcd, 0xb2, 0x29, 0xf6, 0xd4, 0x0d, 0x28, 0x13, 0x51, 0x24, 0x84, 0xdb, 0x86,
|
||||
0x01, 0x14, 0x14, 0x0f, 0x14, 0x42, 0x68, 0xbf, 0x52, 0xe0, 0x74, 0x52, 0x87, 0x84, 0x1a, 0x4e,
|
||||
0x7b, 0x1c, 0xdf, 0xb7, 0x00, 0x42, 0x17, 0xf4, 0x33, 0x89, 0x1f, 0xdc, 0x2f, 0x4f, 0xe4, 0xf6,
|
||||
0x51, 0xea, 0x0a, 0x97, 0x08, 0x8a, 0x11, 0xd7, 0x2e, 0x0d, 0x8b, 0x29, 0xac, 0xb9, 0x06, 0x25,
|
||||
0xcb, 0xa1, 0xbc, 0x54, 0x17, 0xf5, 0xb2, 0x2f, 0xe2, 0xb6, 0x43, 0x09, 0x62, 0xab, 0xda, 0xeb,
|
||||
0xb0, 0x92, 0x28, 0x46, 0x3c, 0x75, 0xe4, 0x54, 0xd3, 0x83, 0xa1, 0x1c, 0x11, 0xfe, 0x50, 0x31,
|
||||
0xcc, 0x58, 0x42, 0x67, 0x41, 0xc3, 0x90, 0xd3, 0x69, 0x39, 0xb2, 0x7e, 0x4a, 0x08, 0x30, 0x13,
|
||||
0xac, 0x10, 0x14, 0x51, 0xd6, 0x74, 0x38, 0x93, 0xe9, 0x5b, 0xea, 0xe7, 0x61, 0x9a, 0xfb, 0x11,
|
||||
0x97, 0x60, 0x46, 0x9f, 0x1d, 0xf4, 0xeb, 0xd3, 0x1c, 0x82, 0xa0, 0x60, 0x4f, 0xfb, 0x5d, 0x01,
|
||||
0x96, 0x77, 0x5c, 0xb3, 0xd5, 0x3e, 0xc0, 0x66, 0xcf, 0xb6, 0x9c, 0xfd, 0xab, 0xae, 0x43, 0xf1,
|
||||
0x3d, 0xaa, 0xbe, 0x0f, 0x65, 0xbf, 0x27, 0x33, 0x0d, 0x6a, 0x88, 0x32, 0xfb, 0xe2, 0xa8, 0xcc,
|
||||
0x40, 0x1a, 0x3e, 0xb4, 0xdf, 0x93, 0xbc, 0xb5, 0xf7, 0x3d, 0xdc, 0xa6, 0x6f, 0x62, 0x6a, 0x44,
|
||||
0x26, 0x8c, 0xd6, 0x50, 0x48, 0x55, 0x7d, 0x17, 0x4a, 0xa4, 0x8b, 0xdb, 0x22, 0x39, 0x5e, 0x1a,
|
||||
0xad, 0xa0, 0x34, 0x19, 0x5b, 0x5d, 0xdc, 0x8e, 0xbc, 0xd0, 0xff, 0x42, 0x8c, 0xa2, 0xfa, 0xbe,
|
||||
0x1f, 0xce, 0x06, 0xed, 0xf9, 0xe5, 0xc5, 0xa7, 0x7d, 0x79, 0x02, 0xda, 0x0c, 0x5f, 0xaf, 0x08,
|
||||
0xea, 0x27, 0xf9, 0x37, 0x12, 0x74, 0xb5, 0x3f, 0x29, 0x50, 0x4d, 0x43, 0x7b, 0xc3, 0x22, 0x54,
|
||||
0xfd, 0xd6, 0x90, 0xea, 0x1a, 0xe3, 0xa9, 0xce, 0xc7, 0x66, 0x8a, 0x0b, 0x1d, 0x2f, 0x58, 0x89,
|
||||
0xa9, 0xed, 0x1d, 0x38, 0x61, 0x51, 0xdc, 0x09, 0xa2, 0x6b, 0x33, 0xff, 0xd9, 0xf4, 0x79, 0x41,
|
||||
0xfe, 0xc4, 0xb6, 0x4f, 0x08, 0x71, 0x7a, 0xda, 0x47, 0x19, 0x67, 0xf2, 0x15, 0xab, 0x5e, 0x86,
|
||||
0x39, 0xee, 0xfa, 0xd8, 0xf4, 0xbb, 0x48, 0x11, 0x20, 0xcb, 0x82, 0xd0, 0x5c, 0x2b, 0xb6, 0x87,
|
||||
0x24, 0x48, 0xf5, 0x55, 0xa8, 0x74, 0x5d, 0x8a, 0x1d, 0x6a, 0x19, 0x76, 0xd0, 0xd0, 0xfa, 0xfe,
|
||||
0xc8, 0xda, 0xc2, 0x1d, 0x69, 0x07, 0x25, 0x20, 0xb5, 0x5f, 0x28, 0x70, 0x36, 0xdb, 0x3a, 0xea,
|
||||
0xf7, 0xa1, 0x12, 0x9c, 0xf8, 0xaa, 0x6d, 0x58, 0x9d, 0x20, 0xd8, 0xbe, 0x3c, 0x5e, 0x3b, 0xc1,
|
||||
0x70, 0x22, 0xda, 0xc2, 0xe4, 0xa7, 0xc5, 0x99, 0x2a, 0x12, 0x18, 0x41, 0x09, 0x56, 0xda, 0x2f,
|
||||
0x0b, 0x30, 0x2f, 0x81, 0x1c, 0x43, 0xc8, 0xbc, 0x2d, 0x85, 0x4c, 0x33, 0xcf, 0x31, 0xb3, 0x62,
|
||||
0xe5, 0x56, 0x22, 0x56, 0x2e, 0xe4, 0x21, 0x3a, 0x3a, 0x48, 0x06, 0x0a, 0xd4, 0x24, 0xf8, 0xab,
|
||||
0xae, 0x43, 0x7a, 0x1d, 0xbf, 0x65, 0xbd, 0x8d, 0x3d, 0xec, 0x57, 0x94, 0x0d, 0x28, 0x1b, 0x5d,
|
||||
0xeb, 0xba, 0xe7, 0xf6, 0xba, 0xc9, 0x9c, 0x7b, 0x65, 0x67, 0x9b, 0xad, 0xa3, 0x10, 0xc2, 0x87,
|
||||
0x0e, 0x24, 0x62, 0xd2, 0xce, 0xc4, 0x3b, 0x41, 0xd1, 0x22, 0x86, 0x10, 0x61, 0xb5, 0x2a, 0x65,
|
||||
0x56, 0x2b, 0x1d, 0x8a, 0x3d, 0xcb, 0x14, 0x35, 0xff, 0x45, 0x01, 0x50, 0xbc, 0xb9, 0xbd, 0xf5,
|
||||
0xdf, 0x7e, 0xfd, 0x85, 0xac, 0x7b, 0x24, 0xbd, 0xdf, 0xc5, 0xa4, 0x71, 0x73, 0x7b, 0x0b, 0xf9,
|
||||
0xc8, 0xda, 0xc7, 0x0a, 0x9c, 0x92, 0x0e, 0x79, 0x0c, 0x29, 0x60, 0x47, 0x4e, 0x01, 0x5f, 0xca,
|
||||
0x61, 0xb2, 0x8c, 0xd8, 0x1f, 0x14, 0x60, 0x55, 0x82, 0x8b, 0xb5, 0xeb, 0x4f, 0xde, 0xad, 0x3f,
|
||||
0x80, 0xf9, 0xf0, 0x3a, 0x7e, 0xcd, 0x73, 0x3b, 0xc2, 0xbf, 0xbf, 0x9a, 0xe3, 0x5c, 0xb1, 0x0b,
|
||||
0x47, 0xe0, 0x5c, 0xbc, 0xe5, 0xbb, 0x1e, 0x27, 0x8c, 0x64, 0x3e, 0xaa, 0x0d, 0x15, 0x53, 0xba,
|
||||
0x44, 0x55, 0x4b, 0xe3, 0x5c, 0xef, 0xe5, 0x8b, 0x57, 0x94, 0x31, 0xe4, 0x75, 0x94, 0xa0, 0xad,
|
||||
0xfd, 0x4d, 0x81, 0xe7, 0x32, 0x84, 0x3e, 0x06, 0xa7, 0x79, 0x4f, 0x76, 0x9a, 0x97, 0x27, 0x52,
|
||||
0x6e, 0x86, 0xfb, 0xfc, 0x4c, 0x81, 0xf5, 0xa3, 0xcc, 0x91, 0x33, 0xd6, 0xd7, 0xa1, 0x74, 0xc7,
|
||||
0x72, 0x4c, 0xe6, 0x0a, 0xb1, 0xe8, 0xfd, 0xba, 0xe5, 0x98, 0x88, 0xed, 0x84, 0xf1, 0x5d, 0xcc,
|
||||
0xbc, 0xc7, 0x3d, 0x50, 0xe0, 0xf9, 0x91, 0xc9, 0x7e, 0x8c, 0x8e, 0xf6, 0x2b, 0xb0, 0xd0, 0x73,
|
||||
0x48, 0xcf, 0xa2, 0xc6, 0x9e, 0x8d, 0xe3, 0xf5, 0x6b, 0x69, 0xd0, 0xaf, 0x2f, 0xdc, 0x94, 0xb7,
|
||||
0x50, 0x12, 0x56, 0xfb, 0x6b, 0x32, 0x3d, 0xb0, 0x6a, 0x7a, 0x1d, 0x4e, 0xc5, 0xaa, 0x09, 0x21,
|
||||
0xb1, 0x1b, 0xfb, 0x19, 0x21, 0x43, 0x1c, 0x8b, 0x03, 0xa0, 0x61, 0x1c, 0x3f, 0x72, 0xba, 0x71,
|
||||
0x55, 0x7f, 0x96, 0x91, 0x23, 0x6d, 0x20, 0x99, 0x8f, 0xf6, 0x9f, 0x02, 0x2c, 0xa5, 0xd4, 0x82,
|
||||
0x89, 0x86, 0x10, 0xdf, 0x01, 0x88, 0x86, 0x1c, 0xe2, 0x04, 0x8d, 0x7c, 0xa3, 0x14, 0xbd, 0xc2,
|
||||
0x6e, 0x0a, 0xd1, 0x6a, 0x8c, 0xa2, 0x4a, 0x60, 0xd6, 0xc3, 0x04, 0x7b, 0x87, 0xd8, 0xbc, 0xe6,
|
||||
0x7a, 0x62, 0xe4, 0xf0, 0x5a, 0x0e, 0x15, 0x0d, 0xd5, 0x2d, 0x7d, 0x49, 0x1c, 0x69, 0x16, 0x45,
|
||||
0x84, 0x51, 0x9c, 0x8b, 0xda, 0x82, 0x15, 0x13, 0xc7, 0x67, 0x37, 0x2c, 0x09, 0x60, 0x93, 0x95,
|
||||
0xa3, 0x72, 0x34, 0xf5, 0xd9, 0x4a, 0x03, 0x42, 0xe9, 0xb8, 0xda, 0x5f, 0x14, 0x58, 0x91, 0x24,
|
||||
0xfb, 0x06, 0xee, 0x74, 0x6d, 0x83, 0xe2, 0x63, 0x48, 0xd2, 0xb7, 0xa4, 0xde, 0xe3, 0x95, 0x1c,
|
||||
0xea, 0x0b, 0x84, 0xcc, 0xea, 0x41, 0xb4, 0x3f, 0x2b, 0x70, 0x26, 0x15, 0xe3, 0x18, 0xd2, 0xe2,
|
||||
0xbb, 0x72, 0x5a, 0xbc, 0x38, 0xc1, 0xb9, 0x32, 0x92, 0xe2, 0xa3, 0xac, 0x53, 0xb5, 0xf8, 0x1d,
|
||||
0xe5, 0xd9, 0x6b, 0x16, 0xb5, 0x4f, 0x8a, 0x52, 0xcf, 0x4b, 0x8e, 0xa3, 0x39, 0x90, 0x33, 0x4a,
|
||||
0x61, 0xac, 0x8c, 0x32, 0x94, 0x16, 0x8b, 0x39, 0xd3, 0x22, 0x21, 0x13, 0xa5, 0x45, 0xf5, 0x16,
|
||||
0xcc, 0xcb, 0xb5, 0xa2, 0x34, 0xe6, 0xf0, 0x9e, 0x91, 0x6e, 0x49, 0xb5, 0x44, 0xa6, 0xa4, 0xbe,
|
||||
0x01, 0xcb, 0x84, 0x7a, 0xbd, 0x36, 0xed, 0x79, 0xd8, 0x8c, 0x8d, 0x6b, 0x4f, 0xb0, 0x7c, 0x52,
|
||||
0x1d, 0xf4, 0xeb, 0xcb, 0xad, 0x94, 0x7d, 0x94, 0x8a, 0x95, 0x6c, 0x5b, 0x09, 0x79, 0x9a, 0xdb,
|
||||
0x56, 0x92, 0xd5, 0x77, 0x7c, 0x5c, 0x94, 0xda, 0xd6, 0xb8, 0xd5, 0x9e, 0x85, 0xb6, 0x75, 0x84,
|
||||
0x97, 0x8d, 0x6c, 0x5b, 0x69, 0xca, 0xd4, 0x9e, 0x57, 0xb5, 0x23, 0xca, 0x66, 0x72, 0x38, 0x9f,
|
||||
0x6b, 0x6c, 0xff, 0x0e, 0x4c, 0xdf, 0x66, 0x03, 0xc5, 0x31, 0xbb, 0xe4, 0xe0, 0xa0, 0x7c, 0x0a,
|
||||
0xa9, 0x2f, 0x08, 0x56, 0xd3, 0xfc, 0x9b, 0xa0, 0x80, 0x5a, 0xb2, 0x2f, 0x8e, 0x6b, 0xe5, 0x69,
|
||||
0xee, 0x8b, 0xe3, 0x72, 0x66, 0xf8, 0xe7, 0x1f, 0xe4, 0xbe, 0x38, 0xd5, 0xde, 0xc7, 0xdf, 0x17,
|
||||
0xab, 0x4d, 0x98, 0xf1, 0xff, 0x92, 0xae, 0xd1, 0x0e, 0xae, 0xc7, 0xe1, 0xa4, 0xf1, 0x46, 0xb0,
|
||||
0x81, 0x22, 0x18, 0xed, 0x13, 0x05, 0x2a, 0xb2, 0x39, 0x27, 0x6a, 0xf4, 0x1e, 0x28, 0xb0, 0xe4,
|
||||
0x49, 0x64, 0xe2, 0xaf, 0x67, 0x17, 0xf2, 0xb8, 0x13, 0x7f, 0x3b, 0x7b, 0x4e, 0x30, 0x5c, 0x4a,
|
||||
0xd9, 0x44, 0x69, 0xac, 0xb4, 0x1f, 0x2a, 0x90, 0x06, 0xac, 0x3a, 0x19, 0x4f, 0x9f, 0x9b, 0x79,
|
||||
0xe6, 0xb6, 0xc2, 0xd3, 0xc7, 0x79, 0xf0, 0xfc, 0x7b, 0x4c, 0xa3, 0xfc, 0xf1, 0x77, 0x22, 0x8d,
|
||||
0xae, 0x43, 0x89, 0x85, 0x45, 0xc2, 0x1b, 0xb6, 0x0c, 0x6a, 0x20, 0xb6, 0xa3, 0x7a, 0x50, 0x89,
|
||||
0x0a, 0x80, 0xbf, 0xce, 0x0a, 0xc6, 0x91, 0xf3, 0xd6, 0xa8, 0x94, 0x24, 0xde, 0xb2, 0xd9, 0xe1,
|
||||
0x5a, 0x12, 0x45, 0x94, 0xe0, 0xa0, 0x7d, 0xa8, 0x44, 0x6d, 0x02, 0x57, 0xef, 0xdd, 0x0c, 0xf5,
|
||||
0xe6, 0x7a, 0x1b, 0x08, 0x7f, 0x8c, 0xa5, 0xe1, 0x9f, 0x14, 0x60, 0x21, 0xf1, 0x70, 0x98, 0xfa,
|
||||
0xdc, 0xa9, 0x3c, 0xe9, 0xe7, 0xce, 0x1f, 0x28, 0xb0, 0xec, 0xc9, 0x82, 0xc4, 0xdd, 0x7e, 0x33,
|
||||
0xd7, 0xdb, 0x27, 0xf7, 0xfb, 0x35, 0xc1, 0x7e, 0x39, 0x6d, 0x17, 0xa5, 0x72, 0xd3, 0x7e, 0xa4,
|
||||
0x40, 0x2a, 0xb8, 0xea, 0x66, 0xd8, 0xe6, 0x62, 0x3e, 0xdb, 0xf0, 0xa7, 0xd9, 0x71, 0x2c, 0xf3,
|
||||
0xfb, 0xd8, 0xe4, 0x94, 0x3f, 0x56, 0x3c, 0xf9, 0x5a, 0xbd, 0x01, 0x65, 0xc7, 0x35, 0x71, 0xac,
|
||||
0x87, 0x0c, 0x93, 0xec, 0x0d, 0xb1, 0x8e, 0x42, 0x88, 0x44, 0x28, 0x16, 0xc7, 0x0a, 0xc5, 0x03,
|
||||
0x98, 0xf7, 0xe2, 0x3e, 0x2f, 0x5a, 0xbf, 0x31, 0xbb, 0x1c, 0x6e, 0xd7, 0x15, 0xc1, 0x43, 0x8e,
|
||||
0x1e, 0x24, 0x13, 0x96, 0x7a, 0x37, 0xa6, 0xbf, 0xa7, 0xb6, 0x77, 0xe3, 0xcf, 0x9c, 0xe9, 0xb5,
|
||||
0xf1, 0xb7, 0x45, 0xa8, 0x66, 0x65, 0x19, 0xf5, 0x43, 0x05, 0x56, 0x78, 0x20, 0x25, 0xca, 0xe6,
|
||||
0x64, 0xe1, 0x1a, 0xde, 0xb6, 0x77, 0xd3, 0x68, 0xa2, 0x74, 0x56, 0xb2, 0x10, 0xf1, 0x41, 0xc9,
|
||||
0x64, 0xff, 0x22, 0x31, 0x2c, 0x84, 0x34, 0x7c, 0x49, 0x67, 0x25, 0x39, 0x6e, 0xe9, 0x48, 0xc7,
|
||||
0xfd, 0x2e, 0x4c, 0x7b, 0x6c, 0x20, 0xe2, 0xdf, 0x0b, 0xc6, 0x78, 0x77, 0x4c, 0xff, 0x9f, 0x9b,
|
||||
0xa8, 0x57, 0xe3, 0xdf, 0x04, 0x05, 0x54, 0xb5, 0x5f, 0x2b, 0x30, 0x94, 0xf3, 0x26, 0xaa, 0x5c,
|
||||
0x06, 0x40, 0xf7, 0xff, 0x54, 0x68, 0xc8, 0x22, 0xa6, 0xc5, 0x18, 0x51, 0x5d, 0x7f, 0xf8, 0xb8,
|
||||
0x36, 0xf5, 0xe8, 0x71, 0x6d, 0xea, 0xd3, 0xc7, 0xb5, 0xa9, 0x07, 0x83, 0x9a, 0xf2, 0x70, 0x50,
|
||||
0x53, 0x1e, 0x0d, 0x6a, 0xca, 0xa7, 0x83, 0x9a, 0xf2, 0x8f, 0x41, 0x4d, 0xf9, 0xe8, 0x9f, 0xb5,
|
||||
0xa9, 0xf7, 0xd6, 0x46, 0xfd, 0xb3, 0xdd, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x4f, 0xfc, 0x4e,
|
||||
0xd3, 0x8b, 0x27, 0x00, 0x00,
|
||||
}
|
||||
|
||||
func (m *AllocationResult) Marshal() (dAtA []byte, err error) {
|
||||
@ -1493,14 +1492,6 @@ func (m *AllocationResult) MarshalToSizedBuffer(dAtA []byte) (int, error) {
|
||||
_ = i
|
||||
var l int
|
||||
_ = l
|
||||
i--
|
||||
if m.Shareable {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x18
|
||||
if m.AvailableOnNodes != nil {
|
||||
{
|
||||
size, err := m.AvailableOnNodes.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -2362,14 +2353,6 @@ func (m *ResourceClaimParameters) MarshalToSizedBuffer(dAtA []byte) (int, error)
|
||||
dAtA[i] = 0x22
|
||||
}
|
||||
}
|
||||
i--
|
||||
if m.Shareable {
|
||||
dAtA[i] = 1
|
||||
} else {
|
||||
dAtA[i] = 0
|
||||
}
|
||||
i--
|
||||
dAtA[i] = 0x18
|
||||
if m.GeneratedFrom != nil {
|
||||
{
|
||||
size, err := m.GeneratedFrom.MarshalToSizedBuffer(dAtA[:i])
|
||||
@ -3492,7 +3475,6 @@ func (m *AllocationResult) Size() (n int) {
|
||||
l = m.AvailableOnNodes.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
n += 2
|
||||
return n
|
||||
}
|
||||
|
||||
@ -3808,7 +3790,6 @@ func (m *ResourceClaimParameters) Size() (n int) {
|
||||
l = m.GeneratedFrom.Size()
|
||||
n += 1 + l + sovGenerated(uint64(l))
|
||||
}
|
||||
n += 2
|
||||
if len(m.DriverRequests) > 0 {
|
||||
for _, e := range m.DriverRequests {
|
||||
l = e.Size()
|
||||
@ -4217,7 +4198,6 @@ func (this *AllocationResult) String() string {
|
||||
s := strings.Join([]string{`&AllocationResult{`,
|
||||
`ResourceHandles:` + repeatedStringForResourceHandles + `,`,
|
||||
`AvailableOnNodes:` + strings.Replace(fmt.Sprintf("%v", this.AvailableOnNodes), "NodeSelector", "v1.NodeSelector", 1) + `,`,
|
||||
`Shareable:` + fmt.Sprintf("%v", this.Shareable) + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
return s
|
||||
@ -4475,7 +4455,6 @@ func (this *ResourceClaimParameters) String() string {
|
||||
s := strings.Join([]string{`&ResourceClaimParameters{`,
|
||||
`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`,
|
||||
`GeneratedFrom:` + strings.Replace(this.GeneratedFrom.String(), "ResourceClaimParametersReference", "ResourceClaimParametersReference", 1) + `,`,
|
||||
`Shareable:` + fmt.Sprintf("%v", this.Shareable) + `,`,
|
||||
`DriverRequests:` + repeatedStringForDriverRequests + `,`,
|
||||
`}`,
|
||||
}, "")
|
||||
@ -4898,26 +4877,6 @@ func (m *AllocationResult) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Shareable", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.Shareable = bool(v != 0)
|
||||
default:
|
||||
iNdEx = preIndex
|
||||
skippy, err := skipGenerated(dAtA[iNdEx:])
|
||||
@ -7330,26 +7289,6 @@ func (m *ResourceClaimParameters) Unmarshal(dAtA []byte) error {
|
||||
return err
|
||||
}
|
||||
iNdEx = postIndex
|
||||
case 3:
|
||||
if wireType != 0 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field Shareable", wireType)
|
||||
}
|
||||
var v int
|
||||
for shift := uint(0); ; shift += 7 {
|
||||
if shift >= 64 {
|
||||
return ErrIntOverflowGenerated
|
||||
}
|
||||
if iNdEx >= l {
|
||||
return io.ErrUnexpectedEOF
|
||||
}
|
||||
b := dAtA[iNdEx]
|
||||
iNdEx++
|
||||
v |= int(b&0x7F) << shift
|
||||
if b < 0x80 {
|
||||
break
|
||||
}
|
||||
}
|
||||
m.Shareable = bool(v != 0)
|
||||
case 4:
|
||||
if wireType != 2 {
|
||||
return fmt.Errorf("proto: wrong wireType = %d for field DriverRequests", wireType)
|
||||
|
@ -57,11 +57,6 @@ message AllocationResult {
|
||||
// everywhere.
|
||||
// +optional
|
||||
optional .k8s.io.api.core.v1.NodeSelector availableOnNodes = 2;
|
||||
|
||||
// Shareable determines whether the resource supports more
|
||||
// than one consumer at a time.
|
||||
// +optional
|
||||
optional bool shareable = 3;
|
||||
}
|
||||
|
||||
// AllocationResultModel must have one and only one field set.
|
||||
@ -334,11 +329,6 @@ message ResourceClaimParameters {
|
||||
// +optional
|
||||
optional ResourceClaimParametersReference generatedFrom = 2;
|
||||
|
||||
// Shareable indicates whether the allocated claim is meant to be shareable
|
||||
// by multiple consumers at the same time.
|
||||
// +optional
|
||||
optional bool shareable = 3;
|
||||
|
||||
// DriverRequests describes all resources that are needed for the
|
||||
// allocated claim. A single claim may use resources coming from
|
||||
// different drivers. For each driver, this array has at most one
|
||||
|
@ -145,11 +145,6 @@ type AllocationResult struct {
|
||||
// everywhere.
|
||||
// +optional
|
||||
AvailableOnNodes *v1.NodeSelector `json:"availableOnNodes,omitempty" protobuf:"bytes,2,opt,name=availableOnNodes"`
|
||||
|
||||
// Shareable determines whether the resource supports more
|
||||
// than one consumer at a time.
|
||||
// +optional
|
||||
Shareable bool `json:"shareable,omitempty" protobuf:"varint,3,opt,name=shareable"`
|
||||
}
|
||||
|
||||
// AllocationResultResourceHandlesMaxSize represents the maximum number of
|
||||
@ -573,11 +568,6 @@ type ResourceClaimParameters struct {
|
||||
// +optional
|
||||
GeneratedFrom *ResourceClaimParametersReference `json:"generatedFrom,omitempty" protobuf:"bytes,2,opt,name=generatedFrom"`
|
||||
|
||||
// Shareable indicates whether the allocated claim is meant to be shareable
|
||||
// by multiple consumers at the same time.
|
||||
// +optional
|
||||
Shareable bool `json:"shareable,omitempty" protobuf:"bytes,3,opt,name=shareable"`
|
||||
|
||||
// DriverRequests describes all resources that are needed for the
|
||||
// allocated claim. A single claim may use resources coming from
|
||||
// different drivers. For each driver, this array has at most one
|
||||
|
@ -31,7 +31,6 @@ var map_AllocationResult = map[string]string{
|
||||
"": "AllocationResult contains attributes of an allocated resource.",
|
||||
"resourceHandles": "ResourceHandles contain the state associated with an allocation that should be maintained throughout the lifetime of a claim. Each ResourceHandle contains data that should be passed to a specific kubelet plugin once it lands on a node. This data is returned by the driver after a successful allocation and is opaque to Kubernetes. Driver documentation may explain to users how to interpret this data if needed.\n\nSetting this field is optional. It has a maximum size of 32 entries. If null (or empty), it is assumed this allocation will be processed by a single kubelet plugin with no ResourceHandle data attached. The name of the kubelet plugin invoked will match the DriverName set in the ResourceClaimStatus this AllocationResult is embedded in.",
|
||||
"availableOnNodes": "This field will get set by the resource driver after it has allocated the resource to inform the scheduler where it can schedule Pods using the ResourceClaim.\n\nSetting this field is optional. If null, the resource is available everywhere.",
|
||||
"shareable": "Shareable determines whether the resource supports more than one consumer at a time.",
|
||||
}
|
||||
|
||||
func (AllocationResult) SwaggerDoc() map[string]string {
|
||||
@ -144,7 +143,6 @@ var map_ResourceClaimParameters = map[string]string{
|
||||
"": "ResourceClaimParameters defines resource requests for a ResourceClaim in an in-tree format understood by Kubernetes.",
|
||||
"metadata": "Standard object metadata",
|
||||
"generatedFrom": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the claim parameters when the parameter reference of the claim refers to some unknown type.",
|
||||
"shareable": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.",
|
||||
"driverRequests": "DriverRequests describes all resources that are needed for the allocated claim. A single claim may use resources coming from different drivers. For each driver, this array has at most one entry which then may have one or more per-driver requests.\n\nMay be empty, in which case the claim can always be allocated.",
|
||||
}
|
||||
|
||||
|
@ -123,8 +123,7 @@
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"shareable": true
|
||||
}
|
||||
},
|
||||
"reservedFor": [
|
||||
{
|
||||
|
Binary file not shown.
@ -81,7 +81,6 @@ status:
|
||||
replicas: 1
|
||||
status:
|
||||
available: 1
|
||||
shareable: true
|
||||
deallocationRequested: true
|
||||
driverName: driverNameValue
|
||||
reservedFor:
|
||||
|
@ -48,7 +48,6 @@
|
||||
"kind": "kindValue",
|
||||
"name": "nameValue"
|
||||
},
|
||||
"shareable": true,
|
||||
"driverRequests": [
|
||||
{
|
||||
"driverName": "driverNameValue",
|
||||
|
Binary file not shown.
@ -55,4 +55,3 @@ metadata:
|
||||
resourceVersion: resourceVersionValue
|
||||
selfLink: selfLinkValue
|
||||
uid: uidValue
|
||||
shareable: true
|
||||
|
@ -12166,9 +12166,6 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
elementType:
|
||||
namedType: io.k8s.api.resource.v1alpha3.ResourceHandle
|
||||
elementRelationship: atomic
|
||||
- name: shareable
|
||||
type:
|
||||
scalar: boolean
|
||||
- name: io.k8s.api.resource.v1alpha3.DriverAllocationResult
|
||||
map:
|
||||
fields:
|
||||
@ -12387,9 +12384,6 @@ var schemaYAML = typed.YAMLObject(`types:
|
||||
type:
|
||||
namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
|
||||
default: {}
|
||||
- name: shareable
|
||||
type:
|
||||
scalar: boolean
|
||||
- name: io.k8s.api.resource.v1alpha3.ResourceClaimParametersReference
|
||||
map:
|
||||
fields:
|
||||
|
@ -27,7 +27,6 @@ import (
|
||||
type AllocationResultApplyConfiguration struct {
|
||||
ResourceHandles []ResourceHandleApplyConfiguration `json:"resourceHandles,omitempty"`
|
||||
AvailableOnNodes *v1.NodeSelectorApplyConfiguration `json:"availableOnNodes,omitempty"`
|
||||
Shareable *bool `json:"shareable,omitempty"`
|
||||
}
|
||||
|
||||
// AllocationResultApplyConfiguration constructs a declarative configuration of the AllocationResult type for use with
|
||||
@ -56,11 +55,3 @@ func (b *AllocationResultApplyConfiguration) WithAvailableOnNodes(value *v1.Node
|
||||
b.AvailableOnNodes = value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithShareable sets the Shareable field in the declarative configuration to the given value
|
||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||
// If called multiple times, the Shareable field is set to the value of the last call.
|
||||
func (b *AllocationResultApplyConfiguration) WithShareable(value bool) *AllocationResultApplyConfiguration {
|
||||
b.Shareable = &value
|
||||
return b
|
||||
}
|
||||
|
@ -33,7 +33,6 @@ type ResourceClaimParametersApplyConfiguration struct {
|
||||
v1.TypeMetaApplyConfiguration `json:",inline"`
|
||||
*v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"`
|
||||
GeneratedFrom *ResourceClaimParametersReferenceApplyConfiguration `json:"generatedFrom,omitempty"`
|
||||
Shareable *bool `json:"shareable,omitempty"`
|
||||
DriverRequests []DriverRequestsApplyConfiguration `json:"driverRequests,omitempty"`
|
||||
}
|
||||
|
||||
@ -250,14 +249,6 @@ func (b *ResourceClaimParametersApplyConfiguration) WithGeneratedFrom(value *Res
|
||||
return b
|
||||
}
|
||||
|
||||
// WithShareable sets the Shareable field in the declarative configuration to the given value
|
||||
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
||||
// If called multiple times, the Shareable field is set to the value of the last call.
|
||||
func (b *ResourceClaimParametersApplyConfiguration) WithShareable(value bool) *ResourceClaimParametersApplyConfiguration {
|
||||
b.Shareable = &value
|
||||
return b
|
||||
}
|
||||
|
||||
// WithDriverRequests adds the given value to the DriverRequests field in the declarative configuration
|
||||
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
||||
// If called multiple times, values provided by each call will be appended to the DriverRequests field.
|
||||
|
@ -180,8 +180,8 @@ func IsReservedForPod(pod *v1.Pod, claim *resourceapi.ResourceClaim) bool {
|
||||
|
||||
// CanBeReserved checks whether the claim could be reserved for another object.
|
||||
func CanBeReserved(claim *resourceapi.ResourceClaim) bool {
|
||||
return claim.Status.Allocation.Shareable ||
|
||||
len(claim.Status.ReservedFor) == 0
|
||||
// Currently no restrictions on sharing...
|
||||
return true
|
||||
}
|
||||
|
||||
// IsAllocatedWithStructuredParameters checks whether the claim is allocated
|
||||
|
@ -55,9 +55,7 @@ const (
|
||||
|
||||
// networkResources can be passed to NewDriver directly.
|
||||
func networkResources() app.Resources {
|
||||
return app.Resources{
|
||||
Shareable: true,
|
||||
}
|
||||
return app.Resources{}
|
||||
}
|
||||
|
||||
// perNode returns a function which can be passed to NewDriver. The nodes
|
||||
@ -121,47 +119,15 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
|
||||
}
|
||||
})
|
||||
|
||||
ginkgo.It("must not run a pod if a claim is not reserved for it", func(ctx context.Context) {
|
||||
// Pretend that the resource is allocated and reserved for some other entity.
|
||||
// Until the resourceclaim controller learns to remove reservations for
|
||||
// arbitrary types we can simply fake somthing here.
|
||||
ginkgo.It("must not run a pod if a claim is not ready", func(ctx context.Context) {
|
||||
claim := b.externalClaim()
|
||||
b.create(ctx, claim)
|
||||
|
||||
claim, err := f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Get(ctx, claim.Name, metav1.GetOptions{})
|
||||
framework.ExpectNoError(err, "get claim")
|
||||
|
||||
claim.Finalizers = append(claim.Finalizers, "e2e.test/delete-protection")
|
||||
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Update(ctx, claim, metav1.UpdateOptions{})
|
||||
framework.ExpectNoError(err, "add claim finalizer")
|
||||
|
||||
ginkgo.DeferCleanup(func(ctx context.Context) {
|
||||
claim.Status.Allocation = nil
|
||||
claim.Status.ReservedFor = nil
|
||||
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).UpdateStatus(ctx, claim, metav1.UpdateOptions{})
|
||||
framework.ExpectNoError(err, "update claim")
|
||||
|
||||
claim.Finalizers = nil
|
||||
_, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).Update(ctx, claim, metav1.UpdateOptions{})
|
||||
framework.ExpectNoError(err, "remove claim finalizer")
|
||||
})
|
||||
|
||||
claim.Status.Allocation = &resourceapi.AllocationResult{}
|
||||
claim.Status.DriverName = driver.Name
|
||||
claim.Status.ReservedFor = append(claim.Status.ReservedFor, resourceapi.ResourceClaimConsumerReference{
|
||||
APIGroup: "example.com",
|
||||
Resource: "some",
|
||||
Name: "thing",
|
||||
UID: "12345",
|
||||
})
|
||||
claim, err = f.ClientSet.ResourceV1alpha3().ResourceClaims(f.Namespace.Name).UpdateStatus(ctx, claim, metav1.UpdateOptions{})
|
||||
framework.ExpectNoError(err, "update claim")
|
||||
|
||||
pod := b.podExternal()
|
||||
|
||||
// This bypasses scheduling and therefore the pod gets
|
||||
// to run on the node although it never gets added to
|
||||
// the `ReservedFor` field of the claim.
|
||||
// to run on the node although the claim is not ready.
|
||||
// Because the parameters are missing, the claim
|
||||
// also cannot be allocated later.
|
||||
pod.Spec.NodeName = nodes.NodeNames[0]
|
||||
b.create(ctx, pod)
|
||||
|
||||
@ -369,7 +335,6 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
|
||||
numPods := 10
|
||||
generateResources := func() app.Resources {
|
||||
resources := perNode(maxAllocations, nodes)()
|
||||
resources.Shareable = true
|
||||
return resources
|
||||
}
|
||||
driver := NewDriver(f, nodes, generateResources) // All tests get their own driver instance.
|
||||
@ -412,7 +377,7 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
|
||||
b.testPod(ctx, f.ClientSet, pod, expectedEnv...)
|
||||
err := f.ClientSet.CoreV1().Pods(pod.Namespace).Delete(ctx, pod.Name, metav1.DeleteOptions{})
|
||||
framework.ExpectNoError(err, "delete pod")
|
||||
framework.ExpectNoError(e2epod.WaitForPodNotFoundInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace, f.Timeouts.PodStartSlow))
|
||||
framework.ExpectNoError(e2epod.WaitForPodNotFoundInNamespace(ctx, f.ClientSet, pod.Name, pod.Namespace, time.Duration(numPods)*f.Timeouts.PodStartSlow))
|
||||
}()
|
||||
}
|
||||
wg.Wait()
|
||||
@ -448,18 +413,13 @@ var _ = framework.SIGDescribe("node")("DRA", feature.DynamicResourceAllocation,
|
||||
|
||||
f.It("supports sharing a claim sequentially", f.WithSlow(), func(ctx context.Context) {
|
||||
objects, expectedEnv := b.flexibleParameters()
|
||||
numPods := numPods / 2
|
||||
|
||||
// Change from "shareable" to "not shareable", if possible.
|
||||
switch parameterMode {
|
||||
case parameterModeConfigMap:
|
||||
ginkgo.Skip("cannot change the driver's controller behavior on-the-fly")
|
||||
case parameterModeTranslated, parameterModeStructured:
|
||||
objects[len(objects)-1].(*resourceapi.ResourceClaimParameters).Shareable = false
|
||||
}
|
||||
|
||||
objects = append(objects, b.externalClaim())
|
||||
|
||||
// This test used to test usage of the claim by one pod
|
||||
// at a time. After removing the "not sharable"
|
||||
// feature, we have to create more pods than supported
|
||||
// at the same time to get the same effect.
|
||||
numPods := resourceapi.ResourceClaimReservedForMaxSize + 10
|
||||
pods := make([]*v1.Pod, numPods)
|
||||
for i := 0; i < numPods; i++ {
|
||||
pod := b.podExternal()
|
||||
@ -1286,8 +1246,6 @@ func (b *builder) claimParameters(generatedFrom string, claimKV, requestKV []str
|
||||
Name: b.parametersName(),
|
||||
},
|
||||
|
||||
Shareable: true,
|
||||
|
||||
// Without any request, nothing gets allocated and vendor
|
||||
// parameters are also not passed down because they get
|
||||
// attached to the allocation result.
|
||||
|
@ -50,7 +50,6 @@ type Resources struct {
|
||||
// available. Mutually exclusive with Nodes.
|
||||
NodeLabels labels.Set
|
||||
MaxAllocations int
|
||||
Shareable bool
|
||||
|
||||
// AllocateWrapper, if set, gets called for each Allocate call.
|
||||
AllocateWrapper AllocateWrapperType
|
||||
@ -70,9 +69,7 @@ func (r Resources) AllNodes(nodeLister listersv1.NodeLister) []string {
|
||||
}
|
||||
|
||||
func (r Resources) NewAllocation(node string, data []byte) *resourceapi.AllocationResult {
|
||||
allocation := &resourceapi.AllocationResult{
|
||||
Shareable: r.Shareable,
|
||||
}
|
||||
allocation := &resourceapi.AllocationResult{}
|
||||
allocation.ResourceHandles = []resourceapi.ResourceHandle{
|
||||
{
|
||||
DriverName: r.DriverName,
|
||||
|
@ -2,7 +2,6 @@ apiVersion: resource.k8s.io/v1alpha3
|
||||
kind: ResourceClaimParameters
|
||||
metadata:
|
||||
name: test-claim-parameters
|
||||
shareable: true
|
||||
driverRequests:
|
||||
- driverName: test-driver.cdi.k8s.io
|
||||
requests:
|
||||
|
@ -177,7 +177,6 @@ func (op *createResourceDriverOp) run(tCtx ktesting.TContext) {
|
||||
DriverName: op.DriverName,
|
||||
NodeLocal: true,
|
||||
MaxAllocations: op.MaxClaimsPerNode,
|
||||
Shareable: true,
|
||||
}
|
||||
|
||||
nodes, err := tCtx.Client().CoreV1().Nodes().List(tCtx, metav1.ListOptions{})
|
||||
|
Loading…
Reference in New Issue
Block a user