diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json index 3ba22ca413e..5b6551245ec 100644 --- a/api/openapi-spec/swagger.json +++ b/api/openapi-spec/swagger.json @@ -58134,6 +58134,31 @@ } } }, + "io.k8s.api.core.v1.AzureFilePersistentVolumeSource": { + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "readOnly": { + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "type": "boolean" + }, + "secretName": { + "description": "the name of secret that contains Azure Storage Account Name and Key", + "type": "string" + }, + "secretNamespace": { + "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", + "type": "string" + }, + "shareName": { + "description": "Share Name", + "type": "string" + } + } + }, "io.k8s.api.core.v1.AzureFileVolumeSource": { "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "required": [ @@ -60429,7 +60454,7 @@ }, "azureFile": { "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", - "$ref": "#/definitions/io.k8s.api.core.v1.AzureFileVolumeSource" + "$ref": "#/definitions/io.k8s.api.core.v1.AzureFilePersistentVolumeSource" }, "capacity": { "description": "A description of the persistent volume's resources and capacity. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity", diff --git a/api/swagger-spec/v1.json b/api/swagger-spec/v1.json index 57eaa0fe613..1990a5b5bcc 100644 --- a/api/swagger-spec/v1.json +++ b/api/swagger-spec/v1.json @@ -18881,7 +18881,7 @@ "description": "FlexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. This is an alpha feature and may change in future." }, "azureFile": { - "$ref": "v1.AzureFileVolumeSource", + "$ref": "v1.AzureFilePersistentVolumeSource", "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod." }, "vsphereVolume": { @@ -19301,12 +19301,13 @@ } } }, - "v1.AzureFileVolumeSource": { - "id": "v1.AzureFileVolumeSource", + "v1.AzureFilePersistentVolumeSource": { + "id": "v1.AzureFilePersistentVolumeSource", "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "required": [ "secretName", - "shareName" + "shareName", + "secretNamespace" ], "properties": { "secretName": { @@ -19320,6 +19321,10 @@ "readOnly": { "type": "boolean", "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + }, + "secretNamespace": { + "type": "string", + "description": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod" } } }, @@ -20054,6 +20059,28 @@ } } }, + "v1.AzureFileVolumeSource": { + "id": "v1.AzureFileVolumeSource", + "description": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "required": [ + "secretName", + "shareName" + ], + "properties": { + "secretName": { + "type": "string", + "description": "the name of secret that contains Azure Storage Account Name and Key" + }, + "shareName": { + "type": "string", + "description": "Share Name" + }, + "readOnly": { + "type": "boolean", + "description": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts." + } + } + }, "v1.ConfigMapVolumeSource": { "id": "v1.ConfigMapVolumeSource", "description": "Adapts a ConfigMap into a volume.\n\nThe contents of the target ConfigMap's Data field will be presented in a volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. ConfigMap volumes support ownership management and SELinux relabeling.", diff --git a/docs/api-reference/v1/definitions.html b/docs/api-reference/v1/definitions.html index 362029d2e7d..3168d964bd3 100755 --- a/docs/api-reference/v1/definitions.html +++ b/docs/api-reference/v1/definitions.html @@ -2567,10 +2567,6 @@ When an object is created, the system will populate this list with the current s - -
-

types.UID

-

v1.AzureFileVolumeSource

@@ -2619,6 +2615,10 @@ When an object is created, the system will populate this list with the current s +
+
+

types.UID

+

v1.ISCSIVolumeSource

@@ -7447,7 +7447,7 @@ Examples:

azureFile

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

false

-

v1.AzureFileVolumeSource

+

v1.AzureFilePersistentVolumeSource

@@ -10117,6 +10117,61 @@ Examples:
+
+
+

v1.AzureFilePersistentVolumeSource

+
+

AzureFile represents an Azure File Service mount on the host and bind mount to the pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

secretName

the name of secret that contains Azure Storage Account Name and Key

true

string

shareName

Share Name

true

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

secretNamespace

the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod

true

string

+

v1.Pod

diff --git a/pkg/api/persistentvolume/util.go b/pkg/api/persistentvolume/util.go index d4edd807a79..ee017403c5e 100644 --- a/pkg/api/persistentvolume/util.go +++ b/pkg/api/persistentvolume/util.go @@ -37,8 +37,14 @@ func VisitPVSecretNames(pv *api.PersistentVolume, visitor Visitor) bool { source := &pv.Spec.PersistentVolumeSource switch { case source.AzureFile != nil: - if len(source.AzureFile.SecretName) > 0 && !visitor(getClaimRefNamespace(pv), source.AzureFile.SecretName) { - return false + if source.AzureFile.SecretNamespace != nil && len(*source.AzureFile.SecretNamespace) > 0 { + if len(source.AzureFile.SecretName) > 0 && !visitor(*source.AzureFile.SecretNamespace, source.AzureFile.SecretName) { + return false + } + } else { + if len(source.AzureFile.SecretName) > 0 && !visitor(getClaimRefNamespace(pv), source.AzureFile.SecretName) { + return false + } } return true case source.CephFS != nil: diff --git a/pkg/api/persistentvolume/util_test.go b/pkg/api/persistentvolume/util_test.go index 87564d33723..4e1d07e12a3 100644 --- a/pkg/api/persistentvolume/util_test.go +++ b/pkg/api/persistentvolume/util_test.go @@ -30,12 +30,19 @@ import ( func TestPVSecrets(t *testing.T) { // Stub containing all possible secret references in a PV. // The names of the referenced secrets match struct paths detected by reflection. + secretNamespace := "Spec.PersistentVolumeSource.AzureFile.SecretNamespace" pvs := []*api.PersistentVolume{ {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ - AzureFile: &api.AzureFileVolumeSource{ + AzureFile: &api.AzureFilePersistentVolumeSource{ SecretName: "Spec.PersistentVolumeSource.AzureFile.SecretName"}}}}, + {Spec: api.PersistentVolumeSpec{ + ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, + PersistentVolumeSource: api.PersistentVolumeSource{ + AzureFile: &api.AzureFilePersistentVolumeSource{ + SecretName: "Spec.PersistentVolumeSource.AzureFile.SecretName", + SecretNamespace: &secretNamespace}}}}, {Spec: api.PersistentVolumeSpec{ ClaimRef: &api.ObjectReference{Namespace: "claimrefns", Name: "claimrefname"}, PersistentVolumeSource: api.PersistentVolumeSource{ @@ -88,6 +95,7 @@ func TestPVSecrets(t *testing.T) { // excludedSecretPaths holds struct paths to fields with "secret" in the name that are not actually references to secret API objects excludedSecretPaths := sets.NewString( "Spec.PersistentVolumeSource.CephFS.SecretFile", + "Spec.PersistentVolumeSource.AzureFile.SecretNamespace", ) // expectedSecretPaths holds struct paths to fields with "secret" in the name that are references to secret API objects. // every path here should be represented as an example in the PV stub above, with the secret name set to the path. @@ -122,6 +130,7 @@ func TestPVSecrets(t *testing.T) { expectedNamespacedNames := sets.NewString( "claimrefns/Spec.PersistentVolumeSource.AzureFile.SecretName", + "Spec.PersistentVolumeSource.AzureFile.SecretNamespace/Spec.PersistentVolumeSource.AzureFile.SecretName", "claimrefns/Spec.PersistentVolumeSource.CephFS.SecretRef", "claimrefns/Spec.PersistentVolumeSource.FlexVolume.SecretRef", "claimrefns/Spec.PersistentVolumeSource.RBD.SecretRef", diff --git a/pkg/api/types.go b/pkg/api/types.go index 630ca3b48af..2b344c6d38d 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -369,7 +369,7 @@ type PersistentVolumeSource struct { Flocker *FlockerVolumeSource // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. // +optional - AzureFile *AzureFileVolumeSource + AzureFile *AzureFilePersistentVolumeSource // VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine // +optional VsphereVolume *VsphereVirtualDiskVolumeSource @@ -1087,6 +1087,22 @@ type AzureFileVolumeSource struct { ReadOnly bool } +// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +type AzureFilePersistentVolumeSource struct { + // the name of secret that contains Azure Storage Account Name and Key + SecretName string + // Share Name + ShareName string + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool + // the namespace of the secret that contains Azure Storage Account Name and Key + // default is the same as the Pod + // +optional + SecretNamespace *string +} + // Represents a vSphere volume resource. type VsphereVirtualDiskVolumeSource struct { // Path that identifies vSphere volume vmdk diff --git a/pkg/api/v1/zz_generated.conversion.go b/pkg/api/v1/zz_generated.conversion.go index 228c8fe9361..45924338de6 100644 --- a/pkg/api/v1/zz_generated.conversion.go +++ b/pkg/api/v1/zz_generated.conversion.go @@ -48,6 +48,8 @@ func RegisterConversions(scheme *runtime.Scheme) error { Convert_api_AvoidPods_To_v1_AvoidPods, Convert_v1_AzureDiskVolumeSource_To_api_AzureDiskVolumeSource, Convert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource, + Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource, + Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource, Convert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource, Convert_api_AzureFileVolumeSource_To_v1_AzureFileVolumeSource, Convert_v1_Binding_To_api_Binding, @@ -507,6 +509,32 @@ func Convert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in *api.Azure return autoConvert_api_AzureDiskVolumeSource_To_v1_AzureDiskVolumeSource(in, out, s) } +func autoConvert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *api.AzureFilePersistentVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) + return nil +} + +// Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource is an autogenerated conversion function. +func Convert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in *v1.AzureFilePersistentVolumeSource, out *api.AzureFilePersistentVolumeSource, s conversion.Scope) error { + return autoConvert_v1_AzureFilePersistentVolumeSource_To_api_AzureFilePersistentVolumeSource(in, out, s) +} + +func autoConvert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *api.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { + out.SecretName = in.SecretName + out.ShareName = in.ShareName + out.ReadOnly = in.ReadOnly + out.SecretNamespace = (*string)(unsafe.Pointer(in.SecretNamespace)) + return nil +} + +// Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource is an autogenerated conversion function. +func Convert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in *api.AzureFilePersistentVolumeSource, out *v1.AzureFilePersistentVolumeSource, s conversion.Scope) error { + return autoConvert_api_AzureFilePersistentVolumeSource_To_v1_AzureFilePersistentVolumeSource(in, out, s) +} + func autoConvert_v1_AzureFileVolumeSource_To_api_AzureFileVolumeSource(in *v1.AzureFileVolumeSource, out *api.AzureFileVolumeSource, s conversion.Scope) error { out.SecretName = in.SecretName out.ShareName = in.ShareName @@ -3066,7 +3094,7 @@ func autoConvert_v1_PersistentVolumeSource_To_api_PersistentVolumeSource(in *v1. out.FC = (*api.FCVolumeSource)(unsafe.Pointer(in.FC)) out.Flocker = (*api.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) out.FlexVolume = (*api.FlexVolumeSource)(unsafe.Pointer(in.FlexVolume)) - out.AzureFile = (*api.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.AzureFile = (*api.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) out.VsphereVolume = (*api.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) out.Quobyte = (*api.QuobyteVolumeSource)(unsafe.Pointer(in.Quobyte)) out.AzureDisk = (*api.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) @@ -3097,7 +3125,7 @@ func autoConvert_api_PersistentVolumeSource_To_v1_PersistentVolumeSource(in *api out.CephFS = (*v1.CephFSVolumeSource)(unsafe.Pointer(in.CephFS)) out.FC = (*v1.FCVolumeSource)(unsafe.Pointer(in.FC)) out.Flocker = (*v1.FlockerVolumeSource)(unsafe.Pointer(in.Flocker)) - out.AzureFile = (*v1.AzureFileVolumeSource)(unsafe.Pointer(in.AzureFile)) + out.AzureFile = (*v1.AzureFilePersistentVolumeSource)(unsafe.Pointer(in.AzureFile)) out.VsphereVolume = (*v1.VsphereVirtualDiskVolumeSource)(unsafe.Pointer(in.VsphereVolume)) out.AzureDisk = (*v1.AzureDiskVolumeSource)(unsafe.Pointer(in.AzureDisk)) out.PhotonPersistentDisk = (*v1.PhotonPersistentDiskVolumeSource)(unsafe.Pointer(in.PhotonPersistentDisk)) diff --git a/pkg/api/validation/validation.go b/pkg/api/validation/validation.go index 1dd650fe40d..9bbb3c33263 100644 --- a/pkg/api/validation/validation.go +++ b/pkg/api/validation/validation.go @@ -1098,6 +1098,22 @@ func validateAzureFile(azure *api.AzureFileVolumeSource, fldPath *field.Path) fi return allErrs } +func validateAzureFilePV(azure *api.AzureFilePersistentVolumeSource, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + if azure.SecretName == "" { + allErrs = append(allErrs, field.Required(fldPath.Child("secretName"), "")) + } + if azure.ShareName == "" { + allErrs = append(allErrs, field.Required(fldPath.Child("shareName"), "")) + } + if azure.SecretNamespace != nil { + if len(*azure.SecretNamespace) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("secretNamespace"), "")) + } + } + return allErrs +} + func validateAzureDisk(azure *api.AzureDiskVolumeSource, fldPath *field.Path) field.ErrorList { var supportedCachingModes = sets.NewString(string(api.AzureDataDiskCachingNone), string(api.AzureDataDiskCachingReadOnly), string(api.AzureDataDiskCachingReadWrite)) var supportedDiskKinds = sets.NewString(string(api.AzureSharedBlobDisk), string(api.AzureDedicatedBlobDisk), string(api.AzureManagedDisk)) @@ -1375,7 +1391,7 @@ func ValidatePersistentVolume(pv *api.PersistentVolume) field.ErrorList { } else { numVolumes++ - allErrs = append(allErrs, validateAzureFile(pv.Spec.AzureFile, specPath.Child("azureFile"))...) + allErrs = append(allErrs, validateAzureFilePV(pv.Spec.AzureFile, specPath.Child("azureFile"))...) } } diff --git a/pkg/api/zz_generated.deepcopy.go b/pkg/api/zz_generated.deepcopy.go index 6ae4f9a97ae..e3ff932f5b6 100644 --- a/pkg/api/zz_generated.deepcopy.go +++ b/pkg/api/zz_generated.deepcopy.go @@ -58,6 +58,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*AzureDiskVolumeSource).DeepCopyInto(out.(*AzureDiskVolumeSource)) return nil }, InType: reflect.TypeOf(&AzureDiskVolumeSource{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*AzureFilePersistentVolumeSource).DeepCopyInto(out.(*AzureFilePersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&AzureFilePersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*AzureFileVolumeSource).DeepCopyInto(out.(*AzureFileVolumeSource)) return nil @@ -879,6 +883,31 @@ func (in *AzureDiskVolumeSource) DeepCopy() *AzureDiskVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistentVolumeSource) { + *out = *in + if in.SecretNamespace != nil { + in, out := &in.SecretNamespace, &out.SecretNamespace + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFilePersistentVolumeSource. +func (in *AzureFilePersistentVolumeSource) DeepCopy() *AzureFilePersistentVolumeSource { + if in == nil { + return nil + } + out := new(AzureFilePersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AzureFileVolumeSource) DeepCopyInto(out *AzureFileVolumeSource) { *out = *in @@ -3679,8 +3708,8 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(AzureFileVolumeSource) - **out = **in + *out = new(AzureFilePersistentVolumeSource) + (*in).DeepCopyInto(*out) } } if in.VsphereVolume != nil { diff --git a/pkg/printers/internalversion/describe.go b/pkg/printers/internalversion/describe.go index 3a1724866a8..04b16fff344 100644 --- a/pkg/printers/internalversion/describe.go +++ b/pkg/printers/internalversion/describe.go @@ -993,6 +993,19 @@ func printAzureFileVolumeSource(azureFile *api.AzureFileVolumeSource, w PrefixWr azureFile.SecretName, azureFile.ShareName, azureFile.ReadOnly) } +func printAzureFilePersistentVolumeSource(azureFile *api.AzureFilePersistentVolumeSource, w PrefixWriter) { + ns := "" + if azureFile.SecretNamespace != nil { + ns = *azureFile.SecretNamespace + } + w.Write(LEVEL_2, "Type:\tAzureFile (an Azure File Service mount on the host and bind mount to the pod)\n"+ + " SecretName:\t%v\n"+ + " SecretNamespace:\t%v\n"+ + " ShareName:\t%v\n"+ + " ReadOnly:\t%v\n", + azureFile.SecretName, ns, azureFile.ShareName, azureFile.ReadOnly) +} + func printFlexVolumeSource(flex *api.FlexVolumeSource, w PrefixWriter) { w.Write(LEVEL_2, "Type:\tFlexVolume (a generic volume resource that is provisioned/attached using an exec based plugin)\n"+ " Driver:\t%v\n"+ @@ -1088,7 +1101,7 @@ func describePersistentVolume(pv *api.PersistentVolume, events *api.EventList) ( case pv.Spec.FC != nil: printFCVolumeSource(pv.Spec.FC, w) case pv.Spec.AzureFile != nil: - printAzureFileVolumeSource(pv.Spec.AzureFile, w) + printAzureFilePersistentVolumeSource(pv.Spec.AzureFile, w) case pv.Spec.FlexVolume != nil: printFlexVolumeSource(pv.Spec.FlexVolume, w) case pv.Spec.Flocker != nil: diff --git a/pkg/volume/azure_file/azure_file.go b/pkg/volume/azure_file/azure_file.go index 26077162382..2e51e46853a 100644 --- a/pkg/volume/azure_file/azure_file.go +++ b/pkg/volume/azure_file/azure_file.go @@ -63,12 +63,12 @@ func (plugin *azureFilePlugin) GetPluginName() string { } func (plugin *azureFilePlugin) GetVolumeName(spec *volume.Spec) (string, error) { - volumeSource, _, err := getVolumeSource(spec) + share, _, err := getVolumeSource(spec) if err != nil { return "", err } - return volumeSource.ShareName, nil + return share, nil } func (plugin *azureFilePlugin) CanSupport(spec *volume.Spec) bool { @@ -102,11 +102,11 @@ func (plugin *azureFilePlugin) NewMounter(spec *volume.Spec, pod *v1.Pod, _ volu } func (plugin *azureFilePlugin) newMounterInternal(spec *volume.Spec, pod *v1.Pod, util azureUtil, mounter mount.Interface) (volume.Mounter, error) { - source, readOnly, err := getVolumeSource(spec) + share, readOnly, err := getVolumeSource(spec) if err != nil { return nil, err } - + secretName, secretNamespace, err := getSecretNameAndNamespace(spec, pod.Namespace) return &azureFileMounter{ azureFile: &azureFile{ volName: spec.Name(), @@ -115,11 +115,12 @@ func (plugin *azureFilePlugin) newMounterInternal(spec *volume.Spec, pod *v1.Pod plugin: plugin, MetricsProvider: volume.NewMetricsStatFS(getPath(pod.UID, spec.Name(), plugin.host)), }, - util: util, - secretName: source.SecretName, - shareName: source.ShareName, - readOnly: readOnly, - mountOptions: volume.MountOptionFromSpec(spec), + util: util, + secretNamespace: secretNamespace, + secretName: secretName, + shareName: share, + readOnly: readOnly, + mountOptions: volume.MountOptionFromSpec(spec), }, nil } @@ -166,11 +167,12 @@ func (azureFileVolume *azureFile) GetPath() string { type azureFileMounter struct { *azureFile - util azureUtil - secretName string - shareName string - readOnly bool - mountOptions []string + util azureUtil + secretName string + secretNamespace string + shareName string + readOnly bool + mountOptions []string } var _ volume.Mounter = &azureFileMounter{} @@ -205,7 +207,7 @@ func (b *azureFileMounter) SetUpAt(dir string, fsGroup *int64) error { return nil } var accountKey, accountName string - if accountName, accountKey, err = b.util.GetAzureCredentials(b.plugin.host, b.pod.Namespace, b.secretName); err != nil { + if accountName, accountKey, err = b.util.GetAzureCredentials(b.plugin.host, b.secretNamespace, b.secretName); err != nil { return err } os.MkdirAll(dir, 0700) @@ -260,16 +262,43 @@ func (c *azureFileUnmounter) TearDownAt(dir string) error { return util.UnmountPath(dir, c.mounter) } -func getVolumeSource( - spec *volume.Spec) (*v1.AzureFileVolumeSource, bool, error) { +func getVolumeSource(spec *volume.Spec) (string, bool, error) { if spec.Volume != nil && spec.Volume.AzureFile != nil { - return spec.Volume.AzureFile, spec.Volume.AzureFile.ReadOnly, nil + share := spec.Volume.AzureFile.ShareName + readOnly := spec.Volume.AzureFile.ReadOnly + return share, readOnly, nil } else if spec.PersistentVolume != nil && spec.PersistentVolume.Spec.AzureFile != nil { - return spec.PersistentVolume.Spec.AzureFile, spec.ReadOnly, nil + share := spec.PersistentVolume.Spec.AzureFile.ShareName + readOnly := spec.ReadOnly + return share, readOnly, nil + } + return "", false, fmt.Errorf("Spec does not reference an AzureFile volume type") +} + +func getSecretNameAndNamespace(spec *volume.Spec, defaultNamespace string) (string, string, error) { + secretName := "" + secretNamespace := "" + if spec.Volume != nil && spec.Volume.AzureFile != nil { + secretName = spec.Volume.AzureFile.SecretName + secretNamespace = defaultNamespace + + } else if spec.PersistentVolume != nil && + spec.PersistentVolume.Spec.AzureFile != nil { + secretNamespace = defaultNamespace + if spec.PersistentVolume.Spec.AzureFile.SecretNamespace != nil { + secretNamespace = *spec.PersistentVolume.Spec.AzureFile.SecretNamespace + } + secretName = spec.PersistentVolume.Spec.AzureFile.SecretName + } else { + return "", "", fmt.Errorf("Spec does not reference an AzureFile volume type") } - return nil, false, fmt.Errorf("Spec does not reference an AzureFile volume type") + if len(secretNamespace) == 0 { + return "", "", fmt.Errorf("invalid Azure volume: nil namespace") + } + return secretName, secretNamespace, nil + } func getAzureCloud(cloudProvider cloudprovider.Interface) (*azure.Cloud, error) { diff --git a/pkg/volume/azure_file/azure_file_test.go b/pkg/volume/azure_file/azure_file_test.go index 425657e0eab..8991d5e231a 100644 --- a/pkg/volume/azure_file/azure_file_test.go +++ b/pkg/volume/azure_file/azure_file_test.go @@ -53,7 +53,7 @@ func TestCanSupport(t *testing.T) { if !plug.CanSupport(&volume.Spec{Volume: &v1.Volume{VolumeSource: v1.VolumeSource{AzureFile: &v1.AzureFileVolumeSource{}}}}) { t.Errorf("Expected true") } - if !plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{AzureFile: &v1.AzureFileVolumeSource{}}}}}) { + if !plug.CanSupport(&volume.Spec{PersistentVolume: &v1.PersistentVolume{Spec: v1.PersistentVolumeSpec{PersistentVolumeSource: v1.PersistentVolumeSource{AzureFile: &v1.AzureFilePersistentVolumeSource{}}}}}) { t.Errorf("Expected true") } } @@ -204,7 +204,7 @@ func TestPersistentClaimReadOnlyFlag(t *testing.T) { }, Spec: v1.PersistentVolumeSpec{ PersistentVolumeSource: v1.PersistentVolumeSource{ - AzureFile: &v1.AzureFileVolumeSource{}, + AzureFile: &v1.AzureFilePersistentVolumeSource{}, }, ClaimRef: &v1.ObjectReference{ Name: "claimA", @@ -287,3 +287,83 @@ func TestMounterAndUnmounterTypeAssert(t *testing.T) { t.Errorf("Volume Unmounter can be type-assert to Mounter") } } + +type testcase struct { + name string + defaultNs string + spec *volume.Spec + // Expected return of the test + expectedName string + expectedNs string + expectedError error +} + +func TestGetSecretNameAndNamespaceForPV(t *testing.T) { + secretNs := "ns" + tests := []testcase{ + { + name: "persistent volume source", + defaultNs: "default", + spec: &volume.Spec{ + PersistentVolume: &v1.PersistentVolume{ + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + AzureFile: &v1.AzureFilePersistentVolumeSource{ + ShareName: "share", + SecretName: "name", + SecretNamespace: &secretNs, + }, + }, + }, + }, + }, + expectedName: "name", + expectedNs: "ns", + expectedError: nil, + }, + { + name: "persistent volume source without namespace", + defaultNs: "default", + spec: &volume.Spec{ + PersistentVolume: &v1.PersistentVolume{ + Spec: v1.PersistentVolumeSpec{ + PersistentVolumeSource: v1.PersistentVolumeSource{ + AzureFile: &v1.AzureFilePersistentVolumeSource{ + ShareName: "share", + SecretName: "name", + }, + }, + }, + }, + }, + expectedName: "name", + expectedNs: "default", + expectedError: nil, + }, + { + name: "pod volume source", + defaultNs: "default", + spec: &volume.Spec{ + Volume: &v1.Volume{ + VolumeSource: v1.VolumeSource{ + AzureFile: &v1.AzureFileVolumeSource{ + ShareName: "share", + SecretName: "name", + }, + }, + }, + }, + expectedName: "name", + expectedNs: "default", + expectedError: nil, + }, + } + for _, testcase := range tests { + resultName, resultNs, err := getSecretNameAndNamespace(testcase.spec, testcase.defaultNs) + if err != testcase.expectedError || resultName != testcase.expectedName || resultNs != testcase.expectedNs { + t.Errorf("%s failed: expected err=%v ns=%q name=%q, got %v/%q/%q", testcase.name, testcase.expectedError, testcase.expectedNs, testcase.expectedName, + err, resultNs, resultName) + } + } + +} diff --git a/pkg/volume/azure_file/azure_provision.go b/pkg/volume/azure_file/azure_provision.go index a74fbc2cefa..bebec4599fb 100644 --- a/pkg/volume/azure_file/azure_provision.go +++ b/pkg/volume/azure_file/azure_provision.go @@ -63,15 +63,13 @@ func (plugin *azureFilePlugin) newDeleterInternal(spec *volume.Spec, util azureU if spec.PersistentVolume != nil && spec.PersistentVolume.Spec.AzureFile == nil { return nil, fmt.Errorf("invalid PV spec") } - pvSpec := spec.PersistentVolume - if pvSpec.Spec.ClaimRef.Namespace == "" { - glog.Errorf("namespace cannot be nil") - return nil, fmt.Errorf("invalid PV spec: nil namespace") + + secretName, secretNamespace, err := getSecretNameAndNamespace(spec, spec.PersistentVolume.Spec.ClaimRef.Namespace) + if err != nil { + return nil, err } - nameSpace := pvSpec.Spec.ClaimRef.Namespace - secretName := pvSpec.Spec.AzureFile.SecretName - shareName := pvSpec.Spec.AzureFile.ShareName - if accountName, accountKey, err := util.GetAzureCredentials(plugin.host, nameSpace, secretName); err != nil { + shareName := spec.PersistentVolume.Spec.AzureFile.ShareName + if accountName, accountKey, err := util.GetAzureCredentials(plugin.host, secretNamespace, secretName); err != nil { return nil, err } else { return &azureFileDeleter{ @@ -144,7 +142,7 @@ func (a *azureFileProvisioner) Provision() (*v1.PersistentVolume, error) { capacity := a.options.PVC.Spec.Resources.Requests[v1.ResourceName(v1.ResourceStorage)] requestBytes := capacity.Value() requestGB := int(volume.RoundUpSize(requestBytes, 1024*1024*1024)) - + secretNamespace := a.options.PVC.Namespace // Apply ProvisionerParameters (case-insensitive). We leave validation of // the values to the cloud provider. for k, v := range a.options.Parameters { @@ -155,6 +153,8 @@ func (a *azureFileProvisioner) Provision() (*v1.PersistentVolume, error) { location = v case "storageaccount": account = v + case "secretnamespace": + secretNamespace = v default: return nil, fmt.Errorf("invalid option %q for volume plugin %s", k, a.plugin.GetPluginName()) } @@ -168,8 +168,9 @@ func (a *azureFileProvisioner) Provision() (*v1.PersistentVolume, error) { if err != nil { return nil, err } + // create a secret for storage account and key - secretName, err := a.util.SetAzureCredentials(a.plugin.host, a.options.PVC.Namespace, account, key) + secretName, err := a.util.SetAzureCredentials(a.plugin.host, secretNamespace, account, key) if err != nil { return nil, err } @@ -189,9 +190,10 @@ func (a *azureFileProvisioner) Provision() (*v1.PersistentVolume, error) { v1.ResourceName(v1.ResourceStorage): resource.MustParse(fmt.Sprintf("%dGi", requestGB)), }, PersistentVolumeSource: v1.PersistentVolumeSource{ - AzureFile: &v1.AzureFileVolumeSource{ - SecretName: secretName, - ShareName: name, + AzureFile: &v1.AzureFilePersistentVolumeSource{ + SecretName: secretName, + ShareName: name, + SecretNamespace: &secretNamespace, }, }, }, diff --git a/staging/src/k8s.io/api/core/v1/generated.pb.go b/staging/src/k8s.io/api/core/v1/generated.pb.go index 9053f04d54c..5bde18f6379 100644 --- a/staging/src/k8s.io/api/core/v1/generated.pb.go +++ b/staging/src/k8s.io/api/core/v1/generated.pb.go @@ -30,6 +30,7 @@ limitations under the License. AttachedVolume AvoidPods AzureDiskVolumeSource + AzureFilePersistentVolumeSource AzureFileVolumeSource Binding Capabilities @@ -250,708 +251,716 @@ func (m *AzureDiskVolumeSource) Reset() { *m = AzureDiskVolum func (*AzureDiskVolumeSource) ProtoMessage() {} func (*AzureDiskVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{4} } +func (m *AzureFilePersistentVolumeSource) Reset() { *m = AzureFilePersistentVolumeSource{} } +func (*AzureFilePersistentVolumeSource) ProtoMessage() {} +func (*AzureFilePersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{5} +} + func (m *AzureFileVolumeSource) Reset() { *m = AzureFileVolumeSource{} } func (*AzureFileVolumeSource) ProtoMessage() {} -func (*AzureFileVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{5} } +func (*AzureFileVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } func (m *Binding) Reset() { *m = Binding{} } func (*Binding) ProtoMessage() {} -func (*Binding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{6} } +func (*Binding) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } func (m *Capabilities) Reset() { *m = Capabilities{} } func (*Capabilities) ProtoMessage() {} -func (*Capabilities) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{7} } +func (*Capabilities) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } func (m *CephFSVolumeSource) Reset() { *m = CephFSVolumeSource{} } func (*CephFSVolumeSource) ProtoMessage() {} -func (*CephFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{8} } +func (*CephFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } func (m *CinderVolumeSource) Reset() { *m = CinderVolumeSource{} } func (*CinderVolumeSource) ProtoMessage() {} -func (*CinderVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{9} } +func (*CinderVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } func (m *ComponentCondition) Reset() { *m = ComponentCondition{} } func (*ComponentCondition) ProtoMessage() {} -func (*ComponentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{10} } +func (*ComponentCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } func (m *ComponentStatus) Reset() { *m = ComponentStatus{} } func (*ComponentStatus) ProtoMessage() {} -func (*ComponentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{11} } +func (*ComponentStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } func (m *ComponentStatusList) Reset() { *m = ComponentStatusList{} } func (*ComponentStatusList) ProtoMessage() {} -func (*ComponentStatusList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{12} } +func (*ComponentStatusList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } func (m *ConfigMap) Reset() { *m = ConfigMap{} } func (*ConfigMap) ProtoMessage() {} -func (*ConfigMap) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{13} } +func (*ConfigMap) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } func (m *ConfigMapEnvSource) Reset() { *m = ConfigMapEnvSource{} } func (*ConfigMapEnvSource) ProtoMessage() {} -func (*ConfigMapEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{14} } +func (*ConfigMapEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } func (m *ConfigMapKeySelector) Reset() { *m = ConfigMapKeySelector{} } func (*ConfigMapKeySelector) ProtoMessage() {} -func (*ConfigMapKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{15} } +func (*ConfigMapKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } func (m *ConfigMapList) Reset() { *m = ConfigMapList{} } func (*ConfigMapList) ProtoMessage() {} -func (*ConfigMapList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{16} } +func (*ConfigMapList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } func (m *ConfigMapProjection) Reset() { *m = ConfigMapProjection{} } func (*ConfigMapProjection) ProtoMessage() {} -func (*ConfigMapProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{17} } +func (*ConfigMapProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } func (m *ConfigMapVolumeSource) Reset() { *m = ConfigMapVolumeSource{} } func (*ConfigMapVolumeSource) ProtoMessage() {} -func (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{18} } +func (*ConfigMapVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } func (m *Container) Reset() { *m = Container{} } func (*Container) ProtoMessage() {} -func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{19} } +func (*Container) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } func (m *ContainerImage) Reset() { *m = ContainerImage{} } func (*ContainerImage) ProtoMessage() {} -func (*ContainerImage) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{20} } +func (*ContainerImage) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } func (m *ContainerPort) Reset() { *m = ContainerPort{} } func (*ContainerPort) ProtoMessage() {} -func (*ContainerPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{21} } +func (*ContainerPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } func (m *ContainerState) Reset() { *m = ContainerState{} } func (*ContainerState) ProtoMessage() {} -func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{22} } +func (*ContainerState) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } func (m *ContainerStateRunning) Reset() { *m = ContainerStateRunning{} } func (*ContainerStateRunning) ProtoMessage() {} -func (*ContainerStateRunning) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{23} } +func (*ContainerStateRunning) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{24} } func (m *ContainerStateTerminated) Reset() { *m = ContainerStateTerminated{} } func (*ContainerStateTerminated) ProtoMessage() {} func (*ContainerStateTerminated) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{24} + return fileDescriptorGenerated, []int{25} } func (m *ContainerStateWaiting) Reset() { *m = ContainerStateWaiting{} } func (*ContainerStateWaiting) ProtoMessage() {} -func (*ContainerStateWaiting) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{25} } +func (*ContainerStateWaiting) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } func (m *ContainerStatus) Reset() { *m = ContainerStatus{} } func (*ContainerStatus) ProtoMessage() {} -func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{26} } +func (*ContainerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } func (m *DaemonEndpoint) Reset() { *m = DaemonEndpoint{} } func (*DaemonEndpoint) ProtoMessage() {} -func (*DaemonEndpoint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{27} } +func (*DaemonEndpoint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } func (m *DeleteOptions) Reset() { *m = DeleteOptions{} } func (*DeleteOptions) ProtoMessage() {} -func (*DeleteOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{28} } +func (*DeleteOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } func (m *DownwardAPIProjection) Reset() { *m = DownwardAPIProjection{} } func (*DownwardAPIProjection) ProtoMessage() {} -func (*DownwardAPIProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{29} } +func (*DownwardAPIProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } func (m *DownwardAPIVolumeFile) Reset() { *m = DownwardAPIVolumeFile{} } func (*DownwardAPIVolumeFile) ProtoMessage() {} -func (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{30} } +func (*DownwardAPIVolumeFile) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{31} } func (m *DownwardAPIVolumeSource) Reset() { *m = DownwardAPIVolumeSource{} } func (*DownwardAPIVolumeSource) ProtoMessage() {} func (*DownwardAPIVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{31} + return fileDescriptorGenerated, []int{32} } func (m *EmptyDirVolumeSource) Reset() { *m = EmptyDirVolumeSource{} } func (*EmptyDirVolumeSource) ProtoMessage() {} -func (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{32} } +func (*EmptyDirVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } func (m *EndpointAddress) Reset() { *m = EndpointAddress{} } func (*EndpointAddress) ProtoMessage() {} -func (*EndpointAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{33} } +func (*EndpointAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{34} } func (m *EndpointPort) Reset() { *m = EndpointPort{} } func (*EndpointPort) ProtoMessage() {} -func (*EndpointPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{34} } +func (*EndpointPort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{35} } func (m *EndpointSubset) Reset() { *m = EndpointSubset{} } func (*EndpointSubset) ProtoMessage() {} -func (*EndpointSubset) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{35} } +func (*EndpointSubset) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } func (m *Endpoints) Reset() { *m = Endpoints{} } func (*Endpoints) ProtoMessage() {} -func (*Endpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{36} } +func (*Endpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } func (m *EndpointsList) Reset() { *m = EndpointsList{} } func (*EndpointsList) ProtoMessage() {} -func (*EndpointsList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{37} } +func (*EndpointsList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } func (m *EnvFromSource) Reset() { *m = EnvFromSource{} } func (*EnvFromSource) ProtoMessage() {} -func (*EnvFromSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{38} } +func (*EnvFromSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } func (m *EnvVar) Reset() { *m = EnvVar{} } func (*EnvVar) ProtoMessage() {} -func (*EnvVar) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{39} } +func (*EnvVar) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } func (m *EnvVarSource) Reset() { *m = EnvVarSource{} } func (*EnvVarSource) ProtoMessage() {} -func (*EnvVarSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{40} } +func (*EnvVarSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } func (m *Event) Reset() { *m = Event{} } func (*Event) ProtoMessage() {} -func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{41} } +func (*Event) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } func (m *EventList) Reset() { *m = EventList{} } func (*EventList) ProtoMessage() {} -func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{42} } +func (*EventList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } func (m *EventSource) Reset() { *m = EventSource{} } func (*EventSource) ProtoMessage() {} -func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{43} } +func (*EventSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } func (m *ExecAction) Reset() { *m = ExecAction{} } func (*ExecAction) ProtoMessage() {} -func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{44} } +func (*ExecAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } func (m *FCVolumeSource) Reset() { *m = FCVolumeSource{} } func (*FCVolumeSource) ProtoMessage() {} -func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{45} } +func (*FCVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } func (m *FlexVolumeSource) Reset() { *m = FlexVolumeSource{} } func (*FlexVolumeSource) ProtoMessage() {} -func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{46} } +func (*FlexVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } func (m *FlockerVolumeSource) Reset() { *m = FlockerVolumeSource{} } func (*FlockerVolumeSource) ProtoMessage() {} -func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{47} } +func (*FlockerVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{48} } func (m *GCEPersistentDiskVolumeSource) Reset() { *m = GCEPersistentDiskVolumeSource{} } func (*GCEPersistentDiskVolumeSource) ProtoMessage() {} func (*GCEPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{48} + return fileDescriptorGenerated, []int{49} } func (m *GitRepoVolumeSource) Reset() { *m = GitRepoVolumeSource{} } func (*GitRepoVolumeSource) ProtoMessage() {} -func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{49} } +func (*GitRepoVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } func (m *GlusterfsVolumeSource) Reset() { *m = GlusterfsVolumeSource{} } func (*GlusterfsVolumeSource) ProtoMessage() {} -func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{50} } +func (*GlusterfsVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } func (m *HTTPGetAction) Reset() { *m = HTTPGetAction{} } func (*HTTPGetAction) ProtoMessage() {} -func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{51} } +func (*HTTPGetAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } func (m *HTTPHeader) Reset() { *m = HTTPHeader{} } func (*HTTPHeader) ProtoMessage() {} -func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{52} } +func (*HTTPHeader) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } func (m *Handler) Reset() { *m = Handler{} } func (*Handler) ProtoMessage() {} -func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{53} } +func (*Handler) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } func (m *HostAlias) Reset() { *m = HostAlias{} } func (*HostAlias) ProtoMessage() {} -func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{54} } +func (*HostAlias) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } func (m *HostPathVolumeSource) Reset() { *m = HostPathVolumeSource{} } func (*HostPathVolumeSource) ProtoMessage() {} -func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{55} } +func (*HostPathVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } func (m *ISCSIVolumeSource) Reset() { *m = ISCSIVolumeSource{} } func (*ISCSIVolumeSource) ProtoMessage() {} -func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{56} } +func (*ISCSIVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } func (m *KeyToPath) Reset() { *m = KeyToPath{} } func (*KeyToPath) ProtoMessage() {} -func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{57} } +func (*KeyToPath) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } func (m *Lifecycle) Reset() { *m = Lifecycle{} } func (*Lifecycle) ProtoMessage() {} -func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{58} } +func (*Lifecycle) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } func (m *LimitRange) Reset() { *m = LimitRange{} } func (*LimitRange) ProtoMessage() {} -func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{59} } +func (*LimitRange) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } func (m *LimitRangeItem) Reset() { *m = LimitRangeItem{} } func (*LimitRangeItem) ProtoMessage() {} -func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{60} } +func (*LimitRangeItem) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{61} } func (m *LimitRangeList) Reset() { *m = LimitRangeList{} } func (*LimitRangeList) ProtoMessage() {} -func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{61} } +func (*LimitRangeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{62} } func (m *LimitRangeSpec) Reset() { *m = LimitRangeSpec{} } func (*LimitRangeSpec) ProtoMessage() {} -func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{62} } +func (*LimitRangeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } func (m *List) Reset() { *m = List{} } func (*List) ProtoMessage() {} -func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{63} } +func (*List) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{64} } func (m *ListOptions) Reset() { *m = ListOptions{} } func (*ListOptions) ProtoMessage() {} -func (*ListOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{64} } +func (*ListOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } func (m *LoadBalancerIngress) Reset() { *m = LoadBalancerIngress{} } func (*LoadBalancerIngress) ProtoMessage() {} -func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{65} } +func (*LoadBalancerIngress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } func (m *LoadBalancerStatus) Reset() { *m = LoadBalancerStatus{} } func (*LoadBalancerStatus) ProtoMessage() {} -func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{66} } +func (*LoadBalancerStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } func (m *LocalObjectReference) Reset() { *m = LocalObjectReference{} } func (*LocalObjectReference) ProtoMessage() {} -func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{67} } +func (*LocalObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } func (m *LocalVolumeSource) Reset() { *m = LocalVolumeSource{} } func (*LocalVolumeSource) ProtoMessage() {} -func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{68} } +func (*LocalVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } func (m *NFSVolumeSource) Reset() { *m = NFSVolumeSource{} } func (*NFSVolumeSource) ProtoMessage() {} -func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{69} } +func (*NFSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } func (m *Namespace) Reset() { *m = Namespace{} } func (*Namespace) ProtoMessage() {} -func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{70} } +func (*Namespace) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } func (m *NamespaceList) Reset() { *m = NamespaceList{} } func (*NamespaceList) ProtoMessage() {} -func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{71} } +func (*NamespaceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } func (m *NamespaceSpec) Reset() { *m = NamespaceSpec{} } func (*NamespaceSpec) ProtoMessage() {} -func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{72} } +func (*NamespaceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } func (m *NamespaceStatus) Reset() { *m = NamespaceStatus{} } func (*NamespaceStatus) ProtoMessage() {} -func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{73} } +func (*NamespaceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } func (m *Node) Reset() { *m = Node{} } func (*Node) ProtoMessage() {} -func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{74} } +func (*Node) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } func (m *NodeAddress) Reset() { *m = NodeAddress{} } func (*NodeAddress) ProtoMessage() {} -func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{75} } +func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } func (m *NodeAffinity) Reset() { *m = NodeAffinity{} } func (*NodeAffinity) ProtoMessage() {} -func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{76} } +func (*NodeAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } func (m *NodeCondition) Reset() { *m = NodeCondition{} } func (*NodeCondition) ProtoMessage() {} -func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{77} } +func (*NodeCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } func (m *NodeConfigSource) Reset() { *m = NodeConfigSource{} } func (*NodeConfigSource) ProtoMessage() {} -func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{78} } +func (*NodeConfigSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } func (m *NodeDaemonEndpoints) Reset() { *m = NodeDaemonEndpoints{} } func (*NodeDaemonEndpoints) ProtoMessage() {} -func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{79} } +func (*NodeDaemonEndpoints) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } func (m *NodeList) Reset() { *m = NodeList{} } func (*NodeList) ProtoMessage() {} -func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{80} } +func (*NodeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } func (m *NodeProxyOptions) Reset() { *m = NodeProxyOptions{} } func (*NodeProxyOptions) ProtoMessage() {} -func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{81} } +func (*NodeProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } func (m *NodeResources) Reset() { *m = NodeResources{} } func (*NodeResources) ProtoMessage() {} -func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{82} } +func (*NodeResources) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } func (m *NodeSelector) Reset() { *m = NodeSelector{} } func (*NodeSelector) ProtoMessage() {} -func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{83} } +func (*NodeSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{84} } func (m *NodeSelectorRequirement) Reset() { *m = NodeSelectorRequirement{} } func (*NodeSelectorRequirement) ProtoMessage() {} func (*NodeSelectorRequirement) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{84} + return fileDescriptorGenerated, []int{85} } func (m *NodeSelectorTerm) Reset() { *m = NodeSelectorTerm{} } func (*NodeSelectorTerm) ProtoMessage() {} -func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{85} } +func (*NodeSelectorTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } func (m *NodeSpec) Reset() { *m = NodeSpec{} } func (*NodeSpec) ProtoMessage() {} -func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{86} } +func (*NodeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } func (m *NodeStatus) Reset() { *m = NodeStatus{} } func (*NodeStatus) ProtoMessage() {} -func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{87} } +func (*NodeStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } func (m *NodeSystemInfo) Reset() { *m = NodeSystemInfo{} } func (*NodeSystemInfo) ProtoMessage() {} -func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{88} } +func (*NodeSystemInfo) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } func (m *ObjectFieldSelector) Reset() { *m = ObjectFieldSelector{} } func (*ObjectFieldSelector) ProtoMessage() {} -func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{89} } +func (*ObjectFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } func (m *ObjectMeta) Reset() { *m = ObjectMeta{} } func (*ObjectMeta) ProtoMessage() {} -func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{90} } +func (*ObjectMeta) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } func (m *ObjectReference) Reset() { *m = ObjectReference{} } func (*ObjectReference) ProtoMessage() {} -func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{91} } +func (*ObjectReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } func (m *PersistentVolume) Reset() { *m = PersistentVolume{} } func (*PersistentVolume) ProtoMessage() {} -func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{92} } +func (*PersistentVolume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } func (m *PersistentVolumeClaim) Reset() { *m = PersistentVolumeClaim{} } func (*PersistentVolumeClaim) ProtoMessage() {} -func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{93} } +func (*PersistentVolumeClaim) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{94} } func (m *PersistentVolumeClaimList) Reset() { *m = PersistentVolumeClaimList{} } func (*PersistentVolumeClaimList) ProtoMessage() {} func (*PersistentVolumeClaimList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{94} + return fileDescriptorGenerated, []int{95} } func (m *PersistentVolumeClaimSpec) Reset() { *m = PersistentVolumeClaimSpec{} } func (*PersistentVolumeClaimSpec) ProtoMessage() {} func (*PersistentVolumeClaimSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{95} + return fileDescriptorGenerated, []int{96} } func (m *PersistentVolumeClaimStatus) Reset() { *m = PersistentVolumeClaimStatus{} } func (*PersistentVolumeClaimStatus) ProtoMessage() {} func (*PersistentVolumeClaimStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{96} + return fileDescriptorGenerated, []int{97} } func (m *PersistentVolumeClaimVolumeSource) Reset() { *m = PersistentVolumeClaimVolumeSource{} } func (*PersistentVolumeClaimVolumeSource) ProtoMessage() {} func (*PersistentVolumeClaimVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{97} + return fileDescriptorGenerated, []int{98} } func (m *PersistentVolumeList) Reset() { *m = PersistentVolumeList{} } func (*PersistentVolumeList) ProtoMessage() {} -func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{98} } +func (*PersistentVolumeList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } -func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } -func (*PersistentVolumeSource) ProtoMessage() {} -func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{99} } +func (m *PersistentVolumeSource) Reset() { *m = PersistentVolumeSource{} } +func (*PersistentVolumeSource) ProtoMessage() {} +func (*PersistentVolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptorGenerated, []int{100} +} func (m *PersistentVolumeSpec) Reset() { *m = PersistentVolumeSpec{} } func (*PersistentVolumeSpec) ProtoMessage() {} -func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{100} } +func (*PersistentVolumeSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{101} } func (m *PersistentVolumeStatus) Reset() { *m = PersistentVolumeStatus{} } func (*PersistentVolumeStatus) ProtoMessage() {} func (*PersistentVolumeStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{101} + return fileDescriptorGenerated, []int{102} } func (m *PhotonPersistentDiskVolumeSource) Reset() { *m = PhotonPersistentDiskVolumeSource{} } func (*PhotonPersistentDiskVolumeSource) ProtoMessage() {} func (*PhotonPersistentDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{102} + return fileDescriptorGenerated, []int{103} } func (m *Pod) Reset() { *m = Pod{} } func (*Pod) ProtoMessage() {} -func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{103} } +func (*Pod) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{104} } func (m *PodAffinity) Reset() { *m = PodAffinity{} } func (*PodAffinity) ProtoMessage() {} -func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{104} } +func (*PodAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{105} } func (m *PodAffinityTerm) Reset() { *m = PodAffinityTerm{} } func (*PodAffinityTerm) ProtoMessage() {} -func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{105} } +func (*PodAffinityTerm) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } func (m *PodAntiAffinity) Reset() { *m = PodAntiAffinity{} } func (*PodAntiAffinity) ProtoMessage() {} -func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{106} } +func (*PodAntiAffinity) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } func (m *PodAttachOptions) Reset() { *m = PodAttachOptions{} } func (*PodAttachOptions) ProtoMessage() {} -func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{107} } +func (*PodAttachOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{108} } func (m *PodCondition) Reset() { *m = PodCondition{} } func (*PodCondition) ProtoMessage() {} -func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{108} } +func (*PodCondition) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } func (m *PodExecOptions) Reset() { *m = PodExecOptions{} } func (*PodExecOptions) ProtoMessage() {} -func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{109} } +func (*PodExecOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } func (m *PodList) Reset() { *m = PodList{} } func (*PodList) ProtoMessage() {} -func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{110} } +func (*PodList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } func (m *PodLogOptions) Reset() { *m = PodLogOptions{} } func (*PodLogOptions) ProtoMessage() {} -func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{111} } +func (*PodLogOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } func (m *PodPortForwardOptions) Reset() { *m = PodPortForwardOptions{} } func (*PodPortForwardOptions) ProtoMessage() {} -func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{112} } +func (*PodPortForwardOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } func (m *PodProxyOptions) Reset() { *m = PodProxyOptions{} } func (*PodProxyOptions) ProtoMessage() {} -func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{113} } +func (*PodProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } func (m *PodSecurityContext) Reset() { *m = PodSecurityContext{} } func (*PodSecurityContext) ProtoMessage() {} -func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{114} } +func (*PodSecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } func (m *PodSignature) Reset() { *m = PodSignature{} } func (*PodSignature) ProtoMessage() {} -func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{115} } +func (*PodSignature) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } func (m *PodSpec) Reset() { *m = PodSpec{} } func (*PodSpec) ProtoMessage() {} -func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{116} } +func (*PodSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } func (m *PodStatus) Reset() { *m = PodStatus{} } func (*PodStatus) ProtoMessage() {} -func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{117} } +func (*PodStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } func (m *PodStatusResult) Reset() { *m = PodStatusResult{} } func (*PodStatusResult) ProtoMessage() {} -func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{118} } +func (*PodStatusResult) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } func (m *PodTemplate) Reset() { *m = PodTemplate{} } func (*PodTemplate) ProtoMessage() {} -func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{119} } +func (*PodTemplate) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } func (m *PodTemplateList) Reset() { *m = PodTemplateList{} } func (*PodTemplateList) ProtoMessage() {} -func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{120} } +func (*PodTemplateList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } func (m *PodTemplateSpec) Reset() { *m = PodTemplateSpec{} } func (*PodTemplateSpec) ProtoMessage() {} -func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{121} } +func (*PodTemplateSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } func (m *PortworxVolumeSource) Reset() { *m = PortworxVolumeSource{} } func (*PortworxVolumeSource) ProtoMessage() {} -func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{122} } +func (*PortworxVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } func (m *Preconditions) Reset() { *m = Preconditions{} } func (*Preconditions) ProtoMessage() {} -func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{123} } +func (*Preconditions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } func (m *PreferAvoidPodsEntry) Reset() { *m = PreferAvoidPodsEntry{} } func (*PreferAvoidPodsEntry) ProtoMessage() {} -func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{124} } +func (*PreferAvoidPodsEntry) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{125} } func (m *PreferredSchedulingTerm) Reset() { *m = PreferredSchedulingTerm{} } func (*PreferredSchedulingTerm) ProtoMessage() {} func (*PreferredSchedulingTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{125} + return fileDescriptorGenerated, []int{126} } func (m *Probe) Reset() { *m = Probe{} } func (*Probe) ProtoMessage() {} -func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{126} } +func (*Probe) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } func (m *ProjectedVolumeSource) Reset() { *m = ProjectedVolumeSource{} } func (*ProjectedVolumeSource) ProtoMessage() {} -func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{127} } +func (*ProjectedVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } func (m *QuobyteVolumeSource) Reset() { *m = QuobyteVolumeSource{} } func (*QuobyteVolumeSource) ProtoMessage() {} -func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{128} } +func (*QuobyteVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } func (m *RBDVolumeSource) Reset() { *m = RBDVolumeSource{} } func (*RBDVolumeSource) ProtoMessage() {} -func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{129} } +func (*RBDVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } func (m *RangeAllocation) Reset() { *m = RangeAllocation{} } func (*RangeAllocation) ProtoMessage() {} -func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{130} } +func (*RangeAllocation) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } func (m *ReplicationController) Reset() { *m = ReplicationController{} } func (*ReplicationController) ProtoMessage() {} -func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{131} } +func (*ReplicationController) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{132} } func (m *ReplicationControllerCondition) Reset() { *m = ReplicationControllerCondition{} } func (*ReplicationControllerCondition) ProtoMessage() {} func (*ReplicationControllerCondition) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{132} + return fileDescriptorGenerated, []int{133} } func (m *ReplicationControllerList) Reset() { *m = ReplicationControllerList{} } func (*ReplicationControllerList) ProtoMessage() {} func (*ReplicationControllerList) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{133} + return fileDescriptorGenerated, []int{134} } func (m *ReplicationControllerSpec) Reset() { *m = ReplicationControllerSpec{} } func (*ReplicationControllerSpec) ProtoMessage() {} func (*ReplicationControllerSpec) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{134} + return fileDescriptorGenerated, []int{135} } func (m *ReplicationControllerStatus) Reset() { *m = ReplicationControllerStatus{} } func (*ReplicationControllerStatus) ProtoMessage() {} func (*ReplicationControllerStatus) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{135} + return fileDescriptorGenerated, []int{136} } func (m *ResourceFieldSelector) Reset() { *m = ResourceFieldSelector{} } func (*ResourceFieldSelector) ProtoMessage() {} -func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{136} } +func (*ResourceFieldSelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } func (m *ResourceQuota) Reset() { *m = ResourceQuota{} } func (*ResourceQuota) ProtoMessage() {} -func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{137} } +func (*ResourceQuota) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } func (m *ResourceQuotaList) Reset() { *m = ResourceQuotaList{} } func (*ResourceQuotaList) ProtoMessage() {} -func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{138} } +func (*ResourceQuotaList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } func (m *ResourceQuotaSpec) Reset() { *m = ResourceQuotaSpec{} } func (*ResourceQuotaSpec) ProtoMessage() {} -func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{139} } +func (*ResourceQuotaSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } func (m *ResourceQuotaStatus) Reset() { *m = ResourceQuotaStatus{} } func (*ResourceQuotaStatus) ProtoMessage() {} -func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{140} } +func (*ResourceQuotaStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } func (m *ResourceRequirements) Reset() { *m = ResourceRequirements{} } func (*ResourceRequirements) ProtoMessage() {} -func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{141} } +func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } func (m *SELinuxOptions) Reset() { *m = SELinuxOptions{} } func (*SELinuxOptions) ProtoMessage() {} -func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{142} } +func (*SELinuxOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } func (m *ScaleIOVolumeSource) Reset() { *m = ScaleIOVolumeSource{} } func (*ScaleIOVolumeSource) ProtoMessage() {} -func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{143} } +func (*ScaleIOVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } func (m *Secret) Reset() { *m = Secret{} } func (*Secret) ProtoMessage() {} -func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{144} } +func (*Secret) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } func (m *SecretEnvSource) Reset() { *m = SecretEnvSource{} } func (*SecretEnvSource) ProtoMessage() {} -func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{145} } +func (*SecretEnvSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } func (m *SecretKeySelector) Reset() { *m = SecretKeySelector{} } func (*SecretKeySelector) ProtoMessage() {} -func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{146} } +func (*SecretKeySelector) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } func (m *SecretList) Reset() { *m = SecretList{} } func (*SecretList) ProtoMessage() {} -func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{147} } +func (*SecretList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } func (m *SecretProjection) Reset() { *m = SecretProjection{} } func (*SecretProjection) ProtoMessage() {} -func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{148} } +func (*SecretProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } func (m *SecretVolumeSource) Reset() { *m = SecretVolumeSource{} } func (*SecretVolumeSource) ProtoMessage() {} -func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{149} } +func (*SecretVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } func (m *SecurityContext) Reset() { *m = SecurityContext{} } func (*SecurityContext) ProtoMessage() {} -func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{150} } +func (*SecurityContext) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } func (m *SerializedReference) Reset() { *m = SerializedReference{} } func (*SerializedReference) ProtoMessage() {} -func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{151} } +func (*SerializedReference) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } func (m *Service) Reset() { *m = Service{} } func (*Service) ProtoMessage() {} -func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{152} } +func (*Service) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } func (m *ServiceAccount) Reset() { *m = ServiceAccount{} } func (*ServiceAccount) ProtoMessage() {} -func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{153} } +func (*ServiceAccount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } func (m *ServiceAccountList) Reset() { *m = ServiceAccountList{} } func (*ServiceAccountList) ProtoMessage() {} -func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{154} } +func (*ServiceAccountList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } func (m *ServiceList) Reset() { *m = ServiceList{} } func (*ServiceList) ProtoMessage() {} -func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{155} } +func (*ServiceList) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } func (m *ServicePort) Reset() { *m = ServicePort{} } func (*ServicePort) ProtoMessage() {} -func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{156} } +func (*ServicePort) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } func (m *ServiceProxyOptions) Reset() { *m = ServiceProxyOptions{} } func (*ServiceProxyOptions) ProtoMessage() {} -func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{157} } +func (*ServiceProxyOptions) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } func (m *ServiceSpec) Reset() { *m = ServiceSpec{} } func (*ServiceSpec) ProtoMessage() {} -func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{158} } +func (*ServiceSpec) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } func (m *ServiceStatus) Reset() { *m = ServiceStatus{} } func (*ServiceStatus) ProtoMessage() {} -func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{159} } +func (*ServiceStatus) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{160} } func (m *StorageOSPersistentVolumeSource) Reset() { *m = StorageOSPersistentVolumeSource{} } func (*StorageOSPersistentVolumeSource) ProtoMessage() {} func (*StorageOSPersistentVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{160} + return fileDescriptorGenerated, []int{161} } func (m *StorageOSVolumeSource) Reset() { *m = StorageOSVolumeSource{} } func (*StorageOSVolumeSource) ProtoMessage() {} -func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{161} } +func (*StorageOSVolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } func (m *Sysctl) Reset() { *m = Sysctl{} } func (*Sysctl) ProtoMessage() {} -func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{162} } +func (*Sysctl) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } func (m *TCPSocketAction) Reset() { *m = TCPSocketAction{} } func (*TCPSocketAction) ProtoMessage() {} -func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{163} } +func (*TCPSocketAction) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } func (m *Taint) Reset() { *m = Taint{} } func (*Taint) ProtoMessage() {} -func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{164} } +func (*Taint) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } func (m *Toleration) Reset() { *m = Toleration{} } func (*Toleration) ProtoMessage() {} -func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{165} } +func (*Toleration) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } func (m *Volume) Reset() { *m = Volume{} } func (*Volume) ProtoMessage() {} -func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{166} } +func (*Volume) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } func (m *VolumeMount) Reset() { *m = VolumeMount{} } func (*VolumeMount) ProtoMessage() {} -func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{167} } +func (*VolumeMount) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } func (m *VolumeProjection) Reset() { *m = VolumeProjection{} } func (*VolumeProjection) ProtoMessage() {} -func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{168} } +func (*VolumeProjection) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } func (m *VolumeSource) Reset() { *m = VolumeSource{} } func (*VolumeSource) ProtoMessage() {} -func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{169} } +func (*VolumeSource) Descriptor() ([]byte, []int) { return fileDescriptorGenerated, []int{170} } func (m *VsphereVirtualDiskVolumeSource) Reset() { *m = VsphereVirtualDiskVolumeSource{} } func (*VsphereVirtualDiskVolumeSource) ProtoMessage() {} func (*VsphereVirtualDiskVolumeSource) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{170} + return fileDescriptorGenerated, []int{171} } func (m *WeightedPodAffinityTerm) Reset() { *m = WeightedPodAffinityTerm{} } func (*WeightedPodAffinityTerm) ProtoMessage() {} func (*WeightedPodAffinityTerm) Descriptor() ([]byte, []int) { - return fileDescriptorGenerated, []int{171} + return fileDescriptorGenerated, []int{172} } func init() { @@ -960,6 +969,7 @@ func init() { proto.RegisterType((*AttachedVolume)(nil), "k8s.io.api.core.v1.AttachedVolume") proto.RegisterType((*AvoidPods)(nil), "k8s.io.api.core.v1.AvoidPods") proto.RegisterType((*AzureDiskVolumeSource)(nil), "k8s.io.api.core.v1.AzureDiskVolumeSource") + proto.RegisterType((*AzureFilePersistentVolumeSource)(nil), "k8s.io.api.core.v1.AzureFilePersistentVolumeSource") proto.RegisterType((*AzureFileVolumeSource)(nil), "k8s.io.api.core.v1.AzureFileVolumeSource") proto.RegisterType((*Binding)(nil), "k8s.io.api.core.v1.Binding") proto.RegisterType((*Capabilities)(nil), "k8s.io.api.core.v1.Capabilities") @@ -1323,6 +1333,46 @@ func (m *AzureDiskVolumeSource) MarshalTo(dAtA []byte) (int, error) { return i, nil } +func (m *AzureFilePersistentVolumeSource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalTo(dAtA) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AzureFilePersistentVolumeSource) MarshalTo(dAtA []byte) (int, error) { + var i int + _ = i + var l int + _ = l + dAtA[i] = 0xa + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretName))) + i += copy(dAtA[i:], m.SecretName) + dAtA[i] = 0x12 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ShareName))) + i += copy(dAtA[i:], m.ShareName) + dAtA[i] = 0x18 + i++ + if m.ReadOnly { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i++ + if m.SecretNamespace != nil { + dAtA[i] = 0x22 + i++ + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SecretNamespace))) + i += copy(dAtA[i:], *m.SecretNamespace) + } + return i, nil +} + func (m *AzureFileVolumeSource) Marshal() (dAtA []byte, err error) { size := m.Size() dAtA = make([]byte, size) @@ -9675,6 +9725,21 @@ func (m *AzureDiskVolumeSource) Size() (n int) { return n } +func (m *AzureFilePersistentVolumeSource) Size() (n int) { + var l int + _ = l + l = len(m.SecretName) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.ShareName) + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.SecretNamespace != nil { + l = len(*m.SecretNamespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + func (m *AzureFileVolumeSource) Size() (n int) { var l int _ = l @@ -12729,6 +12794,19 @@ func (this *AzureDiskVolumeSource) String() string { }, "") return s } +func (this *AzureFilePersistentVolumeSource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AzureFilePersistentVolumeSource{`, + `SecretName:` + fmt.Sprintf("%v", this.SecretName) + `,`, + `ShareName:` + fmt.Sprintf("%v", this.ShareName) + `,`, + `ReadOnly:` + fmt.Sprintf("%v", this.ReadOnly) + `,`, + `SecretNamespace:` + valueToStringGenerated(this.SecretNamespace) + `,`, + `}`, + }, "") + return s +} func (this *AzureFileVolumeSource) String() string { if this == nil { return "nil" @@ -14043,7 +14121,7 @@ func (this *PersistentVolumeSource) String() string { `FC:` + strings.Replace(fmt.Sprintf("%v", this.FC), "FCVolumeSource", "FCVolumeSource", 1) + `,`, `Flocker:` + strings.Replace(fmt.Sprintf("%v", this.Flocker), "FlockerVolumeSource", "FlockerVolumeSource", 1) + `,`, `FlexVolume:` + strings.Replace(fmt.Sprintf("%v", this.FlexVolume), "FlexVolumeSource", "FlexVolumeSource", 1) + `,`, - `AzureFile:` + strings.Replace(fmt.Sprintf("%v", this.AzureFile), "AzureFileVolumeSource", "AzureFileVolumeSource", 1) + `,`, + `AzureFile:` + strings.Replace(fmt.Sprintf("%v", this.AzureFile), "AzureFilePersistentVolumeSource", "AzureFilePersistentVolumeSource", 1) + `,`, `VsphereVolume:` + strings.Replace(fmt.Sprintf("%v", this.VsphereVolume), "VsphereVirtualDiskVolumeSource", "VsphereVirtualDiskVolumeSource", 1) + `,`, `Quobyte:` + strings.Replace(fmt.Sprintf("%v", this.Quobyte), "QuobyteVolumeSource", "QuobyteVolumeSource", 1) + `,`, `AzureDisk:` + strings.Replace(fmt.Sprintf("%v", this.AzureDisk), "AzureDiskVolumeSource", "AzureDiskVolumeSource", 1) + `,`, @@ -15828,6 +15906,164 @@ func (m *AzureDiskVolumeSource) Unmarshal(dAtA []byte) error { } return nil } +func (m *AzureFilePersistentVolumeSource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AzureFilePersistentVolumeSource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AzureFilePersistentVolumeSource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SecretName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ShareName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ShareName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ReadOnly", 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.ReadOnly = bool(v != 0) + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretNamespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SecretNamespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func (m *AzureFileVolumeSource) Unmarshal(dAtA []byte) error { l := len(dAtA) iNdEx := 0 @@ -31318,7 +31554,7 @@ func (m *PersistentVolumeSource) Unmarshal(dAtA []byte) error { return io.ErrUnexpectedEOF } if m.AzureFile == nil { - m.AzureFile = &AzureFileVolumeSource{} + m.AzureFile = &AzureFilePersistentVolumeSource{} } if err := m.AzureFile.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { return err @@ -44843,729 +45079,731 @@ func init() { } var fileDescriptorGenerated = []byte{ - // 11579 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x6b, 0x70, 0x24, 0xd7, - 0x75, 0x18, 0xac, 0x9e, 0xc1, 0x6b, 0x0e, 0xde, 0x77, 0x1f, 0x9c, 0x05, 0xc9, 0xc5, 0xb2, 0x29, - 0x91, 0xcb, 0x17, 0x60, 0x2e, 0x49, 0x91, 0x16, 0x29, 0x5a, 0x00, 0x06, 0xd8, 0x05, 0xf7, 0x35, - 0xbc, 0x83, 0x5d, 0x9a, 0x14, 0x4d, 0xab, 0x31, 0x7d, 0x01, 0x34, 0xd1, 0xe8, 0x1e, 0x76, 0xf7, - 0x60, 0x17, 0x2c, 0xab, 0xea, 0xfb, 0x14, 0x59, 0x79, 0xc8, 0x3f, 0x5c, 0x29, 0x57, 0xe2, 0x58, - 0x2a, 0xa7, 0x2a, 0x8f, 0xb2, 0x15, 0x27, 0x29, 0x3b, 0x72, 0xfc, 0x90, 0x9c, 0x4a, 0xe2, 0x3c, - 0x4a, 0xfa, 0xe3, 0xd8, 0xae, 0x4a, 0x49, 0x55, 0xa9, 0xc0, 0x16, 0x94, 0x4a, 0x2a, 0x3f, 0x92, - 0xca, 0xe3, 0x97, 0x11, 0x27, 0x4a, 0xdd, 0x67, 0xdf, 0xdb, 0xd3, 0x3d, 0x33, 0x58, 0x62, 0x41, - 0x4a, 0x95, 0x7f, 0x33, 0xe7, 0x9c, 0x7b, 0xee, 0xed, 0xfb, 0x38, 0xf7, 0x9c, 0x73, 0xcf, 0x3d, - 0x17, 0x5e, 0xde, 0x7e, 0x29, 0x9e, 0xf3, 0xc2, 0xf9, 0xed, 0xf6, 0x3a, 0x89, 0x02, 0x92, 0x90, - 0x78, 0x7e, 0x97, 0x04, 0x6e, 0x18, 0xcd, 0x0b, 0x84, 0xd3, 0xf2, 0xe6, 0x9b, 0x61, 0x44, 0xe6, - 0x77, 0x9f, 0x9d, 0xdf, 0x24, 0x01, 0x89, 0x9c, 0x84, 0xb8, 0x73, 0xad, 0x28, 0x4c, 0x42, 0x84, - 0x38, 0xcd, 0x9c, 0xd3, 0xf2, 0xe6, 0x28, 0xcd, 0xdc, 0xee, 0xb3, 0x33, 0xcf, 0x6c, 0x7a, 0xc9, - 0x56, 0x7b, 0x7d, 0xae, 0x19, 0xee, 0xcc, 0x6f, 0x86, 0x9b, 0xe1, 0x3c, 0x23, 0x5d, 0x6f, 0x6f, - 0xb0, 0x7f, 0xec, 0x0f, 0xfb, 0xc5, 0x59, 0xcc, 0x3c, 0x9f, 0x56, 0xb3, 0xe3, 0x34, 0xb7, 0xbc, - 0x80, 0x44, 0x7b, 0xf3, 0xad, 0xed, 0x4d, 0x56, 0x6f, 0x44, 0xe2, 0xb0, 0x1d, 0x35, 0x49, 0xb6, - 0xe2, 0xae, 0xa5, 0xe2, 0xf9, 0x1d, 0x92, 0x38, 0x39, 0xcd, 0x9d, 0x99, 0x2f, 0x2a, 0x15, 0xb5, - 0x83, 0xc4, 0xdb, 0xe9, 0xac, 0xe6, 0x93, 0xbd, 0x0a, 0xc4, 0xcd, 0x2d, 0xb2, 0xe3, 0x74, 0x94, - 0x7b, 0xae, 0xa8, 0x5c, 0x3b, 0xf1, 0xfc, 0x79, 0x2f, 0x48, 0xe2, 0x24, 0xca, 0x16, 0xb2, 0xbf, - 0x63, 0xc1, 0x85, 0x85, 0x37, 0x1a, 0xcb, 0xbe, 0x13, 0x27, 0x5e, 0x73, 0xd1, 0x0f, 0x9b, 0xdb, - 0x8d, 0x24, 0x8c, 0xc8, 0xed, 0xd0, 0x6f, 0xef, 0x90, 0x06, 0xeb, 0x08, 0xf4, 0x34, 0x8c, 0xec, - 0xb2, 0xff, 0xab, 0xb5, 0xaa, 0x75, 0xc1, 0xba, 0x58, 0x59, 0x9c, 0xfa, 0xd6, 0xfe, 0xec, 0xc7, - 0x0e, 0xf6, 0x67, 0x47, 0x6e, 0x0b, 0x38, 0x56, 0x14, 0xe8, 0x31, 0x18, 0xda, 0x88, 0xd7, 0xf6, - 0x5a, 0xa4, 0x5a, 0x62, 0xb4, 0x13, 0x82, 0x76, 0x68, 0xa5, 0x41, 0xa1, 0x58, 0x60, 0xd1, 0x3c, - 0x54, 0x5a, 0x4e, 0x94, 0x78, 0x89, 0x17, 0x06, 0xd5, 0xf2, 0x05, 0xeb, 0xe2, 0xe0, 0xe2, 0xb4, - 0x20, 0xad, 0xd4, 0x25, 0x02, 0xa7, 0x34, 0xb4, 0x19, 0x11, 0x71, 0xdc, 0x9b, 0x81, 0xbf, 0x57, - 0x1d, 0xb8, 0x60, 0x5d, 0x1c, 0x49, 0x9b, 0x81, 0x05, 0x1c, 0x2b, 0x0a, 0xfb, 0x97, 0x4a, 0x30, - 0xb2, 0xb0, 0xb1, 0xe1, 0x05, 0x5e, 0xb2, 0x87, 0x6e, 0xc3, 0x58, 0x10, 0xba, 0x44, 0xfe, 0x67, - 0x5f, 0x31, 0x7a, 0xe9, 0xc2, 0x5c, 0xe7, 0x54, 0x9a, 0xbb, 0xa1, 0xd1, 0x2d, 0x4e, 0x1d, 0xec, - 0xcf, 0x8e, 0xe9, 0x10, 0x6c, 0xf0, 0x41, 0x18, 0x46, 0x5b, 0xa1, 0xab, 0xd8, 0x96, 0x18, 0xdb, - 0xd9, 0x3c, 0xb6, 0xf5, 0x94, 0x6c, 0x71, 0xf2, 0x60, 0x7f, 0x76, 0x54, 0x03, 0x60, 0x9d, 0x09, - 0x5a, 0x87, 0x49, 0xfa, 0x37, 0x48, 0x3c, 0xc5, 0xb7, 0xcc, 0xf8, 0x3e, 0x5a, 0xc4, 0x57, 0x23, - 0x5d, 0x3c, 0x75, 0xb0, 0x3f, 0x3b, 0x99, 0x01, 0xe2, 0x2c, 0x43, 0xfb, 0x7d, 0x98, 0x58, 0x48, - 0x12, 0xa7, 0xb9, 0x45, 0x5c, 0x3e, 0x82, 0xe8, 0x79, 0x18, 0x08, 0x9c, 0x1d, 0x22, 0xc6, 0xf7, - 0x82, 0xe8, 0xd8, 0x81, 0x1b, 0xce, 0x0e, 0x39, 0xdc, 0x9f, 0x9d, 0xba, 0x15, 0x78, 0xef, 0xb5, - 0xc5, 0xac, 0xa0, 0x30, 0xcc, 0xa8, 0xd1, 0x25, 0x00, 0x97, 0xec, 0x7a, 0x4d, 0x52, 0x77, 0x92, - 0x2d, 0x31, 0xde, 0x48, 0x94, 0x85, 0x9a, 0xc2, 0x60, 0x8d, 0xca, 0xbe, 0x0b, 0x95, 0x85, 0xdd, - 0xd0, 0x73, 0xeb, 0xa1, 0x1b, 0xa3, 0x6d, 0x98, 0x6c, 0x45, 0x64, 0x83, 0x44, 0x0a, 0x54, 0xb5, - 0x2e, 0x94, 0x2f, 0x8e, 0x5e, 0xba, 0x98, 0xfb, 0xb1, 0x26, 0xe9, 0x72, 0x90, 0x44, 0x7b, 0x8b, - 0x0f, 0x88, 0xfa, 0x26, 0x33, 0x58, 0x9c, 0xe5, 0x6c, 0xff, 0xcb, 0x12, 0x9c, 0x59, 0x78, 0xbf, - 0x1d, 0x91, 0x9a, 0x17, 0x6f, 0x67, 0x67, 0xb8, 0xeb, 0xc5, 0xdb, 0x37, 0xd2, 0x1e, 0x50, 0x53, - 0xab, 0x26, 0xe0, 0x58, 0x51, 0xa0, 0x67, 0x60, 0x98, 0xfe, 0xbe, 0x85, 0x57, 0xc5, 0x27, 0x9f, - 0x12, 0xc4, 0xa3, 0x35, 0x27, 0x71, 0x6a, 0x1c, 0x85, 0x25, 0x0d, 0xba, 0x0e, 0xa3, 0x4d, 0xb6, - 0x20, 0x37, 0xaf, 0x87, 0x2e, 0x61, 0x83, 0x59, 0x59, 0x7c, 0x8a, 0x92, 0x2f, 0xa5, 0xe0, 0xc3, - 0xfd, 0xd9, 0x2a, 0x6f, 0x9b, 0x60, 0xa1, 0xe1, 0xb0, 0x5e, 0x1e, 0xd9, 0x6a, 0x7d, 0x0d, 0x30, - 0x4e, 0x90, 0xb3, 0xb6, 0x2e, 0x6a, 0x4b, 0x65, 0x90, 0x2d, 0x95, 0xb1, 0xfc, 0x65, 0x82, 0x9e, - 0x85, 0x81, 0x6d, 0x2f, 0x70, 0xab, 0x43, 0x8c, 0xd7, 0xc3, 0x74, 0xcc, 0xaf, 0x7a, 0x81, 0x7b, - 0xb8, 0x3f, 0x3b, 0x6d, 0x34, 0x87, 0x02, 0x31, 0x23, 0xb5, 0xff, 0x9e, 0x25, 0xba, 0x71, 0xc5, - 0xf3, 0x4d, 0x41, 0x71, 0x09, 0x20, 0x26, 0xcd, 0x88, 0x24, 0x5a, 0x47, 0xaa, 0xe9, 0xd0, 0x50, - 0x18, 0xac, 0x51, 0x51, 0x31, 0x10, 0x6f, 0x39, 0x11, 0x9b, 0x55, 0xa2, 0x3b, 0x95, 0x18, 0x68, - 0x48, 0x04, 0x4e, 0x69, 0x0c, 0x31, 0x50, 0xee, 0x29, 0x06, 0x7e, 0xc7, 0x82, 0xe1, 0x45, 0x2f, - 0x70, 0xbd, 0x60, 0x13, 0x7d, 0x0e, 0x46, 0xa8, 0x94, 0x76, 0x9d, 0xc4, 0x11, 0x12, 0xe0, 0xc7, - 0xb4, 0x59, 0xa6, 0x84, 0xe6, 0x5c, 0x6b, 0x7b, 0x93, 0x02, 0xe2, 0x39, 0x4a, 0x4d, 0xe7, 0xdd, - 0xcd, 0xf5, 0x77, 0x49, 0x33, 0xb9, 0x4e, 0x12, 0x27, 0xfd, 0x9c, 0x14, 0x86, 0x15, 0x57, 0x74, - 0x15, 0x86, 0x12, 0x27, 0xda, 0x24, 0x89, 0x10, 0x05, 0xb9, 0x4b, 0x96, 0x97, 0xc4, 0x74, 0x6e, - 0x92, 0xa0, 0x49, 0x52, 0x01, 0xb9, 0xc6, 0x8a, 0x62, 0xc1, 0xc2, 0x6e, 0xc2, 0xd8, 0x92, 0xd3, - 0x72, 0xd6, 0x3d, 0xdf, 0x4b, 0x3c, 0x12, 0xa3, 0xc7, 0xa1, 0xec, 0xb8, 0x2e, 0x5b, 0x1f, 0x95, - 0xc5, 0x33, 0x07, 0xfb, 0xb3, 0xe5, 0x05, 0x97, 0x0e, 0x14, 0x28, 0xaa, 0x3d, 0x4c, 0x29, 0xd0, - 0x93, 0x30, 0xe0, 0x46, 0x61, 0xab, 0x5a, 0x62, 0x94, 0x67, 0xe9, 0x98, 0xd6, 0xa2, 0xb0, 0x95, - 0x21, 0x65, 0x34, 0xf6, 0x37, 0x4b, 0x80, 0x96, 0x48, 0x6b, 0x6b, 0xa5, 0x61, 0x8c, 0xe4, 0x45, - 0x18, 0xd9, 0x09, 0x03, 0x2f, 0x09, 0xa3, 0x58, 0x54, 0xc8, 0x26, 0xd0, 0x75, 0x01, 0xc3, 0x0a, - 0x8b, 0x2e, 0xc0, 0x40, 0x2b, 0x5d, 0xfc, 0x63, 0x52, 0x70, 0xb0, 0x65, 0xcf, 0x30, 0x94, 0xa2, - 0x1d, 0x93, 0x48, 0x4c, 0x7c, 0x45, 0x71, 0x2b, 0x26, 0x11, 0x66, 0x98, 0x74, 0xde, 0xd0, 0x19, - 0x25, 0xa6, 0x75, 0x66, 0xde, 0x50, 0x0c, 0xd6, 0xa8, 0xd0, 0x2d, 0xa8, 0xf0, 0x7f, 0x98, 0x6c, - 0xb0, 0x39, 0x5e, 0x20, 0x33, 0xae, 0x85, 0x4d, 0xc7, 0xcf, 0x76, 0xf9, 0x38, 0x9b, 0x5d, 0xb2, - 0x38, 0x4e, 0x39, 0x19, 0xb3, 0x6b, 0xa8, 0xe7, 0xec, 0xfa, 0x45, 0x0b, 0xd0, 0x92, 0x17, 0xb8, - 0x24, 0x3a, 0x81, 0x0d, 0xf3, 0x68, 0x13, 0xff, 0xdf, 0xd1, 0xa6, 0x85, 0x3b, 0xad, 0x30, 0x20, - 0x41, 0xb2, 0x14, 0x06, 0x2e, 0xdf, 0x44, 0x3f, 0x05, 0x03, 0x09, 0xad, 0x8a, 0x37, 0xeb, 0x31, - 0x39, 0x18, 0xb4, 0x82, 0xc3, 0xfd, 0xd9, 0xb3, 0x9d, 0x25, 0x58, 0x13, 0x58, 0x19, 0xf4, 0xe3, - 0x30, 0x14, 0x27, 0x4e, 0xd2, 0x8e, 0x45, 0x43, 0x1f, 0x91, 0x0d, 0x6d, 0x30, 0xe8, 0xe1, 0xfe, - 0xec, 0xa4, 0x2a, 0xc6, 0x41, 0x58, 0x14, 0x40, 0x4f, 0xc0, 0xf0, 0x0e, 0x89, 0x63, 0x67, 0x53, - 0xca, 0xbf, 0x49, 0x51, 0x76, 0xf8, 0x3a, 0x07, 0x63, 0x89, 0x47, 0x8f, 0xc2, 0x20, 0x89, 0xa2, - 0x30, 0x12, 0xf3, 0x60, 0x5c, 0x10, 0x0e, 0x2e, 0x53, 0x20, 0xe6, 0x38, 0xfb, 0xdf, 0x58, 0x30, - 0xa9, 0xda, 0xca, 0xeb, 0x3a, 0x81, 0xe5, 0xfd, 0x16, 0x40, 0x53, 0x7e, 0x60, 0xcc, 0x96, 0xd7, - 0xe8, 0xa5, 0xc7, 0xf2, 0x26, 0x5d, 0x67, 0x37, 0xa6, 0x9c, 0x15, 0x28, 0xc6, 0x1a, 0x37, 0xfb, - 0x9f, 0x58, 0x70, 0x2a, 0xf3, 0x45, 0xd7, 0xbc, 0x38, 0x41, 0x6f, 0x77, 0x7c, 0xd5, 0x5c, 0x7f, - 0x5f, 0x45, 0x4b, 0xb3, 0x6f, 0x52, 0xb3, 0x44, 0x42, 0xb4, 0x2f, 0xba, 0x02, 0x83, 0x5e, 0x42, - 0x76, 0xe4, 0xc7, 0x3c, 0xda, 0xf5, 0x63, 0x78, 0xab, 0xd2, 0x11, 0x59, 0xa5, 0x25, 0x31, 0x67, - 0x60, 0xff, 0x77, 0x0b, 0x2a, 0x4b, 0x61, 0xb0, 0xe1, 0x6d, 0x5e, 0x77, 0x5a, 0x27, 0x30, 0x16, - 0xab, 0x30, 0xc0, 0xb8, 0xf3, 0x86, 0x3f, 0x9e, 0xdf, 0x70, 0xd1, 0x9c, 0x39, 0xba, 0x8b, 0x71, - 0x6d, 0x41, 0x89, 0x1f, 0x0a, 0xc2, 0x8c, 0xc5, 0xcc, 0x8b, 0x50, 0x51, 0x04, 0x68, 0x0a, 0xca, - 0xdb, 0x84, 0x6b, 0x88, 0x15, 0x4c, 0x7f, 0xa2, 0xd3, 0x30, 0xb8, 0xeb, 0xf8, 0x6d, 0xb1, 0x3c, - 0x31, 0xff, 0xf3, 0xa9, 0xd2, 0x4b, 0x96, 0xfd, 0x0d, 0xb6, 0xc6, 0x44, 0x25, 0xcb, 0xc1, 0xae, - 0x58, 0xfe, 0xef, 0xc3, 0x69, 0x3f, 0x47, 0xea, 0x88, 0x8e, 0xe8, 0x5f, 0x4a, 0x3d, 0x24, 0xda, - 0x7a, 0x3a, 0x0f, 0x8b, 0x73, 0xeb, 0xa0, 0x82, 0x3b, 0x6c, 0xd1, 0x19, 0xe5, 0xf8, 0xac, 0xbd, - 0x62, 0xe7, 0xbf, 0x29, 0x60, 0x58, 0x61, 0xa9, 0x80, 0x38, 0xad, 0x1a, 0x7f, 0x95, 0xec, 0x35, - 0x88, 0x4f, 0x9a, 0x49, 0x18, 0x7d, 0xa8, 0xcd, 0x7f, 0x98, 0xf7, 0x3e, 0x97, 0x2f, 0xa3, 0x82, - 0x41, 0xf9, 0x2a, 0xd9, 0xe3, 0x43, 0xa1, 0x7f, 0x5d, 0xb9, 0xeb, 0xd7, 0xfd, 0x86, 0x05, 0xe3, - 0xea, 0xeb, 0x4e, 0x60, 0x21, 0x2d, 0x9a, 0x0b, 0xe9, 0xe1, 0xae, 0xf3, 0xb1, 0x60, 0x09, 0xfd, - 0x80, 0x89, 0x00, 0x41, 0x53, 0x8f, 0x42, 0xda, 0x35, 0x54, 0x66, 0x7f, 0x98, 0x03, 0xd2, 0xcf, - 0x77, 0x5d, 0x25, 0x7b, 0x6b, 0x21, 0xdd, 0xf0, 0xf3, 0xbf, 0xcb, 0x18, 0xb5, 0x81, 0xae, 0xa3, - 0xf6, 0x9b, 0x25, 0x38, 0xa3, 0x7a, 0xc0, 0xd8, 0x52, 0x7f, 0xd8, 0xfb, 0xe0, 0x59, 0x18, 0x75, - 0xc9, 0x86, 0xd3, 0xf6, 0x13, 0x65, 0x04, 0x0c, 0x72, 0x43, 0xb0, 0x96, 0x82, 0xb1, 0x4e, 0x73, - 0x84, 0x6e, 0xfb, 0x57, 0xc0, 0x64, 0x6f, 0xe2, 0xd0, 0x19, 0x4c, 0xf5, 0x2d, 0xcd, 0x94, 0x1b, - 0xd3, 0x4d, 0x39, 0x61, 0xb6, 0x3d, 0x0a, 0x83, 0xde, 0x0e, 0xdd, 0x8b, 0x4b, 0xe6, 0x16, 0xbb, - 0x4a, 0x81, 0x98, 0xe3, 0xd0, 0x27, 0x60, 0xb8, 0x19, 0xee, 0xec, 0x38, 0x81, 0x5b, 0x2d, 0x33, - 0x0d, 0x70, 0x94, 0x6e, 0xd7, 0x4b, 0x1c, 0x84, 0x25, 0x0e, 0x3d, 0x04, 0x03, 0x4e, 0xb4, 0x19, - 0x57, 0x07, 0x18, 0xcd, 0x08, 0xad, 0x69, 0x21, 0xda, 0x8c, 0x31, 0x83, 0x52, 0xcd, 0xee, 0x4e, - 0x18, 0x6d, 0x7b, 0xc1, 0x66, 0xcd, 0x8b, 0x98, 0x9a, 0xa6, 0x69, 0x76, 0x6f, 0x28, 0x0c, 0xd6, - 0xa8, 0xd0, 0x0a, 0x0c, 0xb6, 0xc2, 0x28, 0x89, 0xab, 0x43, 0xac, 0xbb, 0x1f, 0x29, 0x58, 0x4a, - 0xfc, 0x6b, 0xeb, 0x61, 0x94, 0xa4, 0x1f, 0x40, 0xff, 0xc5, 0x98, 0x17, 0x47, 0x3f, 0x0e, 0x65, - 0x12, 0xec, 0x56, 0x87, 0x19, 0x97, 0x99, 0x3c, 0x2e, 0xcb, 0xc1, 0xee, 0x6d, 0x27, 0x4a, 0xe5, - 0xcc, 0x72, 0xb0, 0x8b, 0x69, 0x19, 0xf4, 0x26, 0x54, 0xa4, 0x1b, 0x28, 0xae, 0x8e, 0x14, 0x4f, - 0x31, 0x2c, 0x88, 0x30, 0x79, 0xaf, 0xed, 0x45, 0x64, 0x87, 0x04, 0x49, 0x9c, 0x9a, 0x2f, 0x12, - 0x1b, 0xe3, 0x94, 0x1b, 0x7a, 0x13, 0xc6, 0xb8, 0xe6, 0x77, 0x3d, 0x6c, 0x07, 0x49, 0x5c, 0xad, - 0xb0, 0xe6, 0xe5, 0xfa, 0x0c, 0x6e, 0xa7, 0x74, 0x8b, 0xa7, 0x05, 0xd3, 0x31, 0x0d, 0x18, 0x63, - 0x83, 0x15, 0xc2, 0x30, 0xee, 0x7b, 0xbb, 0x24, 0x20, 0x71, 0x5c, 0x8f, 0xc2, 0x75, 0x52, 0x05, - 0xd6, 0xf2, 0x73, 0xf9, 0xa6, 0x74, 0xb8, 0x4e, 0x16, 0xa7, 0x0f, 0xf6, 0x67, 0xc7, 0xaf, 0xe9, - 0x65, 0xb0, 0xc9, 0x02, 0xdd, 0x82, 0x09, 0xaa, 0x52, 0x7a, 0x29, 0xd3, 0xd1, 0x5e, 0x4c, 0xd1, - 0xc1, 0xfe, 0xec, 0x04, 0x36, 0x0a, 0xe1, 0x0c, 0x13, 0xf4, 0x1a, 0x54, 0x7c, 0x6f, 0x83, 0x34, - 0xf7, 0x9a, 0x3e, 0xa9, 0x8e, 0x31, 0x8e, 0xb9, 0xcb, 0xea, 0x9a, 0x24, 0xe2, 0x2a, 0xbb, 0xfa, - 0x8b, 0xd3, 0xe2, 0xe8, 0x36, 0x9c, 0x4d, 0x48, 0xb4, 0xe3, 0x05, 0x0e, 0x5d, 0x0e, 0x42, 0x9f, - 0x64, 0x0e, 0x89, 0x71, 0x36, 0xdf, 0xce, 0x8b, 0xae, 0x3b, 0xbb, 0x96, 0x4b, 0x85, 0x0b, 0x4a, - 0xa3, 0x9b, 0x30, 0xc9, 0x56, 0x42, 0xbd, 0xed, 0xfb, 0xf5, 0xd0, 0xf7, 0x9a, 0x7b, 0xd5, 0x09, - 0xc6, 0xf0, 0x13, 0xd2, 0xe3, 0xb0, 0x6a, 0xa2, 0xa9, 0x81, 0x95, 0xfe, 0xc3, 0xd9, 0xd2, 0x68, - 0x1d, 0x26, 0x63, 0xd2, 0x6c, 0x47, 0x5e, 0xb2, 0x47, 0xe7, 0x2f, 0xb9, 0x9b, 0x54, 0x27, 0x8b, - 0xcd, 0xc4, 0x86, 0x49, 0xca, 0x3d, 0x3b, 0x19, 0x20, 0xce, 0x32, 0xa4, 0x4b, 0x3b, 0x4e, 0x5c, - 0x2f, 0xa8, 0x4e, 0x31, 0x89, 0xa1, 0x56, 0x46, 0x83, 0x02, 0x31, 0xc7, 0x31, 0x9b, 0x9b, 0xfe, - 0xb8, 0x49, 0x25, 0xe8, 0x34, 0x23, 0x4c, 0x6d, 0x6e, 0x89, 0xc0, 0x29, 0x0d, 0xdd, 0x96, 0x93, - 0x64, 0xaf, 0x8a, 0x18, 0xa9, 0x5a, 0x2e, 0x6b, 0x6b, 0x6f, 0x62, 0x0a, 0x47, 0xd7, 0x60, 0x98, - 0x04, 0xbb, 0x2b, 0x51, 0xb8, 0x53, 0x3d, 0x55, 0xbc, 0x66, 0x97, 0x39, 0x09, 0x17, 0xe8, 0xa9, - 0x01, 0x20, 0xc0, 0x58, 0xb2, 0x40, 0x77, 0xa1, 0x9a, 0x33, 0x22, 0x7c, 0x00, 0x4e, 0xb3, 0x01, - 0x78, 0x45, 0x94, 0xad, 0xae, 0x15, 0xd0, 0x1d, 0x76, 0xc1, 0xe1, 0x42, 0xee, 0xf6, 0x3a, 0x4c, - 0x28, 0xc1, 0xc2, 0xc6, 0x16, 0xcd, 0xc2, 0x20, 0x95, 0x98, 0xd2, 0x08, 0xae, 0xd0, 0xae, 0xa4, - 0x82, 0x34, 0xc6, 0x1c, 0xce, 0xba, 0xd2, 0x7b, 0x9f, 0x2c, 0xee, 0x25, 0x84, 0x9b, 0x45, 0x65, - 0xad, 0x2b, 0x25, 0x02, 0xa7, 0x34, 0xf6, 0xff, 0xe1, 0x8a, 0x49, 0x2a, 0xbd, 0xfa, 0x90, 0xd7, - 0x4f, 0xc3, 0xc8, 0x56, 0x18, 0x27, 0x94, 0x9a, 0xd5, 0x31, 0x98, 0xaa, 0x22, 0x57, 0x04, 0x1c, - 0x2b, 0x0a, 0xf4, 0x32, 0x8c, 0x37, 0xf5, 0x0a, 0xc4, 0x66, 0x73, 0x46, 0x14, 0x31, 0x6b, 0xc7, - 0x26, 0x2d, 0x7a, 0x09, 0x46, 0x98, 0x67, 0xb8, 0x19, 0xfa, 0xc2, 0x00, 0x93, 0x3b, 0xe6, 0x48, - 0x5d, 0xc0, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0x53, 0x33, 0x96, 0x36, 0x61, 0xb5, 0x2e, 0xc4, 0xbc, - 0x32, 0x63, 0xaf, 0x30, 0x28, 0x16, 0x58, 0xfb, 0xaf, 0x96, 0xb4, 0x5e, 0xa6, 0x26, 0x05, 0x41, - 0x75, 0x18, 0xbe, 0xe3, 0x78, 0x89, 0x17, 0x6c, 0x8a, 0xfd, 0xfc, 0x89, 0xae, 0x32, 0x9f, 0x15, - 0x7a, 0x83, 0x17, 0xe0, 0xbb, 0x92, 0xf8, 0x83, 0x25, 0x1b, 0xca, 0x31, 0x6a, 0x07, 0x01, 0xe5, - 0x58, 0xea, 0x97, 0x23, 0xe6, 0x05, 0x38, 0x47, 0xf1, 0x07, 0x4b, 0x36, 0xe8, 0x6d, 0x00, 0x39, - 0x6f, 0x88, 0x2b, 0x3c, 0xb2, 0x4f, 0xf7, 0x66, 0xba, 0xa6, 0xca, 0x2c, 0x4e, 0xd0, 0x3d, 0x2f, - 0xfd, 0x8f, 0x35, 0x7e, 0x76, 0xc2, 0xf4, 0x9e, 0xce, 0xc6, 0xa0, 0xcf, 0xd2, 0xa5, 0xea, 0x44, - 0x09, 0x71, 0x17, 0x12, 0xd1, 0x39, 0x4f, 0xf6, 0xa7, 0xb6, 0xae, 0x79, 0x3b, 0x44, 0x5f, 0xd6, - 0x82, 0x09, 0x4e, 0xf9, 0xd9, 0xbf, 0x5d, 0x86, 0x6a, 0x51, 0x73, 0xe9, 0xa4, 0x23, 0x77, 0xbd, - 0x64, 0x89, 0xaa, 0x2b, 0x96, 0x39, 0xe9, 0x96, 0x05, 0x1c, 0x2b, 0x0a, 0x3a, 0xfa, 0xb1, 0xb7, - 0x29, 0xad, 0x8e, 0xc1, 0x74, 0xf4, 0x1b, 0x0c, 0x8a, 0x05, 0x96, 0xd2, 0x45, 0xc4, 0x89, 0x85, - 0xcb, 0x5f, 0x9b, 0x25, 0x98, 0x41, 0xb1, 0xc0, 0xea, 0x0e, 0x83, 0x81, 0x1e, 0x0e, 0x03, 0xa3, - 0x8b, 0x06, 0x8f, 0xb7, 0x8b, 0xd0, 0x3b, 0x00, 0x1b, 0x5e, 0xe0, 0xc5, 0x5b, 0x8c, 0xfb, 0xd0, - 0x91, 0xb9, 0x2b, 0x65, 0x67, 0x45, 0x71, 0xc1, 0x1a, 0x47, 0xf4, 0x02, 0x8c, 0xaa, 0x05, 0xb8, - 0x5a, 0xab, 0x0e, 0x9b, 0xfe, 0xe4, 0x54, 0x1a, 0xd5, 0xb0, 0x4e, 0x67, 0xbf, 0x9b, 0x9d, 0x2f, - 0x62, 0x05, 0x68, 0xfd, 0x6b, 0xf5, 0xdb, 0xbf, 0xa5, 0xee, 0xfd, 0x6b, 0xff, 0x7e, 0x19, 0x26, - 0x8d, 0xca, 0xda, 0x71, 0x1f, 0x32, 0xeb, 0x32, 0xdd, 0x88, 0x9c, 0x84, 0x88, 0xf5, 0x67, 0xf7, - 0x5e, 0x2a, 0xfa, 0x66, 0x45, 0x57, 0x00, 0x2f, 0x8f, 0xde, 0x81, 0x8a, 0xef, 0xc4, 0xcc, 0xf9, - 0x40, 0xc4, 0xba, 0xeb, 0x87, 0x59, 0xaa, 0xe8, 0x3b, 0x71, 0xa2, 0xed, 0x05, 0x9c, 0x77, 0xca, - 0x92, 0xee, 0x98, 0x54, 0x39, 0x91, 0x67, 0x4a, 0xaa, 0x11, 0x54, 0x83, 0xd9, 0xc3, 0x1c, 0x87, - 0x5e, 0x82, 0xb1, 0x88, 0xb0, 0x59, 0xb1, 0x44, 0x75, 0x2d, 0x36, 0xcd, 0x06, 0x53, 0xa5, 0x0c, - 0x6b, 0x38, 0x6c, 0x50, 0xa6, 0xba, 0xf6, 0x50, 0x17, 0x5d, 0xfb, 0x09, 0x18, 0x66, 0x3f, 0xd4, - 0x0c, 0x50, 0xa3, 0xb1, 0xca, 0xc1, 0x58, 0xe2, 0xb3, 0x13, 0x66, 0xa4, 0xcf, 0x09, 0xf3, 0x24, - 0x4c, 0xd4, 0x1c, 0xb2, 0x13, 0x06, 0xcb, 0x81, 0xdb, 0x0a, 0xbd, 0x20, 0x41, 0x55, 0x18, 0x60, - 0xbb, 0x03, 0x5f, 0xdb, 0x03, 0x94, 0x03, 0x1e, 0xa0, 0x9a, 0xb3, 0xfd, 0x47, 0x25, 0x18, 0xaf, - 0x11, 0x9f, 0x24, 0x84, 0xdb, 0x1a, 0x31, 0x5a, 0x01, 0xb4, 0x19, 0x39, 0x4d, 0x52, 0x27, 0x91, - 0x17, 0xba, 0x0d, 0xd2, 0x0c, 0x03, 0x76, 0x52, 0x43, 0xb7, 0xbb, 0xb3, 0x07, 0xfb, 0xb3, 0xe8, - 0x72, 0x07, 0x16, 0xe7, 0x94, 0x40, 0x6f, 0xc1, 0x78, 0x2b, 0x22, 0x86, 0x0f, 0xcd, 0x2a, 0x52, - 0x17, 0xea, 0x3a, 0x21, 0xd7, 0x54, 0x0d, 0x10, 0x36, 0x59, 0xa1, 0xcf, 0xc0, 0x54, 0x18, 0xb5, - 0xb6, 0x9c, 0xa0, 0x46, 0x5a, 0x24, 0x70, 0xa9, 0x2a, 0x2e, 0x7c, 0x04, 0xa7, 0x0f, 0xf6, 0x67, - 0xa7, 0x6e, 0x66, 0x70, 0xb8, 0x83, 0x1a, 0xbd, 0x05, 0xd3, 0xad, 0x28, 0x6c, 0x39, 0x9b, 0x6c, - 0xa2, 0x08, 0x8d, 0x83, 0x4b, 0x9f, 0xa7, 0x0f, 0xf6, 0x67, 0xa7, 0xeb, 0x59, 0xe4, 0xe1, 0xfe, - 0xec, 0x29, 0xd6, 0x51, 0x14, 0x92, 0x22, 0x71, 0x27, 0x1b, 0x7b, 0x13, 0xce, 0xd4, 0xc2, 0x3b, - 0xc1, 0x1d, 0x27, 0x72, 0x17, 0xea, 0xab, 0x9a, 0x71, 0x7f, 0x43, 0x1a, 0x97, 0xfc, 0xdc, 0x2b, - 0x77, 0x9f, 0xd2, 0x4a, 0x72, 0xf5, 0x7f, 0xc5, 0xf3, 0x49, 0x81, 0x13, 0xe1, 0xaf, 0x97, 0x8c, - 0x9a, 0x52, 0x7a, 0xe5, 0xa9, 0xb7, 0x0a, 0x3d, 0xf5, 0xaf, 0xc3, 0xc8, 0x86, 0x47, 0x7c, 0x17, - 0x93, 0x0d, 0x31, 0x32, 0x8f, 0x17, 0x1f, 0x60, 0xac, 0x50, 0x4a, 0xe9, 0x34, 0xe2, 0xa6, 0xe9, - 0x8a, 0x28, 0x8c, 0x15, 0x1b, 0xb4, 0x0d, 0x53, 0xd2, 0xf6, 0x91, 0x58, 0xb1, 0x88, 0x9f, 0xe8, - 0x66, 0x50, 0x99, 0xcc, 0xd9, 0x00, 0xe2, 0x0c, 0x1b, 0xdc, 0xc1, 0x98, 0xda, 0xa2, 0x3b, 0x74, - 0xbb, 0x1a, 0x60, 0x53, 0x9a, 0xd9, 0xa2, 0xcc, 0xac, 0x66, 0x50, 0xfb, 0xab, 0x16, 0x3c, 0xd0, - 0xd1, 0x33, 0xc2, 0xbd, 0x70, 0xcc, 0xa3, 0x90, 0x35, 0xf7, 0x4b, 0xbd, 0xcd, 0x7d, 0xfb, 0xd7, - 0x2d, 0x38, 0xbd, 0xbc, 0xd3, 0x4a, 0xf6, 0x6a, 0x9e, 0x79, 0x9a, 0xf0, 0x22, 0x0c, 0xed, 0x10, - 0xd7, 0x6b, 0xef, 0x88, 0x91, 0x9b, 0x95, 0x22, 0xfd, 0x3a, 0x83, 0x1e, 0xee, 0xcf, 0x8e, 0x37, - 0x92, 0x30, 0x72, 0x36, 0x09, 0x07, 0x60, 0x41, 0x8e, 0x7e, 0x9a, 0xeb, 0xa6, 0xd7, 0xbc, 0x1d, - 0x4f, 0x1e, 0x48, 0x75, 0x75, 0x79, 0xcd, 0xc9, 0x0e, 0x9d, 0x7b, 0xbd, 0xed, 0x04, 0x89, 0x97, - 0xec, 0x99, 0xba, 0x2c, 0x63, 0x84, 0x53, 0x9e, 0xf6, 0x77, 0x2c, 0x98, 0x94, 0xf2, 0x64, 0xc1, - 0x75, 0x23, 0x12, 0xc7, 0x68, 0x06, 0x4a, 0x5e, 0x4b, 0xb4, 0x14, 0x44, 0xe9, 0xd2, 0x6a, 0x1d, - 0x97, 0xbc, 0x16, 0xaa, 0x43, 0x85, 0x9f, 0x6d, 0xa5, 0x13, 0xac, 0xaf, 0x13, 0x32, 0x66, 0xfb, - 0xad, 0xc9, 0x92, 0x38, 0x65, 0x22, 0x35, 0x63, 0xb6, 0x17, 0x95, 0xcd, 0x93, 0x96, 0x2b, 0x02, - 0x8e, 0x15, 0x05, 0xba, 0x08, 0x23, 0x41, 0xe8, 0xf2, 0xa3, 0x46, 0xbe, 0xae, 0xd9, 0xb4, 0xbd, - 0x21, 0x60, 0x58, 0x61, 0xed, 0x9f, 0xb3, 0x60, 0x4c, 0x7e, 0x59, 0x9f, 0x4a, 0x3a, 0x5d, 0x5e, - 0xa9, 0x82, 0x9e, 0x2e, 0x2f, 0xaa, 0x64, 0x33, 0x8c, 0xa1, 0x5b, 0x97, 0x8f, 0xa2, 0x5b, 0xdb, - 0x5f, 0x29, 0xc1, 0x84, 0x6c, 0x4e, 0xa3, 0xbd, 0x1e, 0x93, 0x04, 0xad, 0x41, 0xc5, 0xe1, 0x5d, - 0x4e, 0xe4, 0xac, 0x7d, 0x34, 0xdf, 0xea, 0x32, 0xc6, 0x27, 0x1d, 0xd1, 0x05, 0x59, 0x1a, 0xa7, - 0x8c, 0x90, 0x0f, 0xd3, 0x41, 0x98, 0xb0, 0xad, 0x4f, 0xe1, 0xbb, 0x9d, 0x0d, 0x64, 0xb9, 0x9f, - 0x13, 0xdc, 0xa7, 0x6f, 0x64, 0xb9, 0xe0, 0x4e, 0xc6, 0x68, 0x59, 0x7a, 0x7a, 0xca, 0xac, 0x86, - 0x0b, 0xdd, 0x6a, 0x28, 0x76, 0xf4, 0xd8, 0xbf, 0x67, 0x41, 0x45, 0x92, 0x9d, 0xc4, 0x31, 0xd0, - 0x75, 0x18, 0x8e, 0xd9, 0x20, 0xc8, 0xae, 0xb1, 0xbb, 0x35, 0x9c, 0x8f, 0x57, 0xba, 0xa3, 0xf3, - 0xff, 0x31, 0x96, 0x3c, 0x98, 0xab, 0x5a, 0x35, 0xff, 0x23, 0xe2, 0xaa, 0x56, 0xed, 0x29, 0xd8, - 0x65, 0xfe, 0x13, 0x6b, 0xb3, 0x66, 0xcf, 0x53, 0xc5, 0xb3, 0x15, 0x91, 0x0d, 0xef, 0x6e, 0x56, - 0xf1, 0xac, 0x33, 0x28, 0x16, 0x58, 0xf4, 0x36, 0x8c, 0x35, 0xa5, 0x87, 0x37, 0x15, 0x03, 0x8f, - 0x75, 0xf5, 0x97, 0xab, 0xa3, 0x15, 0x1e, 0x90, 0xb3, 0xa4, 0x95, 0xc7, 0x06, 0x37, 0x2a, 0x61, - 0xd2, 0x53, 0xe1, 0x72, 0x57, 0xe7, 0x4a, 0x44, 0x92, 0x94, 0x6f, 0xe1, 0x81, 0xb0, 0xfd, 0xcb, - 0x16, 0x0c, 0x71, 0x3f, 0x61, 0x7f, 0x8e, 0x55, 0xed, 0xa8, 0x28, 0xed, 0xbb, 0xdb, 0x14, 0x28, - 0x4e, 0x8e, 0xd0, 0x75, 0xa8, 0xb0, 0x1f, 0xcc, 0x5f, 0x52, 0x2e, 0x8e, 0x44, 0xe2, 0xb5, 0xea, - 0x0d, 0xbc, 0x2d, 0x8b, 0xe1, 0x94, 0x83, 0xfd, 0x0b, 0x65, 0x2a, 0xaa, 0x52, 0x52, 0x63, 0x17, - 0xb7, 0xee, 0xdf, 0x2e, 0x5e, 0xba, 0x5f, 0xbb, 0xf8, 0x26, 0x4c, 0x36, 0xb5, 0x73, 0xa9, 0x74, - 0x24, 0x2f, 0x76, 0x9d, 0x24, 0xda, 0x11, 0x16, 0xf7, 0x95, 0x2d, 0x99, 0x4c, 0x70, 0x96, 0x2b, - 0xfa, 0x2c, 0x8c, 0xf1, 0x71, 0x16, 0xb5, 0x0c, 0xb0, 0x5a, 0x3e, 0x51, 0x3c, 0x5f, 0xf4, 0x2a, - 0xd8, 0x4c, 0x6c, 0x68, 0xc5, 0xb1, 0xc1, 0xcc, 0xfe, 0xd2, 0x20, 0x0c, 0x2e, 0xef, 0x92, 0x20, - 0x39, 0x01, 0x81, 0xd4, 0x84, 0x09, 0x2f, 0xd8, 0x0d, 0xfd, 0x5d, 0xe2, 0x72, 0xfc, 0x51, 0x36, - 0xd7, 0xb3, 0x82, 0xf5, 0xc4, 0xaa, 0xc1, 0x02, 0x67, 0x58, 0xde, 0x0f, 0xcb, 0xfd, 0x32, 0x0c, - 0xf1, 0xb1, 0x17, 0x66, 0x7b, 0xae, 0x17, 0x9c, 0x75, 0xa2, 0x58, 0x05, 0xa9, 0x57, 0x81, 0xbb, - 0xdd, 0x45, 0x71, 0xf4, 0x2e, 0x4c, 0x6c, 0x78, 0x51, 0x9c, 0x50, 0x93, 0x3b, 0x4e, 0x9c, 0x9d, - 0xd6, 0x3d, 0x58, 0xea, 0xaa, 0x1f, 0x56, 0x0c, 0x4e, 0x38, 0xc3, 0x19, 0x6d, 0xc2, 0x38, 0x35, - 0x1e, 0xd3, 0xaa, 0x86, 0x8f, 0x5c, 0x95, 0x72, 0xc5, 0x5d, 0xd3, 0x19, 0x61, 0x93, 0x2f, 0x15, - 0x26, 0x4d, 0x66, 0x6c, 0x8e, 0x30, 0x8d, 0x42, 0x09, 0x13, 0x6e, 0x65, 0x72, 0x1c, 0x95, 0x49, - 0x2c, 0x9e, 0xa3, 0x62, 0xca, 0xa4, 0x34, 0x6a, 0xc3, 0xfe, 0x1a, 0xdd, 0x1d, 0x69, 0x1f, 0x9e, - 0xc0, 0xd6, 0xf2, 0xaa, 0xb9, 0xb5, 0x9c, 0x2b, 0x1c, 0xcf, 0x82, 0x6d, 0xe5, 0x73, 0x30, 0xaa, - 0x0d, 0x37, 0x9a, 0x87, 0x4a, 0x53, 0x06, 0x1f, 0x08, 0xa9, 0xab, 0xd4, 0x17, 0x15, 0x95, 0x80, - 0x53, 0x1a, 0xda, 0x1b, 0x54, 0xd9, 0xcb, 0x06, 0x23, 0x51, 0x55, 0x10, 0x33, 0x8c, 0xfd, 0x1c, - 0xc0, 0xf2, 0x5d, 0xd2, 0x5c, 0xe0, 0xc6, 0x97, 0x76, 0xc6, 0x65, 0x15, 0x9f, 0x71, 0xd9, 0x7f, - 0x6c, 0xc1, 0xc4, 0xca, 0x92, 0xa1, 0x94, 0xcf, 0x01, 0x70, 0x2d, 0xf4, 0x8d, 0x37, 0x6e, 0x48, - 0xef, 0x30, 0x77, 0xf0, 0x29, 0x28, 0xd6, 0x28, 0xd0, 0x39, 0x28, 0xfb, 0xed, 0x40, 0x28, 0x87, - 0xc3, 0x07, 0xfb, 0xb3, 0xe5, 0x6b, 0xed, 0x00, 0x53, 0x98, 0x16, 0xff, 0x53, 0xee, 0x3b, 0xfe, - 0xa7, 0x67, 0xfc, 0x2b, 0x9a, 0x85, 0xc1, 0x3b, 0x77, 0x3c, 0x37, 0xae, 0x0e, 0xa6, 0x9e, 0xeb, - 0x37, 0xde, 0x58, 0xad, 0xc5, 0x98, 0xc3, 0xed, 0xff, 0xbf, 0x0c, 0x53, 0x2b, 0x3e, 0xb9, 0x6b, - 0x7c, 0xd6, 0x63, 0x30, 0xe4, 0x46, 0xde, 0x2e, 0x89, 0xb2, 0xbb, 0x78, 0x8d, 0x41, 0xb1, 0xc0, - 0xf6, 0x1d, 0xb3, 0x74, 0xab, 0x73, 0x3f, 0x3e, 0xee, 0x28, 0xad, 0xde, 0x5d, 0xf1, 0x36, 0x0c, - 0xf3, 0xa3, 0x52, 0xde, 0x19, 0xa3, 0x97, 0x9e, 0xcd, 0x6b, 0x42, 0xb6, 0x2f, 0xe6, 0x84, 0xf3, - 0x83, 0xc7, 0x8d, 0x28, 0x21, 0x26, 0xa0, 0x58, 0xb2, 0x9c, 0xf9, 0x14, 0x8c, 0xe9, 0x94, 0x47, - 0x0a, 0x20, 0xf9, 0x0b, 0x16, 0x9c, 0x5a, 0xf1, 0xc3, 0xe6, 0x76, 0x26, 0x80, 0xec, 0x05, 0x18, - 0xa5, 0xeb, 0x29, 0x36, 0x22, 0x29, 0x8d, 0x28, 0x53, 0x81, 0xc2, 0x3a, 0x9d, 0x56, 0xec, 0xd6, - 0xad, 0xd5, 0x5a, 0x5e, 0x70, 0xaa, 0x40, 0x61, 0x9d, 0xce, 0xfe, 0x03, 0x0b, 0x1e, 0xbe, 0xbc, - 0xb4, 0x5c, 0x27, 0x51, 0xec, 0xc5, 0x09, 0x09, 0x92, 0x8e, 0xf8, 0x58, 0xaa, 0xdc, 0xb9, 0x5a, - 0x53, 0x52, 0xe5, 0xae, 0xc6, 0x5a, 0x21, 0xb0, 0x1f, 0x95, 0xd8, 0xef, 0x5f, 0xb5, 0xe0, 0xd4, - 0x65, 0x2f, 0xc1, 0xa4, 0x15, 0x66, 0xe3, 0x53, 0x23, 0xd2, 0x0a, 0x63, 0x2f, 0x09, 0xa3, 0xbd, - 0x6c, 0x7c, 0x2a, 0x56, 0x18, 0xac, 0x51, 0xf1, 0x9a, 0x77, 0xbd, 0x98, 0xb6, 0xb4, 0x64, 0x5a, - 0x98, 0x58, 0xc0, 0xb1, 0xa2, 0xa0, 0x1f, 0xe6, 0x7a, 0x11, 0xd3, 0x10, 0xf6, 0xc4, 0x72, 0x56, - 0x1f, 0x56, 0x93, 0x08, 0x9c, 0xd2, 0xd8, 0x5f, 0xb5, 0xe0, 0xcc, 0x65, 0xbf, 0x1d, 0x27, 0x24, - 0xda, 0x88, 0x8d, 0xc6, 0x3e, 0x07, 0x15, 0x22, 0xb5, 0x70, 0xd1, 0x56, 0xb5, 0x6f, 0x28, 0xf5, - 0x9c, 0x07, 0xc7, 0x2a, 0xba, 0x3e, 0xa2, 0x31, 0x8f, 0x16, 0x45, 0xf8, 0xf5, 0x12, 0x8c, 0x5f, - 0x59, 0x5b, 0xab, 0x5f, 0x26, 0x89, 0x10, 0x99, 0xbd, 0xbd, 0x48, 0x58, 0x33, 0x84, 0xbb, 0xe9, - 0x3a, 0xed, 0xc4, 0xf3, 0xe7, 0xf8, 0xbd, 0x84, 0xb9, 0xd5, 0x20, 0xb9, 0x19, 0x35, 0x92, 0xc8, - 0x0b, 0x36, 0x73, 0x4d, 0x67, 0x29, 0xd8, 0xcb, 0x45, 0x82, 0x1d, 0x3d, 0x07, 0x43, 0xec, 0x62, - 0x84, 0xd4, 0x3a, 0x1e, 0x54, 0xaa, 0x02, 0x83, 0x1e, 0xee, 0xcf, 0x56, 0x6e, 0xe1, 0x55, 0xfe, - 0x07, 0x0b, 0x52, 0x74, 0x0b, 0x46, 0xb7, 0x92, 0xa4, 0x75, 0x85, 0x38, 0x2e, 0x89, 0xa4, 0x74, - 0x38, 0x9f, 0x27, 0x1d, 0x68, 0x27, 0x70, 0xb2, 0x74, 0x41, 0xa5, 0xb0, 0x18, 0xeb, 0x7c, 0xec, - 0x06, 0x40, 0x8a, 0x3b, 0x26, 0xb3, 0xc1, 0xfe, 0xbe, 0x05, 0xc3, 0x57, 0x9c, 0xc0, 0xf5, 0x49, - 0x84, 0x5e, 0x81, 0x01, 0x72, 0x97, 0x34, 0xc5, 0x0e, 0x9e, 0xdb, 0xe0, 0x74, 0x97, 0xe3, 0x8e, - 0x30, 0xfa, 0x1f, 0xb3, 0x52, 0xe8, 0x0a, 0x0c, 0xd3, 0xd6, 0x5e, 0x56, 0x61, 0xca, 0x8f, 0x14, - 0x7d, 0xb1, 0x1a, 0x76, 0xbe, 0x31, 0x0a, 0x10, 0x96, 0xc5, 0x99, 0x43, 0xa7, 0xd9, 0x6a, 0x50, - 0x01, 0x96, 0x74, 0x33, 0xb7, 0xd6, 0x96, 0xea, 0x9c, 0x48, 0x70, 0xe3, 0x0e, 0x1d, 0x09, 0xc4, - 0x29, 0x13, 0x7b, 0x0d, 0x2a, 0x74, 0x50, 0x17, 0x7c, 0xcf, 0xe9, 0xee, 0x4b, 0x7a, 0x0a, 0x2a, - 0xd2, 0xaf, 0x13, 0x8b, 0x48, 0x67, 0xc6, 0x55, 0xba, 0x7d, 0x62, 0x9c, 0xe2, 0xed, 0x0d, 0x38, - 0xcd, 0x0e, 0x4a, 0x9d, 0x64, 0xcb, 0x58, 0x63, 0xbd, 0x27, 0xf3, 0xd3, 0x42, 0xbf, 0xe2, 0x23, - 0x53, 0xd5, 0x62, 0x65, 0xc7, 0x24, 0x47, 0x4d, 0xd7, 0xfa, 0x0f, 0x03, 0x30, 0xbd, 0xda, 0x58, - 0x6a, 0x98, 0xce, 0xc5, 0x97, 0x60, 0x8c, 0x6b, 0x02, 0x74, 0x42, 0x3b, 0xbe, 0xa8, 0x4d, 0x1d, - 0x1e, 0xac, 0x69, 0x38, 0x6c, 0x50, 0xa2, 0x87, 0xa1, 0xec, 0xbd, 0x17, 0x64, 0xc3, 0xe1, 0x56, - 0x5f, 0xbf, 0x81, 0x29, 0x9c, 0xa2, 0xa9, 0x52, 0xc1, 0x05, 0xa8, 0x42, 0x2b, 0xc5, 0xe2, 0x55, - 0x98, 0xf0, 0xe2, 0x66, 0xec, 0xad, 0x06, 0x54, 0xba, 0x38, 0x4d, 0xb9, 0x34, 0x52, 0x8d, 0x9f, - 0x36, 0x55, 0x61, 0x71, 0x86, 0x5a, 0x93, 0xe6, 0x83, 0x7d, 0x2b, 0x26, 0x3d, 0x63, 0xa6, 0xa9, - 0xce, 0xd5, 0x62, 0x5f, 0x17, 0xb3, 0xd0, 0x1c, 0xa1, 0x73, 0xf1, 0x0f, 0x8e, 0xb1, 0xc4, 0xa1, - 0xcb, 0x30, 0xdd, 0xdc, 0x72, 0x5a, 0x0b, 0xed, 0x64, 0xab, 0xe6, 0xc5, 0xcd, 0x70, 0x97, 0x44, - 0x7b, 0x4c, 0x13, 0x1e, 0x49, 0x9d, 0x4c, 0x0a, 0xb1, 0x74, 0x65, 0xa1, 0x4e, 0x29, 0x71, 0x67, - 0x19, 0x53, 0x05, 0x81, 0x63, 0x53, 0x41, 0x16, 0x60, 0x52, 0xd6, 0xd5, 0x20, 0x31, 0xdb, 0x1e, - 0x46, 0x59, 0xeb, 0xd4, 0x7d, 0x14, 0x01, 0x56, 0x6d, 0xcb, 0xd2, 0xa3, 0x17, 0x61, 0xdc, 0x0b, - 0xbc, 0xc4, 0x73, 0x92, 0x30, 0x62, 0x9b, 0xeb, 0x18, 0xdf, 0x30, 0xa8, 0x84, 0x5f, 0xd5, 0x11, - 0xd8, 0xa4, 0xb3, 0xdf, 0x85, 0x8a, 0x8a, 0x37, 0x93, 0x21, 0x93, 0x56, 0x41, 0xc8, 0x64, 0xef, - 0x1d, 0x41, 0x7a, 0xcd, 0xcb, 0xb9, 0x5e, 0xf3, 0xbf, 0x61, 0x41, 0x1a, 0x76, 0x83, 0xae, 0x40, - 0xa5, 0x15, 0xb2, 0x93, 0xb3, 0x48, 0x1e, 0x47, 0x3f, 0x98, 0x2b, 0x3c, 0xb8, 0xa0, 0xe2, 0xfd, - 0x57, 0x97, 0x25, 0x70, 0x5a, 0x18, 0x2d, 0xc2, 0x70, 0x2b, 0x22, 0x8d, 0x84, 0xdd, 0x53, 0xe8, - 0xc9, 0x87, 0xcf, 0x11, 0x4e, 0x8f, 0x65, 0x41, 0xfb, 0x37, 0x2d, 0x00, 0xee, 0x94, 0x76, 0x82, - 0x4d, 0x72, 0x02, 0x86, 0x76, 0x0d, 0x06, 0xe2, 0x16, 0x69, 0x76, 0x3b, 0xd3, 0x4c, 0xdb, 0xd3, - 0x68, 0x91, 0x66, 0xda, 0xe1, 0xf4, 0x1f, 0x66, 0xa5, 0xed, 0x9f, 0x05, 0x98, 0x48, 0xc9, 0xa8, - 0x01, 0x84, 0x9e, 0x31, 0xc2, 0xf2, 0xcf, 0x65, 0xc2, 0xf2, 0x2b, 0x8c, 0x5a, 0x8b, 0xc4, 0x7f, - 0x17, 0xca, 0x3b, 0xce, 0x5d, 0x61, 0x65, 0x3d, 0xd5, 0xbd, 0x19, 0x94, 0xff, 0xdc, 0x75, 0xe7, - 0x2e, 0xd7, 0x63, 0x9f, 0x92, 0x13, 0xe4, 0xba, 0x73, 0xf7, 0x90, 0x9f, 0x5c, 0x32, 0x21, 0x45, - 0x8d, 0xb9, 0x2f, 0xfc, 0x49, 0xfa, 0x9f, 0x4d, 0x3b, 0x5a, 0x09, 0xab, 0xcb, 0x0b, 0x84, 0x8b, - 0xb6, 0xaf, 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, 0xf4, 0x51, 0x97, 0x17, 0xa0, 0xf7, 0x61, 0x58, - 0x1c, 0x89, 0xb0, 0x78, 0xc2, 0xd1, 0x4b, 0xf3, 0x7d, 0xd4, 0x27, 0x4e, 0x54, 0x78, 0x9d, 0xf3, - 0x52, 0x4f, 0x17, 0xd0, 0x9e, 0xf5, 0xca, 0x0a, 0xd1, 0x5f, 0xb3, 0x60, 0x42, 0xfc, 0xc6, 0xe4, - 0xbd, 0x36, 0x89, 0x13, 0xa1, 0x0f, 0x7c, 0xb2, 0xff, 0x36, 0x88, 0x82, 0xbc, 0x29, 0x9f, 0x94, - 0x62, 0xd6, 0x44, 0xf6, 0x6c, 0x51, 0xa6, 0x15, 0xe8, 0x1f, 0x5a, 0x70, 0x7a, 0xc7, 0xb9, 0xcb, - 0x6b, 0xe4, 0x30, 0xec, 0x24, 0x5e, 0x28, 0xe2, 0x23, 0x5f, 0xe9, 0x6f, 0xf8, 0x3b, 0x8a, 0xf3, - 0x46, 0xca, 0x50, 0xaa, 0xd3, 0x79, 0x24, 0x3d, 0x9b, 0x9a, 0xdb, 0xae, 0x99, 0x0d, 0x18, 0x91, - 0xf3, 0x2d, 0xc7, 0x1a, 0xaa, 0xe9, 0xca, 0xce, 0x91, 0x4f, 0xa4, 0x34, 0xeb, 0x89, 0xd5, 0x23, - 0xe6, 0xda, 0x7d, 0xad, 0xe7, 0x5d, 0x18, 0xd3, 0xe7, 0xd8, 0x7d, 0xad, 0xeb, 0x3d, 0x38, 0x95, - 0x33, 0x97, 0xee, 0x6b, 0x95, 0x77, 0xe0, 0x5c, 0xe1, 0xfc, 0xb8, 0x9f, 0x15, 0xdb, 0x5f, 0xb7, - 0x74, 0x39, 0x78, 0x02, 0xee, 0xa9, 0x25, 0xd3, 0x3d, 0x75, 0xbe, 0xfb, 0xca, 0x29, 0xf0, 0x51, - 0xbd, 0xad, 0x37, 0x9a, 0x4a, 0x75, 0xf4, 0x1a, 0x0c, 0xf9, 0x14, 0x22, 0xcf, 0xe1, 0xec, 0xde, - 0x2b, 0x32, 0xd5, 0xa5, 0x18, 0x3c, 0xc6, 0x82, 0x83, 0xfd, 0x3b, 0x16, 0x0c, 0x9c, 0x40, 0x4f, - 0x60, 0xb3, 0x27, 0x9e, 0x29, 0x64, 0x2d, 0x2e, 0x9d, 0xcf, 0x61, 0xe7, 0xce, 0xf2, 0xdd, 0x84, - 0x04, 0x31, 0x53, 0xdf, 0x73, 0x3b, 0xe6, 0x7f, 0x97, 0x60, 0x94, 0x56, 0x25, 0x83, 0x46, 0x5e, - 0x86, 0x71, 0xdf, 0x59, 0x27, 0xbe, 0x74, 0x99, 0x67, 0x8d, 0xd8, 0x6b, 0x3a, 0x12, 0x9b, 0xb4, - 0xb4, 0xf0, 0x86, 0x7e, 0x7a, 0x20, 0xf4, 0x17, 0x55, 0xd8, 0x38, 0x5a, 0xc0, 0x26, 0x2d, 0xb5, - 0xa7, 0xee, 0x38, 0x49, 0x73, 0x4b, 0x18, 0xb8, 0xaa, 0xb9, 0x6f, 0x50, 0x20, 0xe6, 0x38, 0xaa, - 0xc0, 0xc9, 0xd9, 0x79, 0x9b, 0x44, 0x4c, 0x81, 0xe3, 0xea, 0xb1, 0x52, 0xe0, 0xb0, 0x89, 0xc6, - 0x59, 0x7a, 0xf4, 0x29, 0x98, 0xa0, 0x9d, 0x13, 0xb6, 0x13, 0x19, 0x12, 0x33, 0xc8, 0x42, 0x62, - 0x58, 0x04, 0xf4, 0x9a, 0x81, 0xc1, 0x19, 0x4a, 0x54, 0x87, 0xd3, 0x5e, 0xd0, 0xf4, 0xdb, 0x2e, - 0xb9, 0x15, 0x70, 0xed, 0xce, 0xf7, 0xde, 0x27, 0xae, 0x50, 0xa0, 0x55, 0xf4, 0xd2, 0x6a, 0x0e, - 0x0d, 0xce, 0x2d, 0x69, 0xff, 0x34, 0x9c, 0xba, 0x16, 0x3a, 0xee, 0xa2, 0xe3, 0x3b, 0x41, 0x93, - 0x44, 0xab, 0xc1, 0x66, 0xcf, 0x03, 0x79, 0xfd, 0xf8, 0xbc, 0xd4, 0xeb, 0xf8, 0xdc, 0xde, 0x02, - 0xa4, 0x57, 0x20, 0x42, 0xc1, 0x30, 0x0c, 0x7b, 0xbc, 0x2a, 0x31, 0xfd, 0x1f, 0xcf, 0xd7, 0xae, - 0x3b, 0x5a, 0xa6, 0x05, 0x39, 0x71, 0x00, 0x96, 0x8c, 0xec, 0x97, 0x20, 0xf7, 0x7e, 0x46, 0x6f, - 0x53, 0xda, 0x7e, 0x01, 0xa6, 0x59, 0xc9, 0xa3, 0x99, 0x79, 0xf6, 0x5f, 0xb6, 0x60, 0xf2, 0x46, - 0xe6, 0x0e, 0xec, 0x63, 0x30, 0x14, 0x93, 0x28, 0xc7, 0x17, 0xda, 0x60, 0x50, 0x2c, 0xb0, 0xc7, - 0xee, 0x73, 0xf9, 0x81, 0x05, 0x15, 0x16, 0x63, 0xdc, 0xa2, 0x46, 0xd8, 0xfd, 0x57, 0x6a, 0x97, - 0x0c, 0xa5, 0x36, 0xd7, 0x17, 0xa0, 0x9a, 0x53, 0xa4, 0xd3, 0xa2, 0xab, 0xea, 0x6e, 0x68, 0x17, - 0x37, 0x40, 0xca, 0x86, 0xdf, 0x24, 0x9c, 0x30, 0x2f, 0x90, 0xca, 0xdb, 0xa2, 0xec, 0x44, 0x5c, - 0xd1, 0x7e, 0x44, 0x4e, 0xc4, 0x55, 0x7b, 0x0a, 0xa4, 0x5f, 0x5d, 0x6b, 0x32, 0xdb, 0x15, 0x7e, - 0x82, 0x45, 0x8e, 0xb2, 0xb5, 0xa9, 0x2e, 0x51, 0xcf, 0x8a, 0x48, 0x50, 0x01, 0x3d, 0x64, 0x82, - 0x4c, 0xfc, 0xe3, 0x37, 0xe3, 0xd3, 0x22, 0xf6, 0x15, 0x98, 0xcc, 0x74, 0x18, 0x7a, 0x01, 0x06, - 0x5b, 0x5b, 0x4e, 0x4c, 0x32, 0x91, 0x40, 0x83, 0x75, 0x0a, 0x3c, 0xdc, 0x9f, 0x9d, 0x50, 0x05, - 0x18, 0x04, 0x73, 0x6a, 0xfb, 0xbf, 0x59, 0x30, 0x70, 0x23, 0x74, 0x4f, 0x62, 0x32, 0xbd, 0x6a, - 0x4c, 0xa6, 0x87, 0x8a, 0x32, 0x6c, 0x14, 0xce, 0xa3, 0x95, 0xcc, 0x3c, 0x3a, 0x5f, 0xc8, 0xa1, - 0xfb, 0x14, 0xda, 0x81, 0x51, 0x96, 0xb7, 0x43, 0x44, 0x25, 0x3d, 0x67, 0xd8, 0x57, 0xb3, 0x19, - 0xfb, 0x6a, 0x52, 0x23, 0xd5, 0xac, 0xac, 0x27, 0x60, 0x58, 0x44, 0xc6, 0x64, 0x63, 0x64, 0x05, - 0x2d, 0x96, 0x78, 0xfb, 0x97, 0xcb, 0x60, 0xe4, 0x09, 0x41, 0xbf, 0x67, 0xc1, 0x5c, 0xc4, 0x6f, - 0x05, 0xb9, 0xb5, 0x76, 0xe4, 0x05, 0x9b, 0x8d, 0xe6, 0x16, 0x71, 0xdb, 0xbe, 0x17, 0x6c, 0xae, - 0x6e, 0x06, 0xa1, 0x02, 0x2f, 0xdf, 0x25, 0xcd, 0x36, 0xf3, 0x83, 0xf7, 0x48, 0x4a, 0xa2, 0x4e, - 0x9e, 0x2f, 0x1d, 0xec, 0xcf, 0xce, 0xe1, 0x23, 0xf1, 0xc6, 0x47, 0x6c, 0x0b, 0xfa, 0x03, 0x0b, - 0xe6, 0x79, 0xfa, 0x8c, 0xfe, 0xdb, 0xdf, 0xc5, 0x1a, 0xad, 0x4b, 0x56, 0x29, 0x93, 0x35, 0x12, - 0xed, 0x2c, 0xbe, 0x28, 0x3a, 0x74, 0xbe, 0x7e, 0xb4, 0xba, 0xf0, 0x51, 0x1b, 0x67, 0xff, 0xf3, - 0x32, 0x8c, 0xd3, 0x5e, 0x4c, 0x6f, 0xc2, 0xbf, 0x60, 0x4c, 0x89, 0x47, 0x32, 0x53, 0x62, 0xda, - 0x20, 0x3e, 0x9e, 0x4b, 0xf0, 0x31, 0x4c, 0xfb, 0x4e, 0x9c, 0x5c, 0x21, 0x4e, 0x94, 0xac, 0x13, - 0x87, 0x1d, 0xf5, 0x8a, 0x69, 0x7e, 0x94, 0xd3, 0x63, 0xe5, 0xfe, 0xba, 0x96, 0x65, 0x86, 0x3b, - 0xf9, 0xa3, 0x5d, 0x40, 0xec, 0x58, 0x39, 0x72, 0x82, 0x98, 0x7f, 0x8b, 0x27, 0x7c, 0xe4, 0x47, - 0xab, 0x75, 0x46, 0xd4, 0x8a, 0xae, 0x75, 0x70, 0xc3, 0x39, 0x35, 0x68, 0xe1, 0x02, 0x83, 0xfd, - 0x86, 0x0b, 0x0c, 0xf5, 0x08, 0x44, 0xdf, 0x81, 0x29, 0x31, 0x2a, 0x1b, 0xde, 0xa6, 0xd8, 0xa4, - 0xdf, 0xcc, 0x84, 0x13, 0x59, 0xfd, 0x07, 0x3e, 0xf4, 0x88, 0x25, 0xb2, 0x7f, 0x06, 0x4e, 0xd1, - 0xea, 0xcc, 0xb0, 0xe9, 0x18, 0x11, 0x98, 0xdc, 0x6e, 0xaf, 0x13, 0x9f, 0x24, 0x12, 0x26, 0x2a, - 0xcd, 0x55, 0xfb, 0xcd, 0xd2, 0xa9, 0x6e, 0x79, 0xd5, 0x64, 0x81, 0xb3, 0x3c, 0xed, 0x5f, 0xb1, - 0x80, 0x05, 0x26, 0x9e, 0xc0, 0xf6, 0xf7, 0x69, 0x73, 0xfb, 0xab, 0x16, 0x49, 0xa0, 0x82, 0x9d, - 0xef, 0x79, 0x3e, 0x2c, 0xf5, 0x28, 0xbc, 0xbb, 0x27, 0x75, 0xff, 0xde, 0x1a, 0xd7, 0xff, 0xb2, - 0xf8, 0x82, 0x54, 0x97, 0x24, 0xd1, 0xe7, 0x61, 0xa4, 0xe9, 0xb4, 0x9c, 0x26, 0x4f, 0xd0, 0x54, - 0xe8, 0xfd, 0x31, 0x0a, 0xcd, 0x2d, 0x89, 0x12, 0xdc, 0x9b, 0xf1, 0x63, 0xf2, 0x2b, 0x25, 0xb8, - 0xa7, 0x07, 0x43, 0x55, 0x39, 0xb3, 0x0d, 0xe3, 0x06, 0xb3, 0xfb, 0x6a, 0xfa, 0x7e, 0x9e, 0x6f, - 0x17, 0xca, 0x62, 0xd9, 0x81, 0xe9, 0x40, 0xfb, 0x4f, 0x85, 0xa3, 0x54, 0xa7, 0x3f, 0xde, 0x6b, - 0x43, 0x60, 0x92, 0x54, 0x0b, 0xbc, 0xcc, 0xb0, 0xc1, 0x9d, 0x9c, 0xed, 0xbf, 0x65, 0xc1, 0x03, - 0x3a, 0xa1, 0x76, 0x7f, 0xb5, 0x97, 0x3f, 0xb9, 0x06, 0x23, 0x61, 0x8b, 0x44, 0x4e, 0x6a, 0x93, - 0x5d, 0x94, 0x9d, 0x7e, 0x53, 0xc0, 0x0f, 0xf7, 0x67, 0x4f, 0xeb, 0xdc, 0x25, 0x1c, 0xab, 0x92, - 0xc8, 0x86, 0x21, 0xd6, 0x19, 0xb1, 0xb8, 0x5b, 0xcc, 0x92, 0x18, 0xb1, 0xe3, 0xae, 0x18, 0x0b, - 0x8c, 0xfd, 0xb3, 0x16, 0x9f, 0x58, 0x7a, 0xd3, 0xd1, 0x7b, 0x30, 0xb5, 0x43, 0xcd, 0xb7, 0xe5, - 0xbb, 0xad, 0x88, 0xbb, 0xd1, 0x65, 0x3f, 0x3d, 0xd5, 0xab, 0x9f, 0xb4, 0x8f, 0x5c, 0xac, 0x8a, - 0x36, 0x4f, 0x5d, 0xcf, 0x30, 0xc3, 0x1d, 0xec, 0xed, 0x3f, 0x2b, 0xf1, 0x95, 0xc8, 0xb4, 0xba, - 0x27, 0x60, 0xb8, 0x15, 0xba, 0x4b, 0xab, 0x35, 0x2c, 0x7a, 0x48, 0x89, 0xab, 0x3a, 0x07, 0x63, - 0x89, 0x47, 0x97, 0x00, 0xc8, 0xdd, 0x84, 0x44, 0x81, 0xe3, 0xab, 0xc3, 0x78, 0xa5, 0x3c, 0x2d, - 0x2b, 0x0c, 0xd6, 0xa8, 0x68, 0x99, 0x56, 0x14, 0xee, 0x7a, 0x2e, 0xbb, 0xdc, 0x51, 0x36, 0xcb, - 0xd4, 0x15, 0x06, 0x6b, 0x54, 0xd4, 0x54, 0x6e, 0x07, 0x31, 0xdf, 0x00, 0x9d, 0x75, 0x91, 0x40, - 0x67, 0x24, 0x35, 0x95, 0x6f, 0xe9, 0x48, 0x6c, 0xd2, 0xa2, 0x05, 0x18, 0x4a, 0x1c, 0x76, 0xc4, - 0x3c, 0x58, 0x1c, 0xb2, 0xb3, 0x46, 0x29, 0xf4, 0x3c, 0x45, 0xb4, 0x00, 0x16, 0x05, 0xd1, 0x5b, - 0x52, 0x04, 0x73, 0x91, 0x2c, 0x42, 0xaf, 0x0a, 0xa7, 0xad, 0x2e, 0xbe, 0x75, 0x19, 0x2c, 0x42, - 0xba, 0x0c, 0x5e, 0xf6, 0x17, 0x2b, 0x00, 0xa9, 0xb6, 0x87, 0xde, 0xef, 0x10, 0x11, 0x4f, 0x77, - 0xd7, 0x0f, 0x8f, 0x4f, 0x3e, 0xa0, 0x2f, 0x59, 0x30, 0xea, 0xf8, 0x7e, 0xd8, 0x74, 0x12, 0xd6, - 0xcb, 0xa5, 0xee, 0x22, 0x4a, 0xd4, 0xbf, 0x90, 0x96, 0xe0, 0x4d, 0x78, 0x4e, 0x9e, 0x1e, 0x6b, - 0x98, 0x9e, 0xad, 0xd0, 0x2b, 0x46, 0x3f, 0x26, 0x8d, 0x00, 0x3e, 0x3d, 0x66, 0xb2, 0x46, 0x40, - 0x85, 0x49, 0x63, 0x4d, 0xff, 0x47, 0xb7, 0x8c, 0xbc, 0x35, 0x03, 0xc5, 0x57, 0x74, 0x0d, 0xa5, - 0xa7, 0x57, 0xca, 0x1a, 0x54, 0xd7, 0x43, 0xd0, 0x07, 0x8b, 0xef, 0xb1, 0x6b, 0xda, 0x75, 0x8f, - 0xf0, 0xf3, 0x77, 0x61, 0xd2, 0x35, 0xb7, 0x5b, 0x31, 0x9b, 0x1e, 0x2f, 0xe2, 0x9b, 0xd9, 0x9d, - 0xd3, 0x0d, 0x36, 0x83, 0xc0, 0x59, 0xc6, 0xa8, 0xce, 0x2f, 0x03, 0xac, 0x06, 0x1b, 0xa1, 0x08, - 0xe1, 0xb3, 0x0b, 0xc7, 0x72, 0x2f, 0x4e, 0xc8, 0x0e, 0xa5, 0x4c, 0xf7, 0xd1, 0x1b, 0xa2, 0x2c, - 0x56, 0x5c, 0xd0, 0x6b, 0x30, 0xc4, 0x6e, 0x69, 0xc5, 0xd5, 0x91, 0x62, 0x3f, 0xa0, 0x79, 0xc1, - 0x38, 0x5d, 0x54, 0xec, 0x6f, 0x8c, 0x05, 0x07, 0x74, 0x45, 0xa6, 0x09, 0x88, 0x57, 0x83, 0x5b, - 0x31, 0x61, 0x69, 0x02, 0x2a, 0x8b, 0x1f, 0x4f, 0x33, 0x00, 0x70, 0x78, 0x6e, 0x6e, 0x3e, 0xa3, - 0x24, 0xd5, 0x57, 0xc4, 0x7f, 0x99, 0xf2, 0xaf, 0x0a, 0xc5, 0xcd, 0x33, 0xd3, 0x02, 0xa6, 0xdd, - 0x79, 0xdb, 0x64, 0x81, 0xb3, 0x3c, 0x4f, 0x74, 0xfb, 0x9c, 0x09, 0x60, 0x2a, 0xbb, 0xb0, 0xee, - 0xeb, 0x76, 0xfd, 0xfd, 0x01, 0x98, 0x30, 0x27, 0x02, 0x9a, 0x87, 0x8a, 0x60, 0xa2, 0x92, 0x7c, - 0xa9, 0xb9, 0x7d, 0x5d, 0x22, 0x70, 0x4a, 0xc3, 0x92, 0x9c, 0xb1, 0xe2, 0x5a, 0x6c, 0x56, 0x9a, - 0xe4, 0x4c, 0x61, 0xb0, 0x46, 0x45, 0x95, 0xe8, 0xf5, 0x30, 0x4c, 0xd4, 0x56, 0xa0, 0x66, 0xcb, - 0x22, 0x83, 0x62, 0x81, 0xa5, 0x5b, 0xc0, 0x36, 0x89, 0x02, 0xe2, 0x9b, 0x9e, 0x4c, 0xb5, 0x05, - 0x5c, 0xd5, 0x91, 0xd8, 0xa4, 0xa5, 0x5b, 0x5a, 0x18, 0xb3, 0xe9, 0x27, 0x54, 0xf5, 0x34, 0xd6, - 0xad, 0xc1, 0x6f, 0x29, 0x4a, 0x3c, 0x7a, 0x13, 0x1e, 0x50, 0x97, 0x0a, 0x31, 0xf7, 0x0c, 0xcb, - 0x1a, 0x87, 0x0c, 0xcb, 0xfa, 0x81, 0xa5, 0x7c, 0x32, 0x5c, 0x54, 0x1e, 0xbd, 0x0a, 0x13, 0x42, - 0x05, 0x96, 0x1c, 0x87, 0xcd, 0x60, 0x85, 0xab, 0x06, 0x16, 0x67, 0xa8, 0x51, 0x0d, 0xa6, 0x28, - 0x84, 0x69, 0xa1, 0x92, 0x03, 0xbf, 0x1c, 0xa9, 0xf6, 0xfa, 0xab, 0x19, 0x3c, 0xee, 0x28, 0x81, - 0x16, 0x60, 0x92, 0xeb, 0x28, 0xd4, 0xa6, 0x64, 0xe3, 0x20, 0x22, 0x6b, 0xd5, 0x42, 0xb8, 0x69, - 0xa2, 0x71, 0x96, 0x1e, 0xbd, 0x04, 0x63, 0x4e, 0xd4, 0xdc, 0xf2, 0x12, 0xd2, 0x4c, 0xda, 0x11, - 0x4f, 0xc2, 0xa1, 0x45, 0x7b, 0x2c, 0x68, 0x38, 0x6c, 0x50, 0xda, 0xef, 0xc3, 0xa9, 0x9c, 0xa0, - 0x7c, 0x3a, 0x71, 0x9c, 0x96, 0x27, 0xbf, 0x29, 0x13, 0xb5, 0xb6, 0x50, 0x5f, 0x95, 0x5f, 0xa3, - 0x51, 0xd1, 0xd9, 0xc9, 0x5c, 0xe2, 0x5a, 0x5e, 0x4e, 0x35, 0x3b, 0x57, 0x24, 0x02, 0xa7, 0x34, - 0xf6, 0xb7, 0x01, 0x34, 0x87, 0x4e, 0x1f, 0x31, 0x4b, 0x2f, 0xc1, 0x98, 0x4c, 0x26, 0xab, 0xa5, - 0x6e, 0x54, 0x9f, 0x79, 0x59, 0xc3, 0x61, 0x83, 0x92, 0xb6, 0x2d, 0x90, 0x6e, 0xaa, 0x6c, 0x8c, - 0x9c, 0xf2, 0x5f, 0xe1, 0x94, 0x06, 0x3d, 0x0d, 0x23, 0x31, 0xf1, 0x37, 0xae, 0x79, 0xc1, 0xb6, - 0x98, 0xd8, 0x4a, 0x0a, 0x37, 0x04, 0x1c, 0x2b, 0x0a, 0xb4, 0x08, 0xe5, 0xb6, 0xe7, 0x8a, 0xa9, - 0x2c, 0x37, 0xfc, 0xf2, 0xad, 0xd5, 0xda, 0xe1, 0xfe, 0xec, 0x23, 0x45, 0x39, 0x72, 0xa9, 0x69, - 0x1f, 0xcf, 0xd1, 0xe5, 0x47, 0x0b, 0xe7, 0x9d, 0x0d, 0x0c, 0x1d, 0xf1, 0x6c, 0xe0, 0x12, 0x80, - 0xf8, 0x6a, 0x39, 0x97, 0xcb, 0xe9, 0xa8, 0x5d, 0x56, 0x18, 0xac, 0x51, 0xa1, 0x18, 0xa6, 0x9b, - 0x11, 0x71, 0xa4, 0x0d, 0xcd, 0xc3, 0xcb, 0x47, 0xee, 0xdd, 0x41, 0xb0, 0x94, 0x65, 0x86, 0x3b, - 0xf9, 0xa3, 0x10, 0xa6, 0x5d, 0x71, 0x87, 0x35, 0xad, 0xb4, 0x72, 0xf4, 0x98, 0x76, 0x16, 0x90, - 0x93, 0x65, 0x84, 0x3b, 0x79, 0xa3, 0x77, 0x60, 0x46, 0x02, 0x3b, 0xaf, 0x0d, 0xb3, 0xe5, 0x52, - 0x5e, 0x3c, 0x7f, 0xb0, 0x3f, 0x3b, 0x53, 0x2b, 0xa4, 0xc2, 0x5d, 0x38, 0x20, 0x0c, 0x43, 0xec, - 0x2c, 0x29, 0xae, 0x8e, 0xb2, 0x7d, 0xee, 0xc9, 0x62, 0x67, 0x00, 0x9d, 0xeb, 0x73, 0xec, 0x1c, - 0x4a, 0x84, 0xf9, 0xa6, 0xc7, 0x72, 0x0c, 0x88, 0x05, 0x27, 0xb4, 0x01, 0xa3, 0x4e, 0x10, 0x84, - 0x89, 0xc3, 0x55, 0xa8, 0xb1, 0x62, 0xdd, 0x4f, 0x63, 0xbc, 0x90, 0x96, 0xe0, 0xdc, 0x55, 0xe4, - 0xa0, 0x86, 0xc1, 0x3a, 0x63, 0x74, 0x07, 0x26, 0xc3, 0x3b, 0x54, 0x38, 0x4a, 0x2f, 0x45, 0x5c, - 0x1d, 0x67, 0x75, 0x3d, 0xdf, 0xa7, 0x9f, 0xd6, 0x28, 0xac, 0x49, 0x2d, 0x93, 0x29, 0xce, 0xd6, - 0x82, 0xe6, 0x0c, 0x6f, 0xf5, 0x44, 0x1a, 0xcf, 0x9e, 0x7a, 0xab, 0x75, 0xe7, 0x34, 0xbb, 0x86, - 0xce, 0xc3, 0x56, 0xd9, 0xea, 0x9f, 0xcc, 0x5c, 0x43, 0x4f, 0x51, 0x58, 0xa7, 0x43, 0x5b, 0x30, - 0x96, 0x1e, 0x59, 0x45, 0x31, 0xcb, 0x52, 0x33, 0x7a, 0xe9, 0x52, 0x7f, 0x1f, 0xb7, 0xaa, 0x95, - 0xe4, 0x96, 0x83, 0x0e, 0xc1, 0x06, 0xe7, 0x99, 0x1f, 0x87, 0x51, 0x6d, 0x60, 0x8f, 0x12, 0x95, - 0x3d, 0xf3, 0x2a, 0x4c, 0x65, 0x87, 0xee, 0x48, 0x51, 0xdd, 0xff, 0xa3, 0x04, 0x93, 0x39, 0x27, - 0x57, 0x2c, 0xcf, 0x6e, 0x46, 0xa0, 0xa6, 0x69, 0x75, 0x4d, 0xb1, 0x58, 0xea, 0x43, 0x2c, 0x4a, - 0x19, 0x5d, 0x2e, 0x94, 0xd1, 0x42, 0x14, 0x0e, 0x7c, 0x10, 0x51, 0x68, 0xee, 0x3e, 0x83, 0x7d, - 0xed, 0x3e, 0xc7, 0x20, 0x3e, 0x8d, 0x0d, 0x6c, 0xb8, 0x8f, 0x0d, 0xec, 0x17, 0x4a, 0x30, 0x95, - 0x46, 0xb0, 0x8b, 0xac, 0xd6, 0xf7, 0xff, 0xbc, 0xe3, 0x35, 0xe3, 0xbc, 0x23, 0x3f, 0x6b, 0x75, - 0xa6, 0x55, 0x85, 0x67, 0x1f, 0x38, 0x73, 0xf6, 0xf1, 0x64, 0x5f, 0xdc, 0xba, 0x9f, 0x83, 0xfc, - 0xed, 0x12, 0x9c, 0xc9, 0x16, 0x59, 0xf2, 0x1d, 0x6f, 0xe7, 0x04, 0xfa, 0xe6, 0xa6, 0xd1, 0x37, - 0xcf, 0xf4, 0xf3, 0x35, 0xac, 0x69, 0x85, 0x1d, 0xf4, 0x46, 0xa6, 0x83, 0xe6, 0xfb, 0x67, 0xd9, - 0xbd, 0x97, 0xbe, 0x6d, 0xc1, 0xb9, 0xdc, 0x72, 0x27, 0xe0, 0x7d, 0xbd, 0x61, 0x7a, 0x5f, 0x9f, - 0xe8, 0xfb, 0x9b, 0x0a, 0xdc, 0xb1, 0x5f, 0x2d, 0x17, 0x7c, 0x0b, 0xf3, 0x5f, 0xdd, 0x84, 0x51, - 0xa7, 0xd9, 0x24, 0x71, 0x7c, 0x3d, 0x74, 0x55, 0x5a, 0xab, 0x67, 0xd8, 0x9e, 0x94, 0x82, 0x0f, - 0xf7, 0x67, 0x67, 0xb2, 0x2c, 0x52, 0x34, 0xd6, 0x39, 0x98, 0xa9, 0xf2, 0x4a, 0xc7, 0x9a, 0x2a, - 0xef, 0x12, 0xc0, 0xae, 0xb2, 0x6a, 0xb3, 0xce, 0x30, 0xcd, 0xde, 0xd5, 0xa8, 0xd0, 0x4f, 0x31, - 0x5d, 0x91, 0x87, 0x8c, 0xf0, 0x43, 0x8e, 0xe7, 0xfa, 0x1c, 0x2b, 0x3d, 0xfc, 0x84, 0x5f, 0x84, - 0x55, 0x8e, 0x43, 0xc5, 0x12, 0x7d, 0x06, 0xa6, 0x62, 0x9e, 0x6b, 0x61, 0xc9, 0x77, 0x62, 0x76, - 0xfd, 0x42, 0xc8, 0x44, 0x76, 0xbb, 0xb5, 0x91, 0xc1, 0xe1, 0x0e, 0x6a, 0xfb, 0xef, 0x97, 0xe1, - 0xc1, 0x2e, 0x53, 0x14, 0x2d, 0x98, 0x47, 0xbc, 0x4f, 0x65, 0xbd, 0x3b, 0x33, 0xb9, 0x85, 0x0d, - 0x77, 0x4f, 0x66, 0x8c, 0x4b, 0x1f, 0x78, 0x8c, 0xbf, 0x6c, 0x69, 0x7e, 0x37, 0x1e, 0x08, 0xfa, - 0xe9, 0x23, 0x2e, 0xbd, 0x1f, 0x56, 0x47, 0xfd, 0x17, 0x2c, 0x78, 0x24, 0xf7, 0xb3, 0x8c, 0x50, - 0x91, 0x79, 0xa8, 0x34, 0x29, 0x50, 0xbb, 0x22, 0x95, 0x5e, 0x54, 0x94, 0x08, 0x9c, 0xd2, 0x18, - 0x11, 0x21, 0xa5, 0x9e, 0x11, 0x21, 0xff, 0xd4, 0x82, 0xd3, 0xd9, 0x46, 0x9c, 0x80, 0x64, 0x5a, - 0x35, 0x25, 0xd3, 0xc7, 0xfb, 0x19, 0xf2, 0x02, 0xa1, 0xf4, 0x6f, 0x27, 0xe0, 0x6c, 0xc7, 0xce, - 0xc5, 0xfb, 0x6e, 0x17, 0xa6, 0x37, 0x99, 0x0a, 0xaf, 0x5d, 0x3e, 0x13, 0x1f, 0x93, 0x7b, 0x4f, - 0xaf, 0xeb, 0x4d, 0x35, 0x6e, 0x86, 0x74, 0x90, 0xe0, 0xce, 0x2a, 0xd0, 0x17, 0x2c, 0x38, 0xed, - 0xdc, 0x89, 0x3b, 0x9e, 0x3e, 0x11, 0x73, 0xe6, 0xf9, 0x5c, 0xef, 0x58, 0x8f, 0xa7, 0x52, 0xd8, - 0x05, 0x91, 0xd3, 0x79, 0x54, 0x38, 0xb7, 0x2e, 0x84, 0x45, 0x66, 0x3f, 0xaa, 0xe5, 0x74, 0xb9, - 0x1e, 0x99, 0x77, 0x79, 0x85, 0xcb, 0x28, 0x89, 0xc1, 0x8a, 0x0f, 0xba, 0x0d, 0x95, 0x4d, 0x79, - 0xa3, 0x4c, 0xc8, 0xc0, 0xdc, 0x4d, 0x25, 0xf7, 0xda, 0x19, 0x8f, 0xd8, 0x57, 0x28, 0x9c, 0xb2, - 0x42, 0xaf, 0x42, 0x39, 0xd8, 0x88, 0xc5, 0x55, 0xed, 0xfc, 0xf8, 0x1e, 0x33, 0x82, 0x8a, 0xdf, - 0x73, 0xbd, 0xb1, 0xd2, 0xc0, 0xb4, 0x20, 0x2d, 0x1f, 0xad, 0xbb, 0xc2, 0xa1, 0x9b, 0x5b, 0x1e, - 0x2f, 0xd6, 0x3a, 0xcb, 0xe3, 0xc5, 0x1a, 0xa6, 0x05, 0xd1, 0x0a, 0x0c, 0xb2, 0x0b, 0x2a, 0xc2, - 0x5b, 0x9b, 0x7b, 0x4f, 0xbf, 0xe3, 0xf2, 0x0d, 0xbf, 0xf8, 0xca, 0xc0, 0x98, 0x17, 0x47, 0xaf, - 0xc1, 0x50, 0x93, 0xe5, 0xec, 0x17, 0xa6, 0x75, 0x7e, 0xee, 0x89, 0x8e, 0xac, 0xfe, 0xfc, 0x8c, - 0x8a, 0xc3, 0xb1, 0xe0, 0xc0, 0x78, 0x91, 0xd6, 0xd6, 0x46, 0x2c, 0x2c, 0xe6, 0x7c, 0x5e, 0x1d, - 0xef, 0x2b, 0x08, 0x5e, 0x0c, 0x8e, 0x05, 0x07, 0xf4, 0x29, 0x28, 0x6d, 0x34, 0xc5, 0x0d, 0x95, - 0x5c, 0xdf, 0xac, 0x79, 0x05, 0x79, 0x71, 0xe8, 0x60, 0x7f, 0xb6, 0xb4, 0xb2, 0x84, 0x4b, 0x1b, - 0x4d, 0x74, 0x03, 0x86, 0x37, 0xf8, 0x3d, 0x52, 0x91, 0x9f, 0xf5, 0xf1, 0xfc, 0x2b, 0xae, 0x1d, - 0x57, 0x4d, 0xf9, 0xcd, 0x0a, 0x81, 0xc0, 0x92, 0x09, 0x5a, 0x03, 0xd8, 0x50, 0xf7, 0x61, 0x45, - 0x82, 0xd6, 0x8f, 0xf7, 0x73, 0x6b, 0x56, 0x18, 0x8d, 0x0a, 0x8a, 0x35, 0x3e, 0x74, 0x66, 0x3a, - 0xf2, 0xe1, 0x10, 0x96, 0x9c, 0xb5, 0x60, 0x66, 0xe6, 0xbe, 0x2e, 0xc2, 0x67, 0xa6, 0x42, 0xe1, - 0x94, 0x15, 0xda, 0x86, 0xf1, 0xdd, 0xb8, 0xb5, 0x45, 0xe4, 0x62, 0x64, 0x79, 0x5a, 0x4d, 0xb3, - 0x32, 0x4d, 0xaa, 0x2b, 0x08, 0xbd, 0x28, 0x69, 0x3b, 0x7e, 0x87, 0xfc, 0x60, 0x97, 0x6f, 0x6e, - 0xeb, 0xcc, 0xb0, 0xc9, 0x9b, 0x76, 0xf5, 0x7b, 0xed, 0x70, 0x7d, 0x2f, 0x21, 0x22, 0x7b, 0x6b, - 0x6e, 0x57, 0xbf, 0xce, 0x49, 0x3a, 0xbb, 0x5a, 0x20, 0xb0, 0x64, 0xa2, 0x3a, 0x85, 0xc9, 0xbd, - 0xa9, 0x1e, 0x9d, 0xd2, 0xd1, 0xde, 0xb4, 0x53, 0x98, 0x9c, 0x4b, 0x59, 0x31, 0xf9, 0xd6, 0xda, - 0x0a, 0x93, 0x30, 0xc8, 0xc8, 0xd6, 0xe9, 0x62, 0xf9, 0x56, 0xcf, 0xa1, 0xef, 0x94, 0x6f, 0x79, - 0x54, 0x38, 0xb7, 0x2e, 0xe4, 0xc2, 0x44, 0x2b, 0x8c, 0x92, 0x3b, 0x61, 0x24, 0xe7, 0x12, 0xea, - 0x62, 0x28, 0x19, 0x94, 0xa2, 0x46, 0x16, 0x4b, 0x6b, 0x62, 0x70, 0x86, 0x27, 0x1d, 0x92, 0xb8, - 0xe9, 0xf8, 0x64, 0xf5, 0x66, 0xf5, 0x54, 0xf1, 0x90, 0x34, 0x38, 0x49, 0xe7, 0x90, 0x08, 0x04, - 0x96, 0x4c, 0xa8, 0xa4, 0x61, 0x89, 0xc0, 0x59, 0xba, 0xd9, 0x02, 0x49, 0xd3, 0x11, 0x65, 0xca, - 0x25, 0x0d, 0x03, 0x63, 0x5e, 0x1c, 0x7d, 0x0e, 0x2a, 0x42, 0xff, 0x0b, 0xe3, 0xea, 0x99, 0x0e, - 0x6d, 0x34, 0x6d, 0x19, 0x27, 0xba, 0xd9, 0xc8, 0xdf, 0x22, 0xc5, 0x2d, 0x34, 0x49, 0x84, 0x53, - 0xa6, 0xf6, 0x17, 0x87, 0x3a, 0x35, 0x03, 0xa6, 0xe7, 0x7f, 0xd1, 0xea, 0x38, 0x2a, 0xfd, 0x64, - 0xbf, 0xc6, 0xe9, 0x31, 0x1e, 0x9a, 0x7e, 0xc1, 0x82, 0xb3, 0xad, 0xdc, 0x8f, 0x12, 0xdb, 0x6c, - 0x7f, 0x36, 0x2e, 0xef, 0x06, 0x95, 0xc8, 0x39, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0xea, 0xc3, 0xe5, - 0x0f, 0xac, 0x0f, 0x5f, 0x87, 0x11, 0xa6, 0xca, 0xa5, 0x49, 0x63, 0xfa, 0x0a, 0x38, 0x62, 0x1b, - 0xf6, 0x92, 0x28, 0x88, 0x15, 0x0b, 0xf4, 0x73, 0x16, 0x3c, 0x9c, 0x6d, 0x3a, 0x26, 0x0c, 0x2d, - 0x92, 0x10, 0x72, 0x13, 0x63, 0x45, 0x7c, 0xff, 0xc3, 0xf5, 0x6e, 0xc4, 0x87, 0xbd, 0x08, 0x70, - 0xf7, 0xca, 0x50, 0x2d, 0xc7, 0xc6, 0x19, 0x32, 0x4f, 0x52, 0x7a, 0xdb, 0x39, 0x27, 0xab, 0xa5, - 0x7f, 0xcd, 0xca, 0x51, 0x2f, 0xb9, 0x3d, 0xf5, 0x8a, 0x69, 0x4f, 0x3d, 0x96, 0xb5, 0xa7, 0x3a, - 0xbc, 0x23, 0x86, 0x29, 0xd5, 0x7f, 0x9a, 0xd4, 0x7e, 0xf3, 0xe3, 0xd8, 0x3e, 0x5c, 0xe8, 0x25, - 0x66, 0x59, 0xf8, 0x94, 0xab, 0xce, 0x15, 0xd3, 0xf0, 0x29, 0x77, 0xb5, 0x86, 0x19, 0xa6, 0xdf, - 0x4c, 0x0b, 0xf6, 0x7f, 0xb1, 0xa0, 0x5c, 0x0f, 0xdd, 0x13, 0xf0, 0xf6, 0x7c, 0xda, 0xf0, 0xf6, - 0x3c, 0x58, 0xf0, 0x58, 0x5d, 0xa1, 0x6f, 0x67, 0x39, 0xe3, 0xdb, 0x79, 0xb8, 0x88, 0x41, 0x77, - 0x4f, 0xce, 0xdf, 0x29, 0x83, 0xfe, 0xb4, 0x1e, 0xfa, 0x17, 0xf7, 0x12, 0x87, 0x5b, 0xee, 0xf6, - 0xda, 0x9e, 0xe0, 0xcc, 0xa2, 0xae, 0xe4, 0x15, 0xbf, 0x1f, 0xb2, 0x70, 0xdc, 0x37, 0x88, 0xb7, - 0xb9, 0x95, 0x10, 0x37, 0xfb, 0x39, 0x27, 0x17, 0x8e, 0xfb, 0x1f, 0x2d, 0x98, 0xcc, 0xd4, 0x8e, - 0xfc, 0xbc, 0xfb, 0x42, 0xf7, 0xe8, 0xbf, 0x99, 0xee, 0x79, 0xc1, 0x68, 0x0e, 0x40, 0xb9, 0xd2, - 0xa5, 0x8f, 0x84, 0xe9, 0xae, 0xca, 0xd7, 0x1e, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xa3, 0x49, 0xd8, - 0x0a, 0xfd, 0x70, 0x73, 0xef, 0x2a, 0x91, 0xb9, 0x3d, 0xd4, 0x81, 0xc7, 0x5a, 0x8a, 0xc2, 0x3a, - 0x9d, 0xfd, 0xab, 0x65, 0xc8, 0x3e, 0xc7, 0xf8, 0xff, 0xe6, 0xe4, 0x47, 0x73, 0x4e, 0x7e, 0xc7, - 0x82, 0x29, 0x5a, 0x3b, 0x8b, 0x68, 0x91, 0x81, 0xac, 0xea, 0x3d, 0x05, 0xab, 0xcb, 0x7b, 0x0a, - 0x8f, 0x51, 0xd9, 0xe5, 0x86, 0xed, 0x44, 0xf8, 0x72, 0x34, 0xe1, 0x44, 0xa1, 0x58, 0x60, 0x05, - 0x1d, 0x89, 0x22, 0x71, 0x0b, 0x48, 0xa7, 0x23, 0x51, 0x84, 0x05, 0x56, 0x3e, 0xb7, 0x30, 0x50, - 0xf0, 0xdc, 0x02, 0x4b, 0x8b, 0x25, 0xa2, 0x28, 0x84, 0x6a, 0xa0, 0xa5, 0xc5, 0x92, 0xe1, 0x15, - 0x29, 0x8d, 0xfd, 0xf5, 0x32, 0x8c, 0xd5, 0x43, 0x37, 0x8d, 0x7d, 0x7f, 0xde, 0x88, 0x7d, 0xbf, - 0x90, 0x89, 0x7d, 0x9f, 0xd2, 0x69, 0x8f, 0x27, 0xf4, 0x5d, 0x24, 0x4d, 0x63, 0x8f, 0x7f, 0xdc, - 0x63, 0xd8, 0xbb, 0x91, 0x34, 0x4d, 0x31, 0xc2, 0x26, 0xdf, 0x1f, 0xa5, 0x70, 0xf7, 0x3f, 0xb7, - 0x60, 0xa2, 0x1e, 0xba, 0x74, 0x82, 0xfe, 0x28, 0xcd, 0x46, 0x3d, 0xe9, 0xda, 0x50, 0x97, 0xa4, - 0x6b, 0x7f, 0xd7, 0x82, 0xe1, 0x7a, 0xe8, 0x9e, 0x80, 0x9f, 0xf3, 0x15, 0xd3, 0xcf, 0xf9, 0x40, - 0x81, 0x94, 0x2d, 0x70, 0x6d, 0xfe, 0x56, 0x19, 0xc6, 0x69, 0x3b, 0xc3, 0x4d, 0x39, 0x4a, 0x46, - 0x8f, 0x58, 0x7d, 0xf4, 0x08, 0x55, 0xe6, 0x42, 0xdf, 0x0f, 0xef, 0x64, 0x47, 0x6c, 0x85, 0x41, - 0xb1, 0xc0, 0xa2, 0xa7, 0x61, 0xa4, 0x15, 0x91, 0x5d, 0x2f, 0x6c, 0xc7, 0xd9, 0x7b, 0x84, 0x75, - 0x01, 0xc7, 0x8a, 0x02, 0x3d, 0x0f, 0x63, 0xb1, 0x17, 0x34, 0x89, 0x8c, 0xac, 0x18, 0x60, 0x91, - 0x15, 0x3c, 0x6f, 0xa5, 0x06, 0xc7, 0x06, 0x15, 0x7a, 0x03, 0x2a, 0xec, 0x3f, 0x5b, 0x37, 0x47, - 0x7f, 0x4d, 0x81, 0x9b, 0xaa, 0x92, 0x01, 0x4e, 0x79, 0xa1, 0x4b, 0x00, 0x89, 0x8c, 0x01, 0x89, - 0xc5, 0x35, 0x57, 0xa5, 0x51, 0xaa, 0xe8, 0x90, 0x18, 0x6b, 0x54, 0xe8, 0x29, 0xa8, 0x24, 0x8e, - 0xe7, 0x5f, 0xf3, 0x02, 0x12, 0x8b, 0x18, 0x1a, 0x91, 0x0b, 0x5a, 0x00, 0x71, 0x8a, 0xa7, 0x3b, - 0x3a, 0xbb, 0x44, 0xcd, 0xdf, 0x62, 0x19, 0x61, 0xd4, 0x6c, 0x47, 0xbf, 0xa6, 0xa0, 0x58, 0xa3, - 0xb0, 0x5f, 0x82, 0x33, 0xf5, 0xd0, 0xad, 0x87, 0x51, 0xb2, 0x12, 0x46, 0x77, 0x9c, 0xc8, 0x95, - 0xe3, 0x37, 0x2b, 0xd3, 0x12, 0xd3, 0x5d, 0x77, 0x90, 0xdb, 0xf5, 0x46, 0xc2, 0xe1, 0xe7, 0xd8, - 0x9e, 0x7e, 0xc4, 0x0b, 0x0f, 0xff, 0xba, 0x04, 0xa8, 0xce, 0xa2, 0x54, 0x8c, 0x07, 0x7b, 0xde, - 0x81, 0x89, 0x98, 0x5c, 0xf3, 0x82, 0xf6, 0x5d, 0xc1, 0xaa, 0xdb, 0x6d, 0x92, 0xc6, 0xb2, 0x4e, - 0xc9, 0x7d, 0x23, 0x26, 0x0c, 0x67, 0xb8, 0xd1, 0x2e, 0x8c, 0xda, 0xc1, 0x42, 0x7c, 0x2b, 0x26, - 0x91, 0x78, 0xa0, 0x86, 0x75, 0x21, 0x96, 0x40, 0x9c, 0xe2, 0xe9, 0x94, 0x61, 0x7f, 0x6e, 0x84, - 0x01, 0x0e, 0xc3, 0x44, 0x4e, 0x32, 0xf6, 0xc4, 0x81, 0x06, 0xc7, 0x06, 0x15, 0x5a, 0x01, 0x14, - 0xb7, 0x5b, 0x2d, 0x9f, 0x1d, 0xea, 0x39, 0xfe, 0xe5, 0x28, 0x6c, 0xb7, 0x78, 0x98, 0xb1, 0x78, - 0x1d, 0xa0, 0xd1, 0x81, 0xc5, 0x39, 0x25, 0xa8, 0x60, 0xd8, 0x88, 0xd9, 0x6f, 0x71, 0x8f, 0x9a, - 0xfb, 0x26, 0x1b, 0x0c, 0x84, 0x25, 0xce, 0xfe, 0x3c, 0xdb, 0xcc, 0xd8, 0xbb, 0x22, 0x49, 0x3b, - 0x22, 0x68, 0x07, 0xc6, 0x5b, 0x6c, 0xc3, 0x4a, 0xa2, 0xd0, 0xf7, 0x89, 0xd4, 0x1b, 0xef, 0x2d, - 0x62, 0x86, 0xbf, 0x33, 0xa0, 0xb3, 0xc3, 0x26, 0x77, 0xfb, 0x8b, 0x93, 0x4c, 0x2e, 0x35, 0xb8, - 0xd1, 0x32, 0x2c, 0xe2, 0x60, 0x85, 0x86, 0x36, 0x53, 0xfc, 0x8e, 0x57, 0x2a, 0xe9, 0x45, 0x2c, - 0x2d, 0x96, 0x65, 0xd1, 0xeb, 0x2c, 0x3e, 0x9b, 0x0b, 0x83, 0x5e, 0x2f, 0x08, 0x72, 0x2a, 0x23, - 0x36, 0x5b, 0x14, 0xc4, 0x1a, 0x13, 0x74, 0x0d, 0xc6, 0xc5, 0x33, 0x14, 0xc2, 0x85, 0x50, 0x36, - 0xcc, 0xdf, 0x71, 0xac, 0x23, 0x0f, 0xb3, 0x00, 0x6c, 0x16, 0x46, 0x9b, 0xf0, 0xb0, 0xf6, 0x68, - 0x52, 0x4e, 0xd4, 0x16, 0x97, 0x2d, 0x8f, 0x1c, 0xec, 0xcf, 0x3e, 0xbc, 0xd6, 0x8d, 0x10, 0x77, - 0xe7, 0x83, 0x6e, 0xc2, 0x19, 0xa7, 0x99, 0x78, 0xbb, 0xa4, 0x46, 0x1c, 0xd7, 0xf7, 0x02, 0x62, - 0x5e, 0xac, 0x3f, 0x77, 0xb0, 0x3f, 0x7b, 0x66, 0x21, 0x8f, 0x00, 0xe7, 0x97, 0x43, 0xaf, 0x40, - 0xc5, 0x0d, 0x62, 0xd1, 0x07, 0x43, 0xc6, 0x7b, 0x60, 0x95, 0xda, 0x8d, 0x86, 0xfa, 0xfe, 0xf4, - 0x0f, 0x4e, 0x0b, 0xa0, 0x4d, 0xfe, 0x6e, 0xbc, 0xb2, 0x48, 0x86, 0x3b, 0xb2, 0x25, 0x64, 0x6d, - 0x5b, 0xe3, 0xc6, 0x09, 0xf7, 0x9f, 0xa9, 0x98, 0x48, 0xe3, 0x32, 0x8a, 0xc1, 0x18, 0xbd, 0x06, - 0x28, 0x26, 0xd1, 0xae, 0xd7, 0x24, 0x0b, 0x4d, 0x96, 0xd8, 0x95, 0x79, 0x5d, 0x46, 0x8c, 0x00, - 0x7f, 0xd4, 0xe8, 0xa0, 0xc0, 0x39, 0xa5, 0xd0, 0x15, 0x2a, 0x51, 0x74, 0xa8, 0x08, 0x61, 0x95, - 0x6a, 0x5e, 0xb5, 0x46, 0x5a, 0x11, 0x69, 0x3a, 0x09, 0x71, 0x4d, 0x8e, 0x38, 0x53, 0x8e, 0xee, - 0x37, 0x2a, 0x5f, 0x3e, 0x98, 0x81, 0x97, 0x9d, 0x39, 0xf3, 0xa9, 0x85, 0xb4, 0x15, 0xc6, 0xc9, - 0x0d, 0x92, 0xdc, 0x09, 0xa3, 0x6d, 0x91, 0x0d, 0x2b, 0x4d, 0x96, 0x97, 0xa2, 0xb0, 0x4e, 0x47, - 0x35, 0x22, 0x76, 0x74, 0xb5, 0x5a, 0x63, 0xe7, 0x0c, 0x23, 0xe9, 0x3a, 0xb9, 0xc2, 0xc1, 0x58, - 0xe2, 0x25, 0xe9, 0x6a, 0x7d, 0x89, 0x9d, 0x1e, 0x64, 0x48, 0x57, 0xeb, 0x4b, 0x58, 0xe2, 0x11, - 0xe9, 0x7c, 0x6b, 0x6d, 0xa2, 0xf8, 0x84, 0xa6, 0x53, 0x2e, 0xf7, 0xf9, 0xdc, 0x5a, 0x00, 0x53, - 0xea, 0x95, 0x37, 0x9e, 0x26, 0x2c, 0xae, 0x4e, 0x16, 0x3f, 0x60, 0x9f, 0x9b, 0x63, 0x4c, 0x79, - 0xd5, 0x56, 0x33, 0x9c, 0x70, 0x07, 0x6f, 0x23, 0x61, 0xc3, 0x54, 0xcf, 0xf7, 0x0e, 0xe6, 0xa1, - 0x12, 0xb7, 0xd7, 0xdd, 0x70, 0xc7, 0xf1, 0x02, 0xe6, 0xf6, 0xd7, 0xdf, 0x56, 0x97, 0x08, 0x9c, - 0xd2, 0xa0, 0x15, 0x18, 0x71, 0x84, 0xf1, 0x25, 0x1c, 0xf5, 0xb9, 0x37, 0xb8, 0xa5, 0x81, 0xc6, - 0x3d, 0x9a, 0xf2, 0x1f, 0x56, 0x65, 0xd1, 0xcb, 0x30, 0x2e, 0x2e, 0x19, 0x89, 0xf8, 0xc0, 0x53, - 0x66, 0x3c, 0x7a, 0x43, 0x47, 0x62, 0x93, 0x16, 0xfd, 0x14, 0x4c, 0x50, 0x2e, 0xa9, 0x60, 0xab, - 0x9e, 0xee, 0x47, 0x22, 0x6a, 0x79, 0xac, 0xf5, 0xc2, 0x38, 0xc3, 0x0c, 0xb9, 0xf0, 0x90, 0xd3, - 0x4e, 0xc2, 0x1d, 0x3a, 0xc3, 0xcd, 0xf9, 0xbf, 0x16, 0x6e, 0x93, 0x80, 0xf9, 0xe9, 0x47, 0x16, - 0x2f, 0x1c, 0xec, 0xcf, 0x3e, 0xb4, 0xd0, 0x85, 0x0e, 0x77, 0xe5, 0x82, 0x6e, 0xc1, 0x68, 0x12, - 0xfa, 0x22, 0xb0, 0x37, 0xae, 0x9e, 0x2d, 0x4e, 0x38, 0xb3, 0xa6, 0xc8, 0x74, 0x77, 0x82, 0x2a, - 0x8a, 0x75, 0x3e, 0x68, 0x8d, 0xaf, 0x31, 0x96, 0x1e, 0x91, 0xc4, 0xd5, 0x07, 0x8a, 0x3b, 0x46, - 0x65, 0x51, 0x34, 0x97, 0xa0, 0x28, 0x89, 0x75, 0x36, 0xe8, 0x32, 0x4c, 0xb7, 0x22, 0x2f, 0x64, - 0x13, 0x5b, 0xb9, 0x7c, 0xab, 0x46, 0x2a, 0xb2, 0xe9, 0x7a, 0x96, 0x00, 0x77, 0x96, 0x41, 0x17, - 0xa9, 0x82, 0xca, 0x81, 0xd5, 0x73, 0xfc, 0x1d, 0x0c, 0xae, 0x9c, 0x72, 0x18, 0x56, 0xd8, 0x99, - 0x9f, 0x80, 0xe9, 0x0e, 0x49, 0x79, 0xa4, 0x20, 0xcb, 0x5f, 0x1f, 0x84, 0x8a, 0x72, 0x07, 0xa2, - 0x79, 0xd3, 0xcb, 0x7b, 0x2e, 0xeb, 0xe5, 0x1d, 0xa1, 0xfa, 0x9a, 0xee, 0xd8, 0x5d, 0xcb, 0x79, - 0xca, 0xfb, 0x42, 0x81, 0x68, 0xe8, 0xff, 0x46, 0xd4, 0x11, 0x9e, 0x39, 0x4f, 0x0d, 0xc6, 0x81, - 0xae, 0x06, 0x63, 0x9f, 0xcf, 0xea, 0x51, 0xd3, 0xb0, 0x15, 0xba, 0xab, 0xf5, 0xec, 0x3b, 0x53, - 0x75, 0x0a, 0xc4, 0x1c, 0xc7, 0x94, 0x7b, 0xba, 0xad, 0x33, 0xe5, 0x7e, 0xf8, 0x1e, 0x95, 0x7b, - 0xc9, 0x00, 0xa7, 0xbc, 0x90, 0x0f, 0xd3, 0x4d, 0xf3, 0x89, 0x30, 0x75, 0x0b, 0xea, 0xd1, 0x9e, - 0x8f, 0x75, 0xb5, 0xb5, 0x77, 0x43, 0x96, 0xb2, 0x5c, 0x70, 0x27, 0x63, 0xf4, 0x32, 0x8c, 0xbc, - 0x17, 0xc6, 0x6c, 0xda, 0x89, 0xbd, 0x4d, 0xde, 0x3b, 0x19, 0x79, 0xfd, 0x66, 0x83, 0xc1, 0x0f, - 0xf7, 0x67, 0x47, 0xeb, 0xa1, 0x2b, 0xff, 0x62, 0x55, 0x00, 0xdd, 0x85, 0x33, 0x86, 0x44, 0x50, - 0xcd, 0x85, 0xfe, 0x9b, 0xfb, 0xb0, 0xa8, 0xee, 0xcc, 0x6a, 0x1e, 0x27, 0x9c, 0x5f, 0x81, 0xfd, - 0x0d, 0xee, 0xf4, 0x14, 0xae, 0x11, 0x12, 0xb7, 0xfd, 0x93, 0x78, 0x1c, 0x60, 0xd9, 0xf0, 0xda, - 0xdc, 0xb3, 0x63, 0xfd, 0xf7, 0x2d, 0xe6, 0x58, 0x5f, 0x23, 0x3b, 0x2d, 0xdf, 0x49, 0x4e, 0x22, - 0xb4, 0xf6, 0x75, 0x18, 0x49, 0x44, 0x6d, 0xdd, 0xde, 0x33, 0xd0, 0x1a, 0xc5, 0x0e, 0x17, 0xd4, - 0x86, 0x28, 0xa1, 0x58, 0xb1, 0xb1, 0xff, 0x31, 0x1f, 0x01, 0x89, 0x39, 0x01, 0xdf, 0x42, 0xcd, - 0xf4, 0x2d, 0xcc, 0xf6, 0xf8, 0x82, 0x02, 0x1f, 0xc3, 0x3f, 0x32, 0xdb, 0xcd, 0x6c, 0x8f, 0x8f, - 0xfa, 0x89, 0x8e, 0xfd, 0x4b, 0x16, 0x9c, 0xce, 0x3b, 0xd2, 0xa7, 0x4a, 0x0c, 0xb7, 0x7c, 0xd4, - 0x09, 0x97, 0xea, 0xc1, 0xdb, 0x02, 0x8e, 0x15, 0x45, 0xdf, 0x39, 0xc5, 0x8f, 0x96, 0x64, 0xe9, - 0x26, 0x98, 0xaf, 0xc9, 0xa1, 0x57, 0x79, 0xac, 0xbc, 0xa5, 0x9e, 0x7b, 0x3b, 0x5a, 0x9c, 0xbc, - 0xfd, 0x6b, 0x25, 0x38, 0xcd, 0x5d, 0xd4, 0x0b, 0xbb, 0xa1, 0xe7, 0xd6, 0x43, 0x57, 0xdc, 0x1c, - 0x78, 0x0b, 0xc6, 0x5a, 0x9a, 0xb9, 0xda, 0x2d, 0xcd, 0x8b, 0x6e, 0xd6, 0xa6, 0x66, 0x83, 0x0e, - 0xc5, 0x06, 0x2f, 0xe4, 0xc2, 0x18, 0xd9, 0xf5, 0x9a, 0xca, 0xcf, 0x59, 0x3a, 0xb2, 0x48, 0x57, - 0xb5, 0x2c, 0x6b, 0x7c, 0xb0, 0xc1, 0xf5, 0x3e, 0xbc, 0xfc, 0x61, 0x7f, 0xc5, 0x82, 0x07, 0x0a, - 0x92, 0xc2, 0xd0, 0xea, 0xee, 0xb0, 0xc3, 0x00, 0xf1, 0x34, 0xa1, 0xaa, 0x8e, 0x1f, 0x11, 0x60, - 0x81, 0x45, 0x3f, 0x09, 0xc0, 0x5d, 0xfc, 0xec, 0x21, 0xf8, 0x52, 0xf7, 0x5b, 0xe7, 0x46, 0xb2, - 0x04, 0xed, 0x46, 0xbd, 0x7a, 0xfa, 0x5d, 0xe3, 0x65, 0xff, 0x4a, 0x19, 0x06, 0xf9, 0x3b, 0xd5, - 0x2b, 0x30, 0xbc, 0xc5, 0x53, 0xd0, 0xf6, 0x93, 0xed, 0x36, 0x35, 0x47, 0x38, 0x00, 0xcb, 0xc2, - 0xe8, 0x3a, 0x9c, 0x12, 0xb7, 0x53, 0x6a, 0xc4, 0x77, 0xf6, 0xa4, 0x55, 0xcb, 0x9f, 0x83, 0x90, - 0xa9, 0xca, 0x4f, 0xad, 0x76, 0x92, 0xe0, 0xbc, 0x72, 0xe8, 0xd5, 0x8e, 0xc4, 0x73, 0x3c, 0x79, - 0xaf, 0xd2, 0x81, 0x7b, 0x24, 0x9f, 0x7b, 0x19, 0xc6, 0x5b, 0x1d, 0xf6, 0xbb, 0xf6, 0x44, 0xb0, - 0x69, 0xb3, 0x9b, 0xb4, 0x2c, 0x3e, 0xa0, 0xcd, 0xa2, 0x21, 0xd6, 0xb6, 0x22, 0x12, 0x6f, 0x85, - 0xbe, 0x2b, 0xde, 0xc3, 0x4c, 0xe3, 0x03, 0x32, 0x78, 0xdc, 0x51, 0x82, 0x72, 0xd9, 0x70, 0x3c, - 0xbf, 0x1d, 0x91, 0x94, 0xcb, 0x90, 0xc9, 0x65, 0x25, 0x83, 0xc7, 0x1d, 0x25, 0xe8, 0x3c, 0x3a, - 0x23, 0x1e, 0x53, 0x94, 0x77, 0x96, 0x55, 0xd0, 0xc7, 0xb0, 0x8c, 0x4a, 0xef, 0x92, 0x47, 0x43, - 0x1c, 0xf9, 0xab, 0xe7, 0x18, 0xb5, 0x67, 0xba, 0x44, 0x3c, 0xba, 0xe4, 0x72, 0x2f, 0x4f, 0xfa, - 0xfd, 0xa9, 0x05, 0xa7, 0x72, 0x02, 0xc1, 0xb8, 0xa8, 0xda, 0xf4, 0xe2, 0x44, 0xbd, 0x42, 0xa0, - 0x89, 0x2a, 0x0e, 0xc7, 0x8a, 0x82, 0xae, 0x07, 0x2e, 0x0c, 0xb3, 0x02, 0x50, 0x04, 0x6f, 0x08, - 0xec, 0xd1, 0x04, 0x20, 0xba, 0x00, 0x03, 0xed, 0x98, 0x44, 0xf2, 0x1d, 0x3c, 0x29, 0xbf, 0x99, - 0x47, 0x90, 0x61, 0xa8, 0x46, 0xb9, 0xa9, 0x9c, 0x71, 0x9a, 0x46, 0xc9, 0xdd, 0x71, 0x1c, 0x67, - 0x7f, 0xb9, 0x0c, 0x93, 0x99, 0xb0, 0x4d, 0xda, 0x90, 0x9d, 0x30, 0xf0, 0x92, 0x50, 0xe5, 0x3d, - 0xe3, 0x69, 0x1e, 0x48, 0x6b, 0xeb, 0xba, 0x80, 0x63, 0x45, 0x81, 0x1e, 0x93, 0x0f, 0xa4, 0x66, - 0x5f, 0x57, 0x58, 0xac, 0x19, 0x6f, 0xa4, 0xf6, 0xfb, 0x4c, 0xca, 0xa3, 0x30, 0xd0, 0x0a, 0xd5, - 0xeb, 0xd5, 0x6a, 0x3c, 0xf1, 0x62, 0xad, 0x1e, 0x86, 0x3e, 0x66, 0x48, 0xf4, 0x09, 0xf1, 0xf5, - 0x99, 0xf3, 0x0a, 0xec, 0xb8, 0x61, 0xac, 0x75, 0xc1, 0x13, 0x30, 0xbc, 0x4d, 0xf6, 0x22, 0x2f, - 0xd8, 0xcc, 0x9e, 0xd6, 0x5c, 0xe5, 0x60, 0x2c, 0xf1, 0x66, 0x9a, 0xf1, 0xe1, 0xfb, 0xf2, 0xd2, - 0xc9, 0x48, 0xcf, 0x5d, 0xed, 0xb7, 0x2c, 0x98, 0x64, 0x39, 0x46, 0xc5, 0xed, 0x78, 0x2f, 0x0c, - 0x4e, 0x40, 0x4f, 0x78, 0x14, 0x06, 0x23, 0x5a, 0x69, 0xf6, 0xf9, 0x02, 0xd6, 0x12, 0xcc, 0x71, - 0xe8, 0x21, 0x18, 0x60, 0x4d, 0xa0, 0x83, 0x37, 0xc6, 0xb3, 0x8c, 0xd7, 0x9c, 0xc4, 0xc1, 0x0c, - 0xca, 0xae, 0x29, 0x61, 0xd2, 0xf2, 0x3d, 0xde, 0xe8, 0xd4, 0xdd, 0xfa, 0xd1, 0xb8, 0xa6, 0x94, - 0xdb, 0xb4, 0x0f, 0x76, 0x4d, 0x29, 0x9f, 0x65, 0x77, 0x1d, 0xfc, 0xbf, 0x96, 0xe0, 0x7c, 0x6e, - 0xb9, 0xf4, 0x64, 0x77, 0xc5, 0x38, 0xd9, 0xbd, 0x94, 0x39, 0xd9, 0xb5, 0xbb, 0x97, 0x3e, 0x9e, - 0xb3, 0xde, 0xfc, 0x23, 0xd8, 0xf2, 0x09, 0x1e, 0xc1, 0x0e, 0xf4, 0xab, 0xa6, 0x0c, 0xf6, 0x50, - 0x53, 0xbe, 0x6d, 0xc1, 0xb9, 0xdc, 0x2e, 0xfb, 0x88, 0xdc, 0x0b, 0xcb, 0x6d, 0x5b, 0x81, 0x0d, - 0xf1, 0x83, 0x52, 0xc1, 0xb7, 0x30, 0x6b, 0xe2, 0x22, 0x95, 0x33, 0x0c, 0x19, 0x0b, 0xb5, 0x6b, - 0x8c, 0xcb, 0x18, 0x0e, 0xc3, 0x0a, 0x8b, 0x3c, 0xed, 0x86, 0x15, 0x6f, 0xda, 0xcb, 0x47, 0x5a, - 0x32, 0x73, 0xa6, 0x77, 0x5c, 0xbf, 0xca, 0x9f, 0xbd, 0x6d, 0x75, 0x5d, 0xb3, 0x00, 0xcb, 0xfd, - 0x5b, 0x80, 0x63, 0xf9, 0xd6, 0x1f, 0x5a, 0x80, 0xc9, 0x1d, 0x2f, 0x60, 0x6f, 0x90, 0x9a, 0x7a, - 0x8f, 0xba, 0x96, 0x7a, 0xdd, 0x44, 0xe3, 0x2c, 0xfd, 0xcc, 0xcb, 0x30, 0x7e, 0xef, 0x2e, 0xab, - 0xef, 0x94, 0xe1, 0xc1, 0x2e, 0xcb, 0x9e, 0xcb, 0x7a, 0x63, 0x0c, 0x34, 0x59, 0xdf, 0x31, 0x0e, - 0x75, 0x38, 0xbd, 0xd1, 0xf6, 0xfd, 0x3d, 0x16, 0xe5, 0x44, 0x5c, 0x49, 0x21, 0x14, 0x13, 0x95, - 0x40, 0x78, 0x25, 0x87, 0x06, 0xe7, 0x96, 0x44, 0xaf, 0x01, 0x0a, 0xd7, 0x59, 0x52, 0x5b, 0x37, - 0x4d, 0x50, 0xc0, 0x3a, 0xbe, 0x9c, 0x2e, 0xc6, 0x9b, 0x1d, 0x14, 0x38, 0xa7, 0x14, 0xd5, 0x30, - 0xd9, 0xcb, 0xe9, 0xaa, 0x59, 0x19, 0x0d, 0x13, 0xeb, 0x48, 0x6c, 0xd2, 0xa2, 0xcb, 0x30, 0xed, - 0xec, 0x3a, 0x1e, 0x4f, 0x58, 0x25, 0x19, 0x70, 0x15, 0x53, 0x39, 0x8a, 0x16, 0xb2, 0x04, 0xb8, - 0xb3, 0x0c, 0xda, 0x30, 0xbc, 0x7c, 0x3c, 0x5f, 0xfe, 0xa5, 0xbe, 0x67, 0x6b, 0xdf, 0x7e, 0x3f, - 0xfb, 0xdf, 0x5b, 0x74, 0xfb, 0xca, 0x79, 0xf4, 0x92, 0xf6, 0x83, 0xf2, 0x5f, 0x69, 0xb7, 0xc3, - 0x54, 0x3f, 0x2c, 0xe9, 0x48, 0x6c, 0xd2, 0xf2, 0x09, 0x11, 0xa7, 0xe1, 0xd2, 0x86, 0x9e, 0x28, - 0xae, 0x53, 0x2a, 0x0a, 0xf4, 0x26, 0x0c, 0xbb, 0xde, 0xae, 0x17, 0x87, 0x91, 0x58, 0x2c, 0x47, - 0x7d, 0xec, 0x59, 0xc9, 0xc1, 0x1a, 0x67, 0x83, 0x25, 0x3f, 0xfb, 0xcb, 0x25, 0x18, 0x97, 0x35, - 0xbe, 0xde, 0x0e, 0x13, 0xe7, 0x04, 0xb6, 0xe5, 0xcb, 0xc6, 0xb6, 0xfc, 0x89, 0x6e, 0x77, 0x4a, - 0x59, 0x93, 0x0a, 0xb7, 0xe3, 0x9b, 0x99, 0xed, 0xf8, 0xf1, 0xde, 0xac, 0xba, 0x6f, 0xc3, 0xbf, - 0x6b, 0xc1, 0xb4, 0x41, 0x7f, 0x02, 0xbb, 0xc1, 0x8a, 0xb9, 0x1b, 0x3c, 0xd2, 0xf3, 0x1b, 0x0a, - 0x76, 0x81, 0xaf, 0x95, 0x32, 0x6d, 0x67, 0xd2, 0xff, 0x3d, 0x18, 0xd8, 0x72, 0x22, 0xb7, 0x5b, - 0xda, 0xc5, 0x8e, 0x42, 0x73, 0x57, 0x9c, 0xc8, 0xe5, 0x32, 0xfc, 0x69, 0xf5, 0x1e, 0x97, 0x13, - 0xb9, 0x3d, 0x6f, 0x07, 0xb0, 0xaa, 0xd0, 0x4b, 0x30, 0x14, 0x37, 0xc3, 0x96, 0x8a, 0xbd, 0xbc, - 0xc0, 0xdf, 0xea, 0xa2, 0x90, 0xc3, 0xfd, 0x59, 0x64, 0x56, 0x47, 0xc1, 0x58, 0xd0, 0xcf, 0x6c, - 0x42, 0x45, 0x55, 0x7d, 0x5f, 0xa3, 0xca, 0xff, 0xa8, 0x0c, 0xa7, 0x72, 0xe6, 0x05, 0x8a, 0x8d, - 0xde, 0x7a, 0xb6, 0xcf, 0xe9, 0xf4, 0x01, 0xfb, 0x2b, 0x66, 0x16, 0x8b, 0x2b, 0xc6, 0xbf, 0xef, - 0x4a, 0x6f, 0xc5, 0x24, 0x5b, 0x29, 0x05, 0xf5, 0xae, 0x94, 0x56, 0x76, 0x62, 0x5d, 0x4d, 0x2b, - 0x52, 0x2d, 0xbd, 0xaf, 0x63, 0xfa, 0x3f, 0xcb, 0x70, 0x3a, 0xef, 0x2a, 0x3a, 0xfa, 0x99, 0xcc, - 0x23, 0x0e, 0xcf, 0xf7, 0x7b, 0x89, 0x9d, 0xbf, 0xec, 0x20, 0x32, 0xbc, 0xcc, 0x99, 0xcf, 0x3a, - 0xf4, 0xec, 0x66, 0x51, 0x27, 0xbb, 0xae, 0x13, 0xf1, 0xc7, 0x37, 0xe4, 0x12, 0xff, 0x64, 0xdf, - 0x0d, 0x10, 0xaf, 0x76, 0xc4, 0x99, 0xeb, 0x3a, 0x12, 0xdc, 0xfb, 0xba, 0x8e, 0xac, 0x79, 0xc6, - 0x83, 0x51, 0xed, 0x6b, 0xee, 0xeb, 0x88, 0x6f, 0xd3, 0x1d, 0x45, 0x6b, 0xf7, 0x7d, 0x1d, 0xf5, - 0xaf, 0x58, 0x90, 0x89, 0x93, 0x52, 0xfe, 0x0f, 0xab, 0xd0, 0xff, 0x71, 0x01, 0x06, 0xa2, 0xd0, - 0x27, 0xd9, 0xbc, 0xfe, 0x38, 0xf4, 0x09, 0x66, 0x18, 0xf5, 0xf8, 0x6e, 0xb9, 0xe8, 0xf1, 0x5d, - 0x6a, 0x1a, 0xfb, 0x64, 0x97, 0x48, 0x6f, 0x84, 0x92, 0xc9, 0xd7, 0x28, 0x10, 0x73, 0x9c, 0xfd, - 0x1b, 0x03, 0x70, 0x2a, 0xe7, 0x72, 0x1a, 0x35, 0x54, 0x36, 0x9d, 0x84, 0xdc, 0x71, 0xf6, 0xb2, - 0xb9, 0x46, 0x2f, 0x73, 0x30, 0x96, 0x78, 0x16, 0xcb, 0xc9, 0xd3, 0x95, 0x65, 0x7c, 0x44, 0x22, - 0x4b, 0x99, 0xc0, 0xde, 0xaf, 0xf7, 0x58, 0x2f, 0x01, 0xc4, 0xb1, 0xbf, 0x1c, 0x50, 0xe5, 0xcb, - 0x15, 0x91, 0xa2, 0x69, 0x6e, 0xbb, 0xc6, 0x35, 0x81, 0xc1, 0x1a, 0x15, 0xaa, 0xc1, 0x54, 0x2b, - 0x0a, 0x13, 0xee, 0x77, 0xab, 0xf1, 0x18, 0x85, 0x41, 0xf3, 0x9a, 0x51, 0x3d, 0x83, 0xc7, 0x1d, - 0x25, 0xd0, 0x0b, 0x30, 0x2a, 0xae, 0x1e, 0xd5, 0xc3, 0xd0, 0x17, 0x5e, 0x1a, 0x75, 0xe2, 0xdd, - 0x48, 0x51, 0x58, 0xa7, 0xd3, 0x8a, 0x31, 0x67, 0xde, 0x70, 0x6e, 0x31, 0xee, 0xd0, 0xd3, 0xe8, - 0x32, 0x19, 0x29, 0x46, 0xfa, 0xca, 0x48, 0x91, 0xfa, 0xad, 0x2a, 0x7d, 0x9f, 0x5f, 0x40, 0x4f, - 0x4f, 0xcf, 0x37, 0xca, 0x30, 0xc4, 0x87, 0xe2, 0x04, 0x54, 0xb1, 0x15, 0xe1, 0xbb, 0xe9, 0x92, - 0x07, 0x80, 0xb7, 0x65, 0xae, 0xe6, 0x24, 0x0e, 0x17, 0x43, 0x6a, 0x35, 0xa4, 0x5e, 0x1e, 0x34, - 0x67, 0xac, 0x97, 0x99, 0x8c, 0x73, 0x02, 0x38, 0x0f, 0x6d, 0xf5, 0xbc, 0x03, 0x10, 0xb3, 0x37, - 0x41, 0x29, 0x0f, 0x91, 0xb7, 0xf4, 0xc9, 0x2e, 0xb5, 0x37, 0x14, 0x31, 0x6f, 0x43, 0x3a, 0x05, - 0x15, 0x02, 0x6b, 0x1c, 0x67, 0x5e, 0x84, 0x8a, 0x22, 0xee, 0x65, 0xc9, 0x8d, 0xe9, 0xc2, 0xeb, - 0xd3, 0x30, 0x99, 0xa9, 0xeb, 0x48, 0x86, 0xe0, 0x6f, 0x5b, 0x30, 0xc9, 0x9b, 0xbc, 0x1c, 0xec, - 0x8a, 0xc5, 0xfe, 0x3e, 0x9c, 0xf6, 0x73, 0x16, 0x9d, 0x18, 0xd1, 0xfe, 0x17, 0xa9, 0x32, 0xfc, - 0xf2, 0xb0, 0x38, 0xb7, 0x0e, 0x6a, 0xfc, 0xf3, 0xd7, 0x8c, 0x1d, 0x5f, 0x44, 0x20, 0x8f, 0xf1, - 0x7c, 0xce, 0x1c, 0x86, 0x15, 0xd6, 0xfe, 0xae, 0x05, 0xd3, 0x1d, 0x6f, 0xe1, 0x7f, 0xa8, 0x6d, - 0x17, 0xe9, 0xaa, 0x4b, 0x05, 0xe9, 0xaa, 0xf5, 0x4f, 0x2b, 0x77, 0xfd, 0xb4, 0x5f, 0xb3, 0x40, - 0xcc, 0xc0, 0x13, 0x50, 0xe7, 0x7f, 0xc2, 0x54, 0xe7, 0x67, 0x8a, 0x27, 0x75, 0x81, 0x1e, 0xff, - 0xe7, 0x16, 0x4c, 0x71, 0x82, 0xf4, 0xf0, 0xe2, 0x43, 0x1d, 0x87, 0x7e, 0xde, 0x50, 0x51, 0x8f, - 0x56, 0xe6, 0x7f, 0x94, 0x31, 0x58, 0x03, 0x5d, 0x07, 0xeb, 0x3f, 0x5b, 0x80, 0xf8, 0xe7, 0x67, - 0x1f, 0x78, 0xe6, 0x9b, 0x92, 0x66, 0x6a, 0xa7, 0x42, 0x40, 0x61, 0xb0, 0x46, 0x75, 0x2c, 0x0d, - 0xcf, 0x9c, 0x0d, 0x95, 0x7b, 0x9f, 0x0d, 0x1d, 0xe1, 0x5b, 0xff, 0xca, 0x00, 0x64, 0x03, 0x11, - 0xd1, 0x6d, 0x18, 0x6b, 0x3a, 0x2d, 0x67, 0xdd, 0xf3, 0xbd, 0xc4, 0x23, 0x71, 0xb7, 0x43, 0xe5, - 0x25, 0x8d, 0x4e, 0x1c, 0xc4, 0x68, 0x10, 0x6c, 0xf0, 0x41, 0x73, 0x00, 0xad, 0xc8, 0xdb, 0xf5, - 0x7c, 0xb2, 0xc9, 0x6c, 0x0d, 0x76, 0x1b, 0x81, 0x9f, 0x94, 0x4a, 0x28, 0xd6, 0x28, 0x72, 0xa2, - 0xd7, 0xcb, 0xf7, 0x2f, 0x7a, 0x7d, 0xe0, 0x88, 0xd1, 0xeb, 0x83, 0x7d, 0x45, 0xaf, 0x63, 0x38, - 0x2b, 0x77, 0x55, 0xfa, 0x7f, 0xc5, 0xf3, 0x89, 0x50, 0xa5, 0xf8, 0x1d, 0x85, 0x99, 0x83, 0xfd, - 0xd9, 0xb3, 0x38, 0x97, 0x02, 0x17, 0x94, 0x44, 0x3f, 0x09, 0x55, 0xc7, 0xf7, 0xc3, 0x3b, 0xaa, - 0xd7, 0x96, 0xe3, 0xa6, 0xe3, 0xa7, 0xa9, 0x40, 0x47, 0x16, 0x1f, 0x3a, 0xd8, 0x9f, 0xad, 0x2e, - 0x14, 0xd0, 0xe0, 0xc2, 0xd2, 0xf6, 0x36, 0x9c, 0x6a, 0x90, 0x48, 0x3e, 0x04, 0xa6, 0x56, 0xdf, - 0x1a, 0x54, 0xa2, 0xcc, 0x72, 0xef, 0xeb, 0x4a, 0xba, 0x96, 0x80, 0x4b, 0x2e, 0xef, 0x94, 0x91, - 0xfd, 0x67, 0x16, 0x0c, 0x8b, 0xe0, 0xc6, 0x13, 0xd0, 0x32, 0x16, 0x0c, 0x87, 0xcf, 0x6c, 0xbe, - 0x48, 0x64, 0x8d, 0x29, 0x74, 0xf5, 0xac, 0x66, 0x5c, 0x3d, 0x8f, 0x74, 0x63, 0xd2, 0xdd, 0xc9, - 0xf3, 0x8b, 0x65, 0x98, 0x30, 0x03, 0x3b, 0x4f, 0xa0, 0x0b, 0x6e, 0xc0, 0x70, 0x2c, 0xa2, 0x88, - 0x4b, 0xc5, 0xd1, 0x68, 0xd9, 0x41, 0x4c, 0xcf, 0xac, 0x45, 0xdc, 0xb0, 0x64, 0x92, 0x1b, 0x9e, - 0x5c, 0xbe, 0x8f, 0xe1, 0xc9, 0xbd, 0x62, 0x6b, 0x07, 0x8e, 0x23, 0xb6, 0xd6, 0xfe, 0x26, 0x13, - 0xfe, 0x3a, 0xfc, 0x04, 0x76, 0xec, 0xcb, 0xe6, 0x36, 0x61, 0x77, 0x99, 0x59, 0xa2, 0x51, 0x05, - 0x3b, 0xf7, 0x3f, 0xb0, 0x60, 0x54, 0x10, 0x9e, 0x40, 0xb3, 0x3f, 0x63, 0x36, 0xfb, 0xc1, 0x2e, - 0xcd, 0x2e, 0x68, 0xef, 0xdf, 0x2c, 0xa9, 0xf6, 0xd6, 0xc5, 0x53, 0xfc, 0x3d, 0x53, 0x43, 0x8f, - 0x50, 0x3b, 0x2d, 0x6c, 0x86, 0xbe, 0xd0, 0xcb, 0x1e, 0x4a, 0xaf, 0xa9, 0x71, 0xf8, 0xa1, 0xf6, - 0x1b, 0x2b, 0x6a, 0x76, 0x8b, 0x2a, 0x8c, 0x12, 0xb1, 0x81, 0xa6, 0xb7, 0xa8, 0xc2, 0x28, 0xc1, - 0x0c, 0x83, 0x5c, 0x80, 0xf4, 0x85, 0x74, 0x71, 0xaf, 0xb3, 0x78, 0x15, 0xb6, 0x13, 0xcf, 0x9f, - 0xf3, 0x82, 0x24, 0x4e, 0xa2, 0xb9, 0xd5, 0x20, 0xb9, 0x19, 0x71, 0xad, 0x5d, 0xbb, 0x77, 0xa6, - 0x78, 0x61, 0x8d, 0xaf, 0xbc, 0xf8, 0xc0, 0xea, 0x18, 0x34, 0x4f, 0x62, 0x6e, 0x08, 0x38, 0x56, - 0x14, 0xf6, 0x8b, 0x4c, 0x26, 0xb3, 0x0e, 0x3a, 0xda, 0x95, 0xb0, 0x3f, 0x1e, 0x56, 0x5d, 0xcb, - 0xdc, 0xb0, 0x35, 0xfd, 0xe2, 0x59, 0x77, 0x11, 0x48, 0x2b, 0xd6, 0x83, 0x7c, 0xd3, 0xdb, 0x69, - 0xe8, 0xb3, 0x1d, 0x07, 0x74, 0xcf, 0xf4, 0x90, 0xa5, 0x47, 0x38, 0x92, 0x63, 0x99, 0xee, 0x58, - 0x46, 0xb0, 0xd5, 0x7a, 0x36, 0x79, 0xf7, 0x92, 0x44, 0xe0, 0x94, 0x06, 0xcd, 0x0b, 0x9b, 0x8f, - 0x3b, 0x40, 0x1e, 0xcc, 0xd8, 0x7c, 0xf2, 0xf3, 0x35, 0xa3, 0xef, 0x59, 0x18, 0x55, 0x0f, 0xa2, - 0xd4, 0xf9, 0xbb, 0x12, 0x15, 0xae, 0x4b, 0x2d, 0xa7, 0x60, 0xac, 0xd3, 0xa0, 0x35, 0x98, 0x8c, - 0xf9, 0x6b, 0x2d, 0xf2, 0x2e, 0x82, 0xb0, 0xe8, 0x9f, 0xcc, 0xbc, 0xc5, 0x2e, 0xd1, 0x87, 0x0c, - 0xc4, 0x17, 0xab, 0xbc, 0xbd, 0x90, 0x65, 0x81, 0x5e, 0x85, 0x09, 0x5f, 0x7f, 0xb5, 0xb2, 0x2e, - 0x0c, 0x7e, 0x15, 0x64, 0x65, 0xbc, 0x69, 0x59, 0xc7, 0x19, 0x6a, 0xaa, 0x04, 0xe8, 0x10, 0x91, - 0xa4, 0xc6, 0x09, 0x36, 0x49, 0x2c, 0x9e, 0x73, 0x60, 0x4a, 0xc0, 0xb5, 0x02, 0x1a, 0x5c, 0x58, - 0x1a, 0xbd, 0x04, 0x63, 0xf2, 0xf3, 0xb5, 0xbb, 0x39, 0x69, 0x28, 0x9f, 0x86, 0xc3, 0x06, 0x25, - 0xba, 0x03, 0x67, 0xe4, 0xff, 0xb5, 0xc8, 0xd9, 0xd8, 0xf0, 0x9a, 0xe2, 0x6a, 0xd4, 0x28, 0x63, - 0xb1, 0x20, 0xe3, 0x9a, 0x97, 0xf3, 0x88, 0x0e, 0xf7, 0x67, 0x2f, 0x88, 0x5e, 0xcb, 0xc5, 0xb3, - 0x41, 0xcc, 0xe7, 0x8f, 0xae, 0xc3, 0xa9, 0x2d, 0xe2, 0xf8, 0xc9, 0xd6, 0xd2, 0x16, 0x69, 0x6e, - 0xcb, 0x45, 0xc4, 0x6e, 0xfc, 0x68, 0x01, 0x70, 0x57, 0x3a, 0x49, 0x70, 0x5e, 0x39, 0xf4, 0x36, - 0x54, 0x5b, 0xed, 0x75, 0xdf, 0x8b, 0xb7, 0x6e, 0x84, 0x09, 0x3b, 0x4b, 0x54, 0xef, 0x89, 0x88, - 0xab, 0x41, 0xea, 0xb6, 0x53, 0xbd, 0x80, 0x0e, 0x17, 0x72, 0xf8, 0x60, 0xa7, 0xbc, 0xef, 0xd1, - 0xc2, 0x9a, 0x86, 0x81, 0x3e, 0x07, 0x63, 0xfa, 0x48, 0x0a, 0x21, 0xff, 0x58, 0xaf, 0x57, 0x52, - 0x85, 0x7e, 0xa2, 0x46, 0x55, 0xc7, 0x61, 0x83, 0xa3, 0xfd, 0xcf, 0x4a, 0x30, 0xdb, 0x23, 0x87, - 0x54, 0xc6, 0x75, 0x65, 0xf5, 0xe5, 0xba, 0x5a, 0x90, 0x4f, 0x87, 0xdc, 0xc8, 0x24, 0xa6, 0xce, - 0x3c, 0x0b, 0x92, 0xa6, 0xa7, 0xce, 0xd2, 0xf7, 0x1d, 0xb5, 0xa5, 0x7b, 0xbf, 0x06, 0x7a, 0x06, - 0xaf, 0xd5, 0x75, 0x37, 0xe6, 0x60, 0xff, 0xea, 0x6e, 0xa1, 0x07, 0xd3, 0xfe, 0x66, 0x09, 0xce, - 0xa8, 0x2e, 0xfc, 0xd1, 0xed, 0xb8, 0x5b, 0x9d, 0x1d, 0x77, 0x0c, 0xfe, 0x5f, 0xfb, 0x26, 0x0c, - 0x35, 0xf6, 0xe2, 0x66, 0xe2, 0xf7, 0xa1, 0x1d, 0x3c, 0x6a, 0xac, 0x9c, 0x74, 0x0f, 0x63, 0xaf, - 0x7f, 0x89, 0x85, 0x64, 0xff, 0x45, 0x0b, 0x26, 0xd7, 0x96, 0xea, 0x8d, 0xb0, 0xb9, 0x4d, 0x92, - 0x05, 0xee, 0xdd, 0xc0, 0x42, 0x39, 0xb0, 0xee, 0x71, 0xd3, 0xcf, 0x53, 0x27, 0x2e, 0xc0, 0xc0, - 0x56, 0x18, 0x27, 0x59, 0x1f, 0xff, 0x95, 0x30, 0x4e, 0x30, 0xc3, 0xd8, 0x7f, 0x62, 0xc1, 0x20, - 0x7b, 0xf0, 0xaa, 0xd7, 0xc3, 0x68, 0xfd, 0x7c, 0x17, 0x7a, 0x01, 0x86, 0xc8, 0xc6, 0x06, 0x69, - 0x26, 0x62, 0x54, 0xe5, 0x45, 0x92, 0xa1, 0x65, 0x06, 0xa5, 0x3b, 0x22, 0xab, 0x8c, 0xff, 0xc5, - 0x82, 0x18, 0x7d, 0x16, 0x2a, 0x89, 0xb7, 0x43, 0x16, 0x5c, 0x57, 0xb8, 0xd7, 0x8f, 0x16, 0x49, - 0xa5, 0x76, 0xe8, 0x35, 0xc9, 0x04, 0xa7, 0xfc, 0xec, 0x9f, 0x2f, 0x01, 0xa4, 0x17, 0xce, 0x7a, - 0x7d, 0xe6, 0x62, 0xc7, 0xfb, 0x6f, 0x8f, 0xe5, 0xbc, 0xff, 0x86, 0x52, 0x86, 0x39, 0xaf, 0xbf, - 0xa9, 0xae, 0x2a, 0xf7, 0xd5, 0x55, 0x03, 0x47, 0xe9, 0xaa, 0x25, 0x98, 0x4e, 0x2f, 0xcc, 0x99, - 0xb7, 0x87, 0x59, 0x6e, 0xd8, 0xb5, 0x2c, 0x12, 0x77, 0xd2, 0xdb, 0x5f, 0xb2, 0x40, 0x44, 0xd7, - 0xf6, 0x31, 0xa1, 0xdf, 0x92, 0x4f, 0x35, 0x19, 0x89, 0xed, 0x2e, 0x14, 0x87, 0x1b, 0x8b, 0x74, - 0x76, 0x4a, 0xb2, 0x1b, 0x49, 0xec, 0x0c, 0x5e, 0xf6, 0xef, 0x5a, 0x30, 0xca, 0xd1, 0xd7, 0x99, - 0x09, 0xda, 0xbb, 0x35, 0x47, 0xca, 0x2c, 0xcc, 0x5e, 0x31, 0xa2, 0x8c, 0x55, 0x02, 0x5a, 0xfd, - 0x15, 0x23, 0x89, 0xc0, 0x29, 0x0d, 0x7a, 0x02, 0x86, 0xe3, 0xf6, 0x3a, 0x23, 0xcf, 0x04, 0xd8, - 0x36, 0x38, 0x18, 0x4b, 0x3c, 0x9d, 0x57, 0x53, 0xd9, 0xf8, 0x6a, 0x74, 0x05, 0x86, 0xb8, 0xd8, - 0x10, 0xcb, 0xb8, 0xcb, 0x61, 0x82, 0x16, 0x95, 0x0d, 0xfc, 0xd9, 0x6d, 0x26, 0x6e, 0x44, 0x79, - 0xf4, 0x36, 0x8c, 0xba, 0xe1, 0x9d, 0xe0, 0x8e, 0x13, 0xb9, 0x0b, 0xf5, 0x55, 0xd1, 0xeb, 0xb9, - 0x51, 0x72, 0xb5, 0x94, 0x4c, 0x8f, 0xf4, 0x66, 0xee, 0xb9, 0x14, 0x85, 0x75, 0x76, 0x68, 0x8d, - 0xe5, 0xf0, 0xe0, 0x8f, 0x81, 0x76, 0x8b, 0x1b, 0x51, 0xef, 0x87, 0x6a, 0x9c, 0xc7, 0x45, 0xa2, - 0x0f, 0xf1, 0x94, 0x68, 0xca, 0xc8, 0xfe, 0xc2, 0x29, 0x30, 0x46, 0xdb, 0xc8, 0xff, 0x6b, 0x1d, - 0x53, 0xfe, 0x5f, 0x0c, 0x23, 0x64, 0xa7, 0x95, 0xec, 0xd5, 0xbc, 0xa8, 0x5b, 0x42, 0xf6, 0x65, - 0x41, 0xd3, 0xc9, 0x53, 0x62, 0xb0, 0xe2, 0x93, 0x9f, 0xa4, 0xb9, 0xfc, 0x21, 0x26, 0x69, 0x1e, - 0x38, 0xc1, 0x24, 0xcd, 0x37, 0x60, 0x78, 0xd3, 0x4b, 0x30, 0x69, 0x85, 0x62, 0xcb, 0xcc, 0x9d, - 0x09, 0x97, 0x39, 0x49, 0x67, 0x7a, 0x51, 0x81, 0xc0, 0x92, 0x09, 0x7a, 0x4d, 0xad, 0x81, 0xa1, - 0x62, 0x55, 0xb0, 0xd3, 0xbb, 0x9d, 0xbb, 0x0a, 0x44, 0x52, 0xe6, 0xe1, 0x7b, 0x4d, 0xca, 0xac, - 0x92, 0x2a, 0x8f, 0x7c, 0xb0, 0xa4, 0xca, 0x46, 0xd2, 0xe9, 0xca, 0xf1, 0x25, 0x9d, 0xfe, 0x92, - 0x05, 0x67, 0x5a, 0x79, 0xf9, 0xd7, 0x45, 0xa2, 0xe4, 0x17, 0xfa, 0xce, 0x43, 0x6f, 0x54, 0xc8, - 0x12, 0x49, 0xe4, 0x92, 0xe1, 0xfc, 0xea, 0x64, 0xf6, 0xea, 0xd1, 0x7b, 0xcd, 0x5e, 0x7d, 0x7f, - 0x32, 0x2a, 0xa7, 0xb9, 0xac, 0xc7, 0x8f, 0x31, 0x97, 0xf5, 0xc4, 0x07, 0xce, 0x65, 0xad, 0xe5, - 0xa3, 0x9e, 0x3c, 0x8e, 0x7c, 0xd4, 0xef, 0x98, 0xc2, 0x9e, 0xa7, 0x49, 0x7e, 0xaa, 0x87, 0xb0, - 0x37, 0xf8, 0x76, 0x17, 0xf7, 0x3c, 0xf7, 0xf6, 0xf4, 0x3d, 0xe5, 0xde, 0x36, 0xb2, 0x5a, 0xa3, - 0xe3, 0xcb, 0x6a, 0x7d, 0x5b, 0xdf, 0x82, 0x4e, 0x15, 0xf3, 0x55, 0x3b, 0x4d, 0x27, 0xdf, 0xbc, - 0x4d, 0xa8, 0x33, 0x5b, 0xf6, 0xe9, 0x93, 0xc9, 0x96, 0x7d, 0xe6, 0xd8, 0xb3, 0x65, 0x9f, 0x3d, - 0x81, 0x6c, 0xd9, 0x0f, 0x7c, 0xa8, 0xd9, 0xb2, 0xab, 0xf7, 0x37, 0x5b, 0xf6, 0xb9, 0xe3, 0xc8, - 0x96, 0x7d, 0x1b, 0x2a, 0x2d, 0x79, 0x05, 0xaf, 0x3a, 0x53, 0x3c, 0x24, 0xb9, 0xf7, 0xf4, 0xf8, - 0x90, 0x28, 0x14, 0x4e, 0x59, 0x51, 0xbe, 0x69, 0xf6, 0xec, 0x07, 0x8b, 0xf9, 0xe6, 0x9a, 0xed, - 0x5d, 0x72, 0x66, 0xff, 0xa5, 0x12, 0x9c, 0xef, 0x3e, 0xaf, 0x53, 0x9b, 0xbf, 0x9e, 0x3a, 0x70, - 0x33, 0x36, 0x3f, 0x53, 0xba, 0x34, 0xaa, 0xbe, 0xef, 0x29, 0x5f, 0x86, 0x69, 0x15, 0x89, 0xe4, - 0x7b, 0xcd, 0x3d, 0xed, 0x71, 0x1b, 0x15, 0xdc, 0xde, 0xc8, 0x12, 0xe0, 0xce, 0x32, 0x68, 0x01, - 0x26, 0x0d, 0xe0, 0x6a, 0x4d, 0xa8, 0xe4, 0xca, 0xc9, 0xd0, 0x30, 0xd1, 0x38, 0x4b, 0x6f, 0x7f, - 0xcd, 0x82, 0x07, 0x0a, 0x12, 0x6f, 0xf6, 0x7d, 0x0d, 0x77, 0x03, 0x26, 0x5b, 0x66, 0xd1, 0x1e, - 0xb7, 0xf5, 0x8d, 0xf4, 0x9e, 0xaa, 0xad, 0x19, 0x04, 0xce, 0x32, 0x5d, 0xbc, 0xf8, 0xad, 0xef, - 0x9d, 0xff, 0xd8, 0x1f, 0x7e, 0xef, 0xfc, 0xc7, 0xbe, 0xfb, 0xbd, 0xf3, 0x1f, 0xfb, 0xff, 0x0e, - 0xce, 0x5b, 0xdf, 0x3a, 0x38, 0x6f, 0xfd, 0xe1, 0xc1, 0x79, 0xeb, 0xbb, 0x07, 0xe7, 0xad, 0x3f, - 0x3d, 0x38, 0x6f, 0xfd, 0xfc, 0xf7, 0xcf, 0x7f, 0xec, 0xad, 0xd2, 0xee, 0xb3, 0xff, 0x37, 0x00, - 0x00, 0xff, 0xff, 0xba, 0x62, 0xf2, 0xf7, 0x5f, 0xca, 0x00, 0x00, + // 11611 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0xbd, 0x69, 0x90, 0x24, 0xc7, + 0x75, 0x18, 0xcc, 0xea, 0x9e, 0xab, 0xdf, 0xdc, 0xb9, 0x07, 0x7a, 0x07, 0xc0, 0xf6, 0xa2, 0x40, + 0x02, 0x8b, 0x6b, 0x46, 0x58, 0x00, 0x04, 0x44, 0x80, 0x90, 0x66, 0xa6, 0x67, 0x76, 0x07, 0x7b, + 0x35, 0xb2, 0x67, 0x17, 0x02, 0x08, 0x41, 0xac, 0xed, 0xca, 0x99, 0x29, 0x4c, 0x4d, 0x55, 0xa3, + 0xaa, 0x7a, 0x76, 0x07, 0x21, 0x46, 0x7c, 0x1f, 0x4d, 0xd1, 0x07, 0xf5, 0x43, 0xe1, 0x50, 0xd8, + 0xb2, 0xc8, 0x90, 0x23, 0x7c, 0x84, 0x44, 0xcb, 0x76, 0x48, 0xa6, 0xac, 0x83, 0x94, 0xc3, 0xb6, + 0x7c, 0x04, 0xf9, 0x47, 0x96, 0xf4, 0x87, 0x8c, 0x70, 0x78, 0x28, 0x0e, 0x1d, 0x76, 0xf8, 0x87, + 0x1d, 0xb6, 0xf5, 0x4b, 0x63, 0xd9, 0x74, 0xe4, 0x59, 0x99, 0xd5, 0x55, 0xdd, 0x3d, 0x8b, 0xdd, + 0x01, 0xc8, 0xf0, 0xbf, 0xee, 0xf7, 0x5e, 0xbe, 0xcc, 0xca, 0xe3, 0xe5, 0x7b, 0x2f, 0x5f, 0xbe, + 0x84, 0x97, 0xb7, 0x5f, 0x8a, 0xe7, 0xbd, 0x70, 0x61, 0xbb, 0x73, 0x8b, 0x44, 0x01, 0x49, 0x48, + 0xbc, 0xb0, 0x4b, 0x02, 0x37, 0x8c, 0x16, 0x04, 0xc2, 0x69, 0x7b, 0x0b, 0xad, 0x30, 0x22, 0x0b, + 0xbb, 0xcf, 0x2e, 0x6c, 0x92, 0x80, 0x44, 0x4e, 0x42, 0xdc, 0xf9, 0x76, 0x14, 0x26, 0x21, 0x42, + 0x9c, 0x66, 0xde, 0x69, 0x7b, 0xf3, 0x94, 0x66, 0x7e, 0xf7, 0xd9, 0xb9, 0x67, 0x36, 0xbd, 0x64, + 0xab, 0x73, 0x6b, 0xbe, 0x15, 0xee, 0x2c, 0x6c, 0x86, 0x9b, 0xe1, 0x02, 0x23, 0xbd, 0xd5, 0xd9, + 0x60, 0xff, 0xd8, 0x1f, 0xf6, 0x8b, 0xb3, 0x98, 0x7b, 0x3e, 0xad, 0x66, 0xc7, 0x69, 0x6d, 0x79, + 0x01, 0x89, 0xf6, 0x16, 0xda, 0xdb, 0x9b, 0xac, 0xde, 0x88, 0xc4, 0x61, 0x27, 0x6a, 0x91, 0x6c, + 0xc5, 0x3d, 0x4b, 0xc5, 0x0b, 0x3b, 0x24, 0x71, 0x72, 0x9a, 0x3b, 0xb7, 0x50, 0x54, 0x2a, 0xea, + 0x04, 0x89, 0xb7, 0xd3, 0x5d, 0xcd, 0x27, 0xfb, 0x15, 0x88, 0x5b, 0x5b, 0x64, 0xc7, 0xe9, 0x2a, + 0xf7, 0x5c, 0x51, 0xb9, 0x4e, 0xe2, 0xf9, 0x0b, 0x5e, 0x90, 0xc4, 0x49, 0x94, 0x2d, 0x64, 0x7f, + 0xdb, 0x82, 0x73, 0x8b, 0x6f, 0x34, 0x57, 0x7c, 0x27, 0x4e, 0xbc, 0xd6, 0x92, 0x1f, 0xb6, 0xb6, + 0x9b, 0x49, 0x18, 0x91, 0x9b, 0xa1, 0xdf, 0xd9, 0x21, 0x4d, 0xd6, 0x11, 0xe8, 0x69, 0x18, 0xdb, + 0x65, 0xff, 0xd7, 0xea, 0x55, 0xeb, 0x9c, 0x75, 0xbe, 0xb2, 0x34, 0xf3, 0xcd, 0xfd, 0xda, 0xc7, + 0x0e, 0xf6, 0x6b, 0x63, 0x37, 0x05, 0x1c, 0x2b, 0x0a, 0xf4, 0x18, 0x8c, 0x6c, 0xc4, 0xeb, 0x7b, + 0x6d, 0x52, 0x2d, 0x31, 0xda, 0x29, 0x41, 0x3b, 0xb2, 0xda, 0xa4, 0x50, 0x2c, 0xb0, 0x68, 0x01, + 0x2a, 0x6d, 0x27, 0x4a, 0xbc, 0xc4, 0x0b, 0x83, 0x6a, 0xf9, 0x9c, 0x75, 0x7e, 0x78, 0x69, 0x56, + 0x90, 0x56, 0x1a, 0x12, 0x81, 0x53, 0x1a, 0xda, 0x8c, 0x88, 0x38, 0xee, 0xf5, 0xc0, 0xdf, 0xab, + 0x0e, 0x9d, 0xb3, 0xce, 0x8f, 0xa5, 0xcd, 0xc0, 0x02, 0x8e, 0x15, 0x85, 0xfd, 0xcb, 0x25, 0x18, + 0x5b, 0xdc, 0xd8, 0xf0, 0x02, 0x2f, 0xd9, 0x43, 0x37, 0x61, 0x22, 0x08, 0x5d, 0x22, 0xff, 0xb3, + 0xaf, 0x18, 0xbf, 0x70, 0x6e, 0xbe, 0x7b, 0x2a, 0xcd, 0x5f, 0xd3, 0xe8, 0x96, 0x66, 0x0e, 0xf6, + 0x6b, 0x13, 0x3a, 0x04, 0x1b, 0x7c, 0x10, 0x86, 0xf1, 0x76, 0xe8, 0x2a, 0xb6, 0x25, 0xc6, 0xb6, + 0x96, 0xc7, 0xb6, 0x91, 0x92, 0x2d, 0x4d, 0x1f, 0xec, 0xd7, 0xc6, 0x35, 0x00, 0xd6, 0x99, 0xa0, + 0x5b, 0x30, 0x4d, 0xff, 0x06, 0x89, 0xa7, 0xf8, 0x96, 0x19, 0xdf, 0x47, 0x8b, 0xf8, 0x6a, 0xa4, + 0x4b, 0x27, 0x0e, 0xf6, 0x6b, 0xd3, 0x19, 0x20, 0xce, 0x32, 0xb4, 0xdf, 0x87, 0xa9, 0xc5, 0x24, + 0x71, 0x5a, 0x5b, 0xc4, 0xe5, 0x23, 0x88, 0x9e, 0x87, 0xa1, 0xc0, 0xd9, 0x21, 0x62, 0x7c, 0xcf, + 0x89, 0x8e, 0x1d, 0xba, 0xe6, 0xec, 0x90, 0xc3, 0xfd, 0xda, 0xcc, 0x8d, 0xc0, 0x7b, 0xaf, 0x23, + 0x66, 0x05, 0x85, 0x61, 0x46, 0x8d, 0x2e, 0x00, 0xb8, 0x64, 0xd7, 0x6b, 0x91, 0x86, 0x93, 0x6c, + 0x89, 0xf1, 0x46, 0xa2, 0x2c, 0xd4, 0x15, 0x06, 0x6b, 0x54, 0xf6, 0x1d, 0xa8, 0x2c, 0xee, 0x86, + 0x9e, 0xdb, 0x08, 0xdd, 0x18, 0x6d, 0xc3, 0x74, 0x3b, 0x22, 0x1b, 0x24, 0x52, 0xa0, 0xaa, 0x75, + 0xae, 0x7c, 0x7e, 0xfc, 0xc2, 0xf9, 0xdc, 0x8f, 0x35, 0x49, 0x57, 0x82, 0x24, 0xda, 0x5b, 0x7a, + 0x40, 0xd4, 0x37, 0x9d, 0xc1, 0xe2, 0x2c, 0x67, 0xfb, 0x5f, 0x97, 0xe0, 0xd4, 0xe2, 0xfb, 0x9d, + 0x88, 0xd4, 0xbd, 0x78, 0x3b, 0x3b, 0xc3, 0x5d, 0x2f, 0xde, 0xbe, 0x96, 0xf6, 0x80, 0x9a, 0x5a, + 0x75, 0x01, 0xc7, 0x8a, 0x02, 0x3d, 0x03, 0xa3, 0xf4, 0xf7, 0x0d, 0xbc, 0x26, 0x3e, 0xf9, 0x84, + 0x20, 0x1e, 0xaf, 0x3b, 0x89, 0x53, 0xe7, 0x28, 0x2c, 0x69, 0xd0, 0x55, 0x18, 0x6f, 0xb1, 0x05, + 0xb9, 0x79, 0x35, 0x74, 0x09, 0x1b, 0xcc, 0xca, 0xd2, 0x53, 0x94, 0x7c, 0x39, 0x05, 0x1f, 0xee, + 0xd7, 0xaa, 0xbc, 0x6d, 0x82, 0x85, 0x86, 0xc3, 0x7a, 0x79, 0x64, 0xab, 0xf5, 0x35, 0xc4, 0x38, + 0x41, 0xce, 0xda, 0x3a, 0xaf, 0x2d, 0x95, 0x61, 0xb6, 0x54, 0x26, 0xf2, 0x97, 0x09, 0x7a, 0x16, + 0x86, 0xb6, 0xbd, 0xc0, 0xad, 0x8e, 0x30, 0x5e, 0x0f, 0xd3, 0x31, 0xbf, 0xec, 0x05, 0xee, 0xe1, + 0x7e, 0x6d, 0xd6, 0x68, 0x0e, 0x05, 0x62, 0x46, 0x6a, 0xff, 0x99, 0x05, 0x35, 0x86, 0x5b, 0xf5, + 0x7c, 0xd2, 0x20, 0x51, 0xec, 0xc5, 0x09, 0x09, 0x12, 0xa3, 0x43, 0x2f, 0x00, 0xc4, 0xa4, 0x15, + 0x91, 0x44, 0xeb, 0x52, 0x35, 0x31, 0x9a, 0x0a, 0x83, 0x35, 0x2a, 0x2a, 0x10, 0xe2, 0x2d, 0x27, + 0x62, 0xf3, 0x4b, 0x74, 0xac, 0x12, 0x08, 0x4d, 0x89, 0xc0, 0x29, 0x8d, 0x21, 0x10, 0xca, 0xfd, + 0x04, 0x02, 0xfa, 0x34, 0x4c, 0xa7, 0x95, 0xc5, 0x6d, 0xa7, 0x25, 0x3b, 0x90, 0x2d, 0x99, 0xa6, + 0x89, 0xc2, 0x59, 0x5a, 0xfb, 0x1f, 0x58, 0x62, 0xf2, 0xd0, 0xaf, 0xfe, 0x88, 0x7f, 0xab, 0xfd, + 0xbb, 0x16, 0x8c, 0x2e, 0x79, 0x81, 0xeb, 0x05, 0x9b, 0xe8, 0xb3, 0x30, 0x46, 0xf7, 0x26, 0xd7, + 0x49, 0x1c, 0x21, 0xf7, 0x7e, 0x4c, 0x5b, 0x5b, 0x6a, 0xab, 0x98, 0x6f, 0x6f, 0x6f, 0x52, 0x40, + 0x3c, 0x4f, 0xa9, 0xe9, 0x6a, 0xbb, 0x7e, 0xeb, 0x5d, 0xd2, 0x4a, 0xae, 0x92, 0xc4, 0x49, 0x3f, + 0x27, 0x85, 0x61, 0xc5, 0x15, 0x5d, 0x86, 0x91, 0xc4, 0x89, 0x36, 0x49, 0x22, 0x04, 0x60, 0xae, + 0xa0, 0xe2, 0x25, 0x31, 0x5d, 0x91, 0x24, 0x68, 0x91, 0x74, 0x5b, 0x58, 0x67, 0x45, 0xb1, 0x60, + 0x61, 0xb7, 0x60, 0x62, 0xd9, 0x69, 0x3b, 0xb7, 0x3c, 0xdf, 0x4b, 0x3c, 0x12, 0xa3, 0xc7, 0xa1, + 0xec, 0xb8, 0x2e, 0x93, 0x0a, 0x95, 0xa5, 0x53, 0x07, 0xfb, 0xb5, 0xf2, 0xa2, 0x4b, 0xa7, 0x27, + 0x28, 0xaa, 0x3d, 0x4c, 0x29, 0xd0, 0x93, 0x30, 0xe4, 0x46, 0x61, 0xbb, 0x5a, 0x62, 0x94, 0xa7, + 0xe9, 0x4c, 0xae, 0x47, 0x61, 0x3b, 0x43, 0xca, 0x68, 0xec, 0x6f, 0x94, 0x00, 0x2d, 0x93, 0xf6, + 0xd6, 0x6a, 0xd3, 0x18, 0xc9, 0xf3, 0x30, 0xb6, 0x13, 0x06, 0x5e, 0x12, 0x46, 0xb1, 0xa8, 0x90, + 0x2d, 0x9b, 0xab, 0x02, 0x86, 0x15, 0x16, 0x9d, 0x83, 0xa1, 0x76, 0x2a, 0xf2, 0x26, 0xa4, 0xb8, + 0x64, 0xc2, 0x8e, 0x61, 0x28, 0x45, 0x27, 0x26, 0x91, 0x58, 0xee, 0x8a, 0xe2, 0x46, 0x4c, 0x22, + 0xcc, 0x30, 0xe9, 0xbc, 0xa1, 0x33, 0x4a, 0xcc, 0xc5, 0xcc, 0xbc, 0xa1, 0x18, 0xac, 0x51, 0xa1, + 0x1b, 0x50, 0xe1, 0xff, 0x30, 0xd9, 0x60, 0x2b, 0xbb, 0x40, 0x52, 0x5e, 0x09, 0x5b, 0x8e, 0x9f, + 0xed, 0xf2, 0x49, 0x36, 0xbb, 0x64, 0x71, 0x9c, 0x72, 0x32, 0x66, 0xd7, 0x48, 0xdf, 0xd9, 0xf5, + 0x4b, 0x16, 0xa0, 0x65, 0x2f, 0x70, 0x49, 0x74, 0x0c, 0x6a, 0xc2, 0xd1, 0x26, 0xfe, 0xbf, 0xa7, + 0x4d, 0x0b, 0x77, 0xda, 0x61, 0x40, 0x82, 0x64, 0x39, 0x0c, 0x5c, 0xae, 0x3a, 0x7c, 0x0a, 0x86, + 0x12, 0x5a, 0x15, 0x6f, 0xd6, 0x63, 0x72, 0x30, 0x68, 0x05, 0x87, 0xfb, 0xb5, 0xd3, 0xdd, 0x25, + 0x58, 0x13, 0x58, 0x19, 0xf4, 0xe3, 0x30, 0x12, 0x27, 0x4e, 0xd2, 0x89, 0x45, 0x43, 0x1f, 0x91, + 0x0d, 0x6d, 0x32, 0xe8, 0xe1, 0x7e, 0x6d, 0x5a, 0x15, 0xe3, 0x20, 0x2c, 0x0a, 0xa0, 0x27, 0x60, + 0x74, 0x87, 0xc4, 0xb1, 0xb3, 0x29, 0xa5, 0xfe, 0xb4, 0x28, 0x3b, 0x7a, 0x95, 0x83, 0xb1, 0xc4, + 0xa3, 0x47, 0x61, 0x98, 0x44, 0x51, 0x18, 0x89, 0x79, 0x30, 0x29, 0x08, 0x87, 0x57, 0x28, 0x10, + 0x73, 0x9c, 0xfd, 0xef, 0x2c, 0x98, 0x56, 0x6d, 0xe5, 0x75, 0x1d, 0xc3, 0xf2, 0x7e, 0x0b, 0xa0, + 0x25, 0x3f, 0x30, 0x66, 0xcb, 0x6b, 0xfc, 0xc2, 0x63, 0x79, 0x93, 0xae, 0xbb, 0x1b, 0x53, 0xce, + 0x0a, 0x14, 0x63, 0x8d, 0x9b, 0xfd, 0xcf, 0x2c, 0x38, 0x91, 0xf9, 0xa2, 0x2b, 0x5e, 0x9c, 0xa0, + 0xb7, 0xbb, 0xbe, 0x6a, 0x7e, 0xb0, 0xaf, 0xa2, 0xa5, 0xd9, 0x37, 0xa9, 0x59, 0x22, 0x21, 0xda, + 0x17, 0x5d, 0x82, 0x61, 0x2f, 0x21, 0x3b, 0xf2, 0x63, 0x1e, 0xed, 0xf9, 0x31, 0xbc, 0x55, 0xe9, + 0x88, 0xac, 0xd1, 0x92, 0x98, 0x33, 0xb0, 0xff, 0x87, 0x05, 0x95, 0xe5, 0x30, 0xd8, 0xf0, 0x36, + 0xaf, 0x3a, 0xed, 0x63, 0x18, 0x8b, 0x35, 0x18, 0x62, 0xdc, 0x79, 0xc3, 0x1f, 0xcf, 0x6f, 0xb8, + 0x68, 0xce, 0x3c, 0xdd, 0xbb, 0xb9, 0x8e, 0xa4, 0xc4, 0x0f, 0x05, 0x61, 0xc6, 0x62, 0xee, 0x45, + 0xa8, 0x28, 0x02, 0x34, 0x03, 0xe5, 0x6d, 0xc2, 0xf5, 0xe2, 0x0a, 0xa6, 0x3f, 0xd1, 0x49, 0x18, + 0xde, 0x75, 0xfc, 0x8e, 0x58, 0x9e, 0x98, 0xff, 0xf9, 0x54, 0xe9, 0x25, 0xcb, 0xfe, 0x3a, 0x5b, + 0x63, 0xa2, 0x92, 0x95, 0x60, 0x57, 0x2c, 0xff, 0xf7, 0xe1, 0xa4, 0x9f, 0x23, 0x75, 0x44, 0x47, + 0x0c, 0x2e, 0xa5, 0x1e, 0x12, 0x6d, 0x3d, 0x99, 0x87, 0xc5, 0xb9, 0x75, 0x50, 0xc1, 0x1d, 0xb6, + 0xe9, 0x8c, 0x72, 0x7c, 0xd6, 0x5e, 0xa1, 0xef, 0x5c, 0x17, 0x30, 0xac, 0xb0, 0x54, 0x40, 0x9c, + 0x54, 0x8d, 0xbf, 0x4c, 0xf6, 0x9a, 0xc4, 0x27, 0xad, 0x24, 0x8c, 0x3e, 0xd4, 0xe6, 0x3f, 0xcc, + 0x7b, 0x9f, 0xcb, 0x97, 0x71, 0xc1, 0xa0, 0x7c, 0x99, 0xec, 0xf1, 0xa1, 0xd0, 0xbf, 0xae, 0xdc, + 0xf3, 0xeb, 0x7e, 0xd3, 0x82, 0x49, 0xf5, 0x75, 0xc7, 0xb0, 0x90, 0x96, 0xcc, 0x85, 0xf4, 0x70, + 0xcf, 0xf9, 0x58, 0xb0, 0x84, 0x7e, 0xc0, 0x44, 0x80, 0xa0, 0x69, 0x44, 0x21, 0xed, 0x1a, 0x2a, + 0xb3, 0x3f, 0xcc, 0x01, 0x19, 0xe4, 0xbb, 0x2e, 0x93, 0xbd, 0xf5, 0x90, 0x6e, 0xf8, 0xf9, 0xdf, + 0x65, 0x8c, 0xda, 0x50, 0xcf, 0x51, 0xfb, 0xad, 0x12, 0x9c, 0x52, 0x3d, 0x60, 0x6c, 0xa9, 0x3f, + 0xec, 0x7d, 0xf0, 0x2c, 0x8c, 0xbb, 0x64, 0xc3, 0xe9, 0xf8, 0x89, 0x32, 0x7d, 0x86, 0xb9, 0xf9, + 0x5b, 0x4f, 0xc1, 0x58, 0xa7, 0x39, 0x42, 0xb7, 0xfd, 0x1b, 0x60, 0xb2, 0x37, 0x71, 0xe8, 0x0c, + 0xa6, 0xfa, 0x96, 0x66, 0xc0, 0x4e, 0xe8, 0x06, 0xac, 0x30, 0x56, 0x1f, 0x85, 0x61, 0x6f, 0x87, + 0xee, 0xc5, 0x25, 0x73, 0x8b, 0x5d, 0xa3, 0x40, 0xcc, 0x71, 0xe8, 0x13, 0x30, 0xda, 0x0a, 0x77, + 0x76, 0x9c, 0xc0, 0xad, 0x96, 0x99, 0x06, 0x38, 0x4e, 0xb7, 0xeb, 0x65, 0x0e, 0xc2, 0x12, 0x87, + 0x1e, 0x82, 0x21, 0x27, 0xda, 0x8c, 0xab, 0x43, 0x8c, 0x66, 0x8c, 0xd6, 0xb4, 0x18, 0x6d, 0xc6, + 0x98, 0x41, 0xa9, 0x66, 0x77, 0x3b, 0x8c, 0xb6, 0xbd, 0x60, 0xb3, 0xee, 0x45, 0x4c, 0x4d, 0xd3, + 0x34, 0xbb, 0x37, 0x14, 0x06, 0x6b, 0x54, 0x68, 0x15, 0x86, 0xdb, 0x61, 0x94, 0xc4, 0xd5, 0x11, + 0xd6, 0xdd, 0x8f, 0x14, 0x2c, 0x25, 0xfe, 0xb5, 0x8d, 0x30, 0x4a, 0xd2, 0x0f, 0xa0, 0xff, 0x62, + 0xcc, 0x8b, 0xa3, 0x1f, 0x87, 0x32, 0x09, 0x76, 0xab, 0xa3, 0x8c, 0xcb, 0x5c, 0x1e, 0x97, 0x95, + 0x60, 0xf7, 0xa6, 0x13, 0xa5, 0x72, 0x66, 0x25, 0xd8, 0xc5, 0xb4, 0x0c, 0x7a, 0x13, 0x2a, 0xd2, + 0xf9, 0x15, 0x57, 0xc7, 0x8a, 0xa7, 0x18, 0x16, 0x44, 0x98, 0xbc, 0xd7, 0xf1, 0x22, 0xb2, 0x43, + 0x82, 0x24, 0x4e, 0xcd, 0x17, 0x89, 0x8d, 0x71, 0xca, 0x0d, 0xbd, 0x09, 0x13, 0x5c, 0xf3, 0xbb, + 0x1a, 0x76, 0x82, 0x24, 0xae, 0x56, 0x58, 0xf3, 0x72, 0x3d, 0x25, 0x37, 0x53, 0xba, 0xa5, 0x93, + 0x82, 0xe9, 0x84, 0x06, 0x8c, 0xb1, 0xc1, 0x0a, 0x61, 0x98, 0xf4, 0xbd, 0x5d, 0x12, 0x90, 0x38, + 0x6e, 0x44, 0xe1, 0x2d, 0x52, 0x05, 0xd6, 0xf2, 0x33, 0xf9, 0x0e, 0x84, 0xf0, 0x16, 0x59, 0x9a, + 0x3d, 0xd8, 0xaf, 0x4d, 0x5e, 0xd1, 0xcb, 0x60, 0x93, 0x05, 0xba, 0x01, 0x53, 0x54, 0xa5, 0xf4, + 0x52, 0xa6, 0xe3, 0xfd, 0x98, 0xa2, 0x83, 0xfd, 0xda, 0x14, 0x36, 0x0a, 0xe1, 0x0c, 0x13, 0xf4, + 0x1a, 0x54, 0x7c, 0x6f, 0x83, 0xb4, 0xf6, 0x5a, 0x3e, 0xa9, 0x4e, 0x30, 0x8e, 0xb9, 0xcb, 0xea, + 0x8a, 0x24, 0xe2, 0x2a, 0xbb, 0xfa, 0x8b, 0xd3, 0xe2, 0xe8, 0x26, 0x9c, 0x4e, 0x48, 0xb4, 0xe3, + 0x05, 0x0e, 0x5d, 0x0e, 0x42, 0x9f, 0x64, 0x6e, 0x98, 0x49, 0x36, 0xdf, 0xce, 0x8a, 0xae, 0x3b, + 0xbd, 0x9e, 0x4b, 0x85, 0x0b, 0x4a, 0xa3, 0xeb, 0x30, 0xcd, 0x56, 0x42, 0xa3, 0xe3, 0xfb, 0x8d, + 0xd0, 0xf7, 0x5a, 0x7b, 0xd5, 0x29, 0xc6, 0xf0, 0x13, 0xd2, 0xcf, 0xb2, 0x66, 0xa2, 0xa9, 0x81, + 0x95, 0xfe, 0xc3, 0xd9, 0xd2, 0xe8, 0x16, 0xb3, 0xbb, 0x3b, 0x91, 0x97, 0xec, 0xd1, 0xf9, 0x4b, + 0xee, 0x24, 0xd5, 0xe9, 0x62, 0x33, 0xb1, 0x69, 0x92, 0x2a, 0xe3, 0x5c, 0x07, 0xe2, 0x2c, 0x43, + 0xba, 0xb4, 0xe3, 0xc4, 0xf5, 0x82, 0xea, 0x0c, 0x93, 0x18, 0x6a, 0x65, 0x34, 0x29, 0x10, 0x73, + 0x1c, 0xb3, 0xb9, 0xe9, 0x8f, 0xeb, 0x54, 0x82, 0xce, 0x32, 0xc2, 0xd4, 0xe6, 0x96, 0x08, 0x9c, + 0xd2, 0xd0, 0x6d, 0x39, 0x49, 0xf6, 0xaa, 0x88, 0x91, 0xaa, 0xe5, 0xb2, 0xbe, 0xfe, 0x26, 0xa6, + 0x70, 0x74, 0x05, 0x46, 0x49, 0xb0, 0xbb, 0x1a, 0x85, 0x3b, 0xd5, 0x13, 0xc5, 0x6b, 0x76, 0x85, + 0x93, 0x70, 0x81, 0x9e, 0x1a, 0x00, 0x02, 0x8c, 0x25, 0x0b, 0x74, 0x07, 0xaa, 0x39, 0x23, 0xc2, + 0x07, 0xe0, 0x24, 0x1b, 0x80, 0x57, 0x44, 0xd9, 0xea, 0x7a, 0x01, 0xdd, 0x61, 0x0f, 0x1c, 0x2e, + 0xe4, 0x6e, 0xdf, 0x82, 0x29, 0x25, 0x58, 0xd8, 0xd8, 0xa2, 0x1a, 0x0c, 0x53, 0x89, 0x29, 0x8d, + 0xe0, 0x0a, 0xed, 0x4a, 0xe6, 0x09, 0xc1, 0x1c, 0xce, 0xba, 0xd2, 0x7b, 0x9f, 0x2c, 0xed, 0x25, + 0x84, 0x9b, 0x45, 0x65, 0xad, 0x2b, 0x25, 0x02, 0xa7, 0x34, 0xf6, 0xff, 0xe1, 0x8a, 0x49, 0x2a, + 0xbd, 0x06, 0x90, 0xd7, 0x4f, 0xc3, 0xd8, 0x56, 0x18, 0x27, 0x94, 0x9a, 0xd5, 0x31, 0x9c, 0xaa, + 0x22, 0x97, 0x04, 0x1c, 0x2b, 0x0a, 0xf4, 0x32, 0x4c, 0xb6, 0xf4, 0x0a, 0xc4, 0x66, 0x73, 0x4a, + 0x14, 0x31, 0x6b, 0xc7, 0x26, 0x2d, 0x7a, 0x09, 0xc6, 0x98, 0x3f, 0xbc, 0x15, 0xfa, 0xc2, 0x00, + 0x93, 0x3b, 0xe6, 0x58, 0x43, 0xc0, 0x0f, 0xb5, 0xdf, 0x58, 0x51, 0x53, 0x33, 0x96, 0x36, 0x61, + 0xad, 0x21, 0xc4, 0xbc, 0x32, 0x63, 0x2f, 0x31, 0x28, 0x16, 0x58, 0xfb, 0xaf, 0x97, 0xb4, 0x5e, + 0xa6, 0x26, 0x05, 0x41, 0x0d, 0x18, 0xbd, 0xed, 0x78, 0x89, 0x17, 0x6c, 0x8a, 0xfd, 0xfc, 0x89, + 0x9e, 0x32, 0x9f, 0x15, 0x7a, 0x83, 0x17, 0xe0, 0xbb, 0x92, 0xf8, 0x83, 0x25, 0x1b, 0xca, 0x31, + 0xea, 0x04, 0x01, 0xe5, 0x58, 0x1a, 0x94, 0x23, 0xe6, 0x05, 0x38, 0x47, 0xf1, 0x07, 0x4b, 0x36, + 0xe8, 0x6d, 0x00, 0x39, 0x6f, 0x88, 0x2b, 0xfc, 0xd0, 0x4f, 0xf7, 0x67, 0xba, 0xae, 0xca, 0x2c, + 0x4d, 0xd1, 0x3d, 0x2f, 0xfd, 0x8f, 0x35, 0x7e, 0x76, 0xc2, 0xf4, 0x9e, 0xee, 0xc6, 0xa0, 0xcf, + 0xd0, 0xa5, 0xea, 0x44, 0x09, 0x71, 0x17, 0x13, 0xd1, 0x39, 0x4f, 0x0e, 0xa6, 0xb6, 0xae, 0x7b, + 0x3b, 0x44, 0x5f, 0xd6, 0x82, 0x09, 0x4e, 0xf9, 0xd9, 0xbf, 0x53, 0x86, 0x6a, 0x51, 0x73, 0xe9, + 0xa4, 0x23, 0x77, 0xbc, 0x64, 0x99, 0xaa, 0x2b, 0x96, 0x39, 0xe9, 0x56, 0x04, 0x1c, 0x2b, 0x0a, + 0x3a, 0xfa, 0xb1, 0xb7, 0x29, 0xad, 0x8e, 0xe1, 0x74, 0xf4, 0x9b, 0x0c, 0x8a, 0x05, 0x96, 0xd2, + 0x45, 0xc4, 0x89, 0xc5, 0x41, 0x87, 0x36, 0x4b, 0x30, 0x83, 0x62, 0x81, 0xd5, 0x1d, 0x06, 0x43, + 0x7d, 0x1c, 0x06, 0x46, 0x17, 0x0d, 0xdf, 0xdb, 0x2e, 0x42, 0xef, 0x00, 0x6c, 0x78, 0x81, 0x17, + 0x6f, 0x31, 0xee, 0x23, 0x47, 0xe6, 0xae, 0x94, 0x9d, 0x55, 0xc5, 0x05, 0x6b, 0x1c, 0xd1, 0x0b, + 0x30, 0xae, 0x16, 0xe0, 0x5a, 0xbd, 0x3a, 0x6a, 0x7a, 0xd1, 0x53, 0x69, 0x54, 0xc7, 0x3a, 0x9d, + 0xfd, 0x6e, 0x76, 0xbe, 0x88, 0x15, 0xa0, 0xf5, 0xaf, 0x35, 0x68, 0xff, 0x96, 0x7a, 0xf7, 0xaf, + 0xfd, 0x07, 0x65, 0x98, 0x36, 0x2a, 0xeb, 0xc4, 0x03, 0xc8, 0xac, 0x8b, 0x74, 0x23, 0x72, 0x12, + 0x22, 0xd6, 0x9f, 0xdd, 0x7f, 0xa9, 0xe8, 0x9b, 0x15, 0x5d, 0x01, 0xbc, 0x3c, 0x7a, 0x07, 0x2a, + 0xbe, 0x13, 0x33, 0xe7, 0x03, 0x11, 0xeb, 0x6e, 0x10, 0x66, 0xa9, 0xa2, 0xef, 0xc4, 0x89, 0xb6, + 0x17, 0x70, 0xde, 0x29, 0x4b, 0xba, 0x63, 0x52, 0xe5, 0x44, 0x9e, 0xa4, 0xa9, 0x46, 0x50, 0x0d, + 0x66, 0x0f, 0x73, 0x1c, 0x7a, 0x09, 0x26, 0x22, 0xc2, 0x66, 0xc5, 0x32, 0xd5, 0xb5, 0xd8, 0x34, + 0x1b, 0x4e, 0x95, 0x32, 0xac, 0xe1, 0xb0, 0x41, 0x99, 0xea, 0xda, 0x23, 0x3d, 0x74, 0xed, 0x27, + 0x60, 0x94, 0xfd, 0x50, 0x33, 0x40, 0x8d, 0xc6, 0x1a, 0x07, 0x63, 0x89, 0xcf, 0x4e, 0x98, 0xb1, + 0x01, 0x27, 0xcc, 0x93, 0x30, 0x55, 0x77, 0xc8, 0x4e, 0x18, 0xac, 0x04, 0x6e, 0x3b, 0xf4, 0x82, + 0x04, 0x55, 0x61, 0x88, 0xed, 0x0e, 0x7c, 0x6d, 0x0f, 0x51, 0x0e, 0x78, 0x88, 0x6a, 0xce, 0xf6, + 0x1f, 0x97, 0x60, 0xb2, 0x4e, 0x7c, 0x92, 0x10, 0x6e, 0x6b, 0xc4, 0x68, 0x15, 0xd0, 0x66, 0xe4, + 0xb4, 0x48, 0x83, 0x44, 0x5e, 0xe8, 0x36, 0x49, 0x2b, 0x0c, 0xd8, 0xf9, 0x14, 0xdd, 0xee, 0x4e, + 0x1f, 0xec, 0xd7, 0xd0, 0xc5, 0x2e, 0x2c, 0xce, 0x29, 0x81, 0xde, 0x82, 0xc9, 0x76, 0x44, 0x0c, + 0x1f, 0x9a, 0x55, 0xa4, 0x2e, 0x34, 0x74, 0x42, 0xae, 0xa9, 0x1a, 0x20, 0x6c, 0xb2, 0x42, 0x3f, + 0x09, 0x33, 0x61, 0xd4, 0xde, 0x72, 0x82, 0x3a, 0x69, 0x93, 0xc0, 0xa5, 0xaa, 0xb8, 0xf0, 0x11, + 0x9c, 0x3c, 0xd8, 0xaf, 0xcd, 0x5c, 0xcf, 0xe0, 0x70, 0x17, 0x35, 0x7a, 0x0b, 0x66, 0xdb, 0x51, + 0xd8, 0x76, 0x36, 0xd9, 0x44, 0x11, 0x1a, 0x07, 0x97, 0x3e, 0x4f, 0x1f, 0xec, 0xd7, 0x66, 0x1b, + 0x59, 0xe4, 0xe1, 0x7e, 0xed, 0x04, 0xeb, 0x28, 0x0a, 0x49, 0x91, 0xb8, 0x9b, 0x8d, 0xbd, 0x09, + 0xa7, 0xea, 0xe1, 0xed, 0xe0, 0xb6, 0x13, 0xb9, 0x8b, 0x8d, 0x35, 0xcd, 0xb8, 0xbf, 0x26, 0x8d, + 0x4b, 0x7e, 0xda, 0x97, 0xbb, 0x4f, 0x69, 0x25, 0xb9, 0xfa, 0xbf, 0xea, 0xf9, 0xa4, 0xc0, 0x89, + 0xf0, 0x37, 0x4b, 0x46, 0x4d, 0x29, 0xbd, 0xf2, 0xd4, 0x5b, 0x85, 0x9e, 0xfa, 0xd7, 0x61, 0x6c, + 0xc3, 0x23, 0xbe, 0x8b, 0xc9, 0x86, 0x18, 0x99, 0xc7, 0x8b, 0x0f, 0x30, 0x56, 0x29, 0xa5, 0x74, + 0x1a, 0x71, 0xd3, 0x74, 0x55, 0x14, 0xc6, 0x8a, 0x0d, 0xda, 0x86, 0x19, 0x69, 0xfb, 0x48, 0xac, + 0x58, 0xc4, 0x4f, 0xf4, 0x32, 0xa8, 0x4c, 0xe6, 0x6c, 0x00, 0x71, 0x86, 0x0d, 0xee, 0x62, 0x4c, + 0x6d, 0xd1, 0x1d, 0xba, 0x5d, 0x0d, 0xb1, 0x29, 0xcd, 0x6c, 0x51, 0x66, 0x56, 0x33, 0xa8, 0xfd, + 0x15, 0x0b, 0x1e, 0xe8, 0xea, 0x19, 0xe1, 0x5e, 0xb8, 0xc7, 0xa3, 0x90, 0x35, 0xf7, 0x4b, 0xfd, + 0xcd, 0x7d, 0xfb, 0x37, 0x2c, 0x38, 0xb9, 0xb2, 0xd3, 0x4e, 0xf6, 0xea, 0x9e, 0x79, 0x9a, 0xf0, + 0x22, 0x8c, 0xec, 0x10, 0xd7, 0xeb, 0xec, 0x88, 0x91, 0xab, 0x49, 0x91, 0x7e, 0x95, 0x41, 0x0f, + 0xf7, 0x6b, 0x93, 0xcd, 0x24, 0x8c, 0x9c, 0x4d, 0xc2, 0x01, 0x58, 0x90, 0xa3, 0x9f, 0xe1, 0xba, + 0xe9, 0x15, 0x6f, 0xc7, 0x93, 0x07, 0x52, 0x3d, 0x5d, 0x5e, 0xf3, 0xb2, 0x43, 0xe7, 0x5f, 0xef, + 0x38, 0x41, 0xe2, 0x25, 0x7b, 0xa6, 0x2e, 0xcb, 0x18, 0xe1, 0x94, 0xa7, 0xfd, 0x6d, 0x0b, 0xa6, + 0xa5, 0x3c, 0x59, 0x74, 0xdd, 0x88, 0xc4, 0x31, 0x9a, 0x83, 0x92, 0xd7, 0x16, 0x2d, 0x05, 0x51, + 0xba, 0xb4, 0xd6, 0xc0, 0x25, 0xaf, 0x8d, 0x1a, 0x50, 0xe1, 0x67, 0x5b, 0xe9, 0x04, 0x1b, 0xe8, + 0x84, 0x8c, 0xd9, 0x7e, 0xeb, 0xb2, 0x24, 0x4e, 0x99, 0x48, 0xcd, 0x98, 0xed, 0x45, 0x65, 0xf3, + 0xa4, 0xe5, 0x92, 0x80, 0x63, 0x45, 0x81, 0xce, 0xc3, 0x58, 0x10, 0xba, 0xfc, 0xa8, 0x91, 0xaf, + 0x6b, 0x36, 0x6d, 0xaf, 0x09, 0x18, 0x56, 0x58, 0xfb, 0xe7, 0x2d, 0x98, 0x90, 0x5f, 0x36, 0xa0, + 0x92, 0x4e, 0x97, 0x57, 0xaa, 0xa0, 0xa7, 0xcb, 0x8b, 0x2a, 0xd9, 0x0c, 0x63, 0xe8, 0xd6, 0xe5, + 0xa3, 0xe8, 0xd6, 0xf6, 0x97, 0x4b, 0x30, 0x25, 0x9b, 0xd3, 0xec, 0xdc, 0x8a, 0x49, 0x82, 0xd6, + 0xa1, 0xe2, 0xf0, 0x2e, 0x27, 0x72, 0xd6, 0x3e, 0x9a, 0x6f, 0x75, 0x19, 0xe3, 0x93, 0x8e, 0xe8, + 0xa2, 0x2c, 0x8d, 0x53, 0x46, 0xc8, 0x87, 0xd9, 0x20, 0x4c, 0xd8, 0xd6, 0xa7, 0xf0, 0xbd, 0xce, + 0x06, 0xb2, 0xdc, 0xcf, 0x08, 0xee, 0xb3, 0xd7, 0xb2, 0x5c, 0x70, 0x37, 0x63, 0xb4, 0x22, 0x3d, + 0x3d, 0x65, 0x56, 0xc3, 0xb9, 0x5e, 0x35, 0x14, 0x3b, 0x7a, 0xec, 0xdf, 0xb7, 0xa0, 0x22, 0xc9, + 0x8e, 0xe3, 0x18, 0xe8, 0x2a, 0x8c, 0xc6, 0x6c, 0x10, 0x64, 0xd7, 0xd8, 0xbd, 0x1a, 0xce, 0xc7, + 0x2b, 0xdd, 0xd1, 0xf9, 0xff, 0x18, 0x4b, 0x1e, 0xcc, 0x55, 0xad, 0x9a, 0xff, 0x11, 0x71, 0x55, + 0xab, 0xf6, 0x14, 0xec, 0x32, 0xff, 0x99, 0xb5, 0x59, 0xb3, 0xe7, 0xa9, 0xe2, 0xd9, 0x8e, 0xc8, + 0x86, 0x77, 0x27, 0xab, 0x78, 0x36, 0x18, 0x14, 0x0b, 0x2c, 0x7a, 0x1b, 0x26, 0x5a, 0xd2, 0xc3, + 0x9b, 0x8a, 0x81, 0xc7, 0x7a, 0xfa, 0xcb, 0xd5, 0xd1, 0x0a, 0x0f, 0x43, 0x5a, 0xd6, 0xca, 0x63, + 0x83, 0x1b, 0x95, 0x30, 0xe9, 0xa9, 0x70, 0xb9, 0xa7, 0x73, 0x25, 0x22, 0x49, 0xca, 0xb7, 0xf0, + 0x40, 0xd8, 0xfe, 0x15, 0x0b, 0x46, 0xb8, 0x9f, 0x70, 0x30, 0xc7, 0xaa, 0x76, 0x54, 0x94, 0xf6, + 0xdd, 0x4d, 0x0a, 0x14, 0x27, 0x47, 0xe8, 0x2a, 0x54, 0xd8, 0x0f, 0xe6, 0x2f, 0x29, 0x17, 0xc7, + 0x5f, 0xf1, 0x5a, 0xf5, 0x06, 0xde, 0x94, 0xc5, 0x70, 0xca, 0xc1, 0xfe, 0xc5, 0x32, 0x15, 0x55, + 0x29, 0xa9, 0xb1, 0x8b, 0x5b, 0xf7, 0x6f, 0x17, 0x2f, 0xdd, 0xaf, 0x5d, 0x7c, 0x13, 0xa6, 0x5b, + 0xda, 0xb9, 0x54, 0x3a, 0x92, 0xe7, 0x7b, 0x4e, 0x12, 0xed, 0x08, 0x8b, 0xfb, 0xca, 0x96, 0x4d, + 0x26, 0x38, 0xcb, 0x15, 0x7d, 0x06, 0x26, 0xf8, 0x38, 0x8b, 0x5a, 0x86, 0x58, 0x2d, 0x9f, 0x28, + 0x9e, 0x2f, 0x7a, 0x15, 0x6c, 0x26, 0x36, 0xb5, 0xe2, 0xd8, 0x60, 0x66, 0x7f, 0x71, 0x18, 0x86, + 0x57, 0x76, 0x49, 0x90, 0x1c, 0x83, 0x40, 0x6a, 0xc1, 0x94, 0x17, 0xec, 0x86, 0xfe, 0x2e, 0x71, + 0x39, 0xfe, 0x28, 0x9b, 0xeb, 0x69, 0xc1, 0x7a, 0x6a, 0xcd, 0x60, 0x81, 0x33, 0x2c, 0xef, 0x87, + 0xe5, 0x7e, 0x11, 0x46, 0xf8, 0xd8, 0x0b, 0xb3, 0x3d, 0xd7, 0x0b, 0xce, 0x3a, 0x51, 0xac, 0x82, + 0xd4, 0xab, 0xc0, 0xdd, 0xee, 0xa2, 0x38, 0x7a, 0x17, 0xa6, 0x36, 0xbc, 0x28, 0x4e, 0xa8, 0xc9, + 0x1d, 0x27, 0xce, 0x4e, 0xfb, 0x2e, 0x2c, 0x75, 0xd5, 0x0f, 0xab, 0x06, 0x27, 0x9c, 0xe1, 0x8c, + 0x36, 0x61, 0x92, 0x1a, 0x8f, 0x69, 0x55, 0xa3, 0x47, 0xae, 0x4a, 0xb9, 0xe2, 0xae, 0xe8, 0x8c, + 0xb0, 0xc9, 0x97, 0x0a, 0x93, 0x16, 0x33, 0x36, 0xc7, 0x98, 0x46, 0xa1, 0x84, 0x09, 0xb7, 0x32, + 0x39, 0x8e, 0xca, 0x24, 0x16, 0xcf, 0x51, 0x31, 0x65, 0x52, 0x1a, 0xb5, 0x61, 0x7f, 0x95, 0xee, + 0x8e, 0xb4, 0x0f, 0x8f, 0x61, 0x6b, 0x79, 0xd5, 0xdc, 0x5a, 0xce, 0x14, 0x8e, 0x67, 0xc1, 0xb6, + 0xf2, 0x59, 0x18, 0xd7, 0x86, 0x1b, 0x2d, 0x40, 0xa5, 0x25, 0x83, 0x0f, 0x84, 0xd4, 0x55, 0xea, + 0x8b, 0x8a, 0x4a, 0xc0, 0x29, 0x0d, 0xed, 0x0d, 0xaa, 0xec, 0x65, 0x83, 0x91, 0xa8, 0x2a, 0x88, + 0x19, 0xc6, 0x7e, 0x0e, 0x60, 0xe5, 0x0e, 0x69, 0x2d, 0x72, 0xe3, 0x4b, 0x3b, 0xe3, 0xb2, 0x8a, + 0xcf, 0xb8, 0xec, 0x3f, 0xb1, 0x60, 0x6a, 0x75, 0xd9, 0x50, 0xca, 0xe7, 0x01, 0xb8, 0x16, 0xfa, + 0xc6, 0x1b, 0xd7, 0xa4, 0x77, 0x98, 0x3b, 0xf8, 0x14, 0x14, 0x6b, 0x14, 0xe8, 0x0c, 0x94, 0xfd, + 0x4e, 0x20, 0x94, 0xc3, 0xd1, 0x83, 0xfd, 0x5a, 0xf9, 0x4a, 0x27, 0xc0, 0x14, 0xa6, 0xc5, 0xff, + 0x94, 0x07, 0x8e, 0xff, 0xe9, 0x1b, 0xf5, 0x8b, 0x6a, 0x30, 0x7c, 0xfb, 0xb6, 0xe7, 0xc6, 0xd5, + 0xe1, 0xd4, 0x73, 0xfd, 0xc6, 0x1b, 0x6b, 0xf5, 0x18, 0x73, 0xb8, 0xfd, 0xff, 0x97, 0x61, 0x66, + 0xd5, 0x27, 0x77, 0x8c, 0xcf, 0x7a, 0x0c, 0x46, 0xdc, 0xc8, 0xdb, 0x25, 0x51, 0x76, 0x17, 0xaf, + 0x33, 0x28, 0x16, 0xd8, 0x81, 0x63, 0x96, 0x6e, 0x74, 0xef, 0xc7, 0xf7, 0x3a, 0x4a, 0xab, 0x7f, + 0x57, 0xbc, 0x0d, 0xa3, 0xfc, 0xa8, 0x94, 0x77, 0xc6, 0xf8, 0x85, 0x67, 0xf3, 0x9a, 0x90, 0xed, + 0x8b, 0x79, 0xe1, 0xfc, 0xe0, 0x71, 0x23, 0x4a, 0x88, 0x09, 0x28, 0x96, 0x2c, 0xe7, 0x3e, 0x05, + 0x13, 0x3a, 0xe5, 0x91, 0x02, 0x48, 0xfe, 0x92, 0x05, 0x27, 0x56, 0xfd, 0xb0, 0xb5, 0x9d, 0x09, + 0x20, 0x7b, 0x01, 0xc6, 0xe9, 0x7a, 0x8a, 0x8d, 0x48, 0x4a, 0x23, 0xb6, 0x56, 0xa0, 0xb0, 0x4e, + 0xa7, 0x15, 0xbb, 0x71, 0x63, 0xad, 0x9e, 0x17, 0x92, 0x2b, 0x50, 0x58, 0xa7, 0xb3, 0xff, 0xd0, + 0x82, 0x87, 0x2f, 0x2e, 0xaf, 0xa4, 0x01, 0xac, 0x5d, 0x51, 0xc1, 0x54, 0xb9, 0x73, 0xb5, 0xa6, + 0xa4, 0xca, 0x5d, 0x9d, 0xb5, 0x42, 0x60, 0x3f, 0x2a, 0x11, 0xef, 0xbf, 0x66, 0xc1, 0x89, 0x8b, + 0x5e, 0x82, 0x49, 0x3b, 0xcc, 0xc6, 0xa7, 0x46, 0xa4, 0x1d, 0xc6, 0x5e, 0x12, 0x46, 0x7b, 0xd9, + 0xf8, 0x54, 0xac, 0x30, 0x58, 0xa3, 0xe2, 0x35, 0xef, 0x7a, 0x31, 0x6d, 0x69, 0xc9, 0xb4, 0x30, + 0xb1, 0x80, 0x63, 0x45, 0x41, 0x3f, 0xcc, 0xf5, 0x22, 0xa6, 0x21, 0xec, 0x89, 0xe5, 0xac, 0x3e, + 0xac, 0x2e, 0x11, 0x38, 0xa5, 0xb1, 0xbf, 0x62, 0xc1, 0xa9, 0x8b, 0x7e, 0x27, 0x4e, 0x48, 0xb4, + 0x11, 0x1b, 0x8d, 0x7d, 0x0e, 0x2a, 0x44, 0x6a, 0xe1, 0xa2, 0xad, 0x6a, 0xdf, 0x50, 0xea, 0x39, + 0x0f, 0x8e, 0x55, 0x74, 0x03, 0x44, 0x63, 0x1e, 0x2d, 0x8a, 0xf0, 0x6b, 0x25, 0x98, 0xbc, 0xb4, + 0xbe, 0xde, 0xb8, 0x48, 0x12, 0x21, 0x32, 0xfb, 0x7b, 0x91, 0xb0, 0x66, 0x08, 0xf7, 0xd2, 0x75, + 0x3a, 0x89, 0xe7, 0xcf, 0xf3, 0xdb, 0x18, 0xf3, 0x6b, 0x41, 0x72, 0x3d, 0x6a, 0x26, 0x91, 0x17, + 0x6c, 0xe6, 0x9a, 0xce, 0x52, 0xb0, 0x97, 0x8b, 0x04, 0x3b, 0x7a, 0x0e, 0x46, 0xd8, 0x75, 0x10, + 0xa9, 0x75, 0x3c, 0xa8, 0x54, 0x05, 0x06, 0x3d, 0xdc, 0xaf, 0x55, 0x6e, 0xe0, 0x35, 0xfe, 0x07, + 0x0b, 0x52, 0x74, 0x03, 0xc6, 0xb7, 0x92, 0xa4, 0x7d, 0x89, 0x38, 0x2e, 0x89, 0xa4, 0x74, 0x38, + 0x9b, 0x27, 0x1d, 0x68, 0x27, 0x70, 0xb2, 0x74, 0x41, 0xa5, 0xb0, 0x18, 0xeb, 0x7c, 0xec, 0x26, + 0x40, 0x8a, 0xbb, 0x47, 0x66, 0x83, 0xfd, 0x7d, 0x0b, 0x46, 0x2f, 0x39, 0x81, 0xeb, 0x93, 0x08, + 0xbd, 0x02, 0x43, 0xe4, 0x0e, 0x69, 0x89, 0x1d, 0x3c, 0xb7, 0xc1, 0xe9, 0x2e, 0xc7, 0x1d, 0x61, + 0xf4, 0x3f, 0x66, 0xa5, 0xd0, 0x25, 0x18, 0xa5, 0xad, 0xbd, 0xa8, 0xc2, 0x94, 0x1f, 0x29, 0xfa, + 0x62, 0x35, 0xec, 0x7c, 0x63, 0x14, 0x20, 0x2c, 0x8b, 0x33, 0x87, 0x4e, 0xab, 0xdd, 0xa4, 0x02, + 0x2c, 0xe9, 0x65, 0x6e, 0xad, 0x2f, 0x37, 0x38, 0x91, 0xe0, 0xc6, 0x1d, 0x3a, 0x12, 0x88, 0x53, + 0x26, 0xf6, 0x3a, 0x54, 0xe8, 0xa0, 0x2e, 0xfa, 0x9e, 0xd3, 0xdb, 0x97, 0xf4, 0x14, 0x54, 0xa4, + 0x5f, 0x27, 0x16, 0x91, 0xce, 0x8c, 0xab, 0x74, 0xfb, 0xc4, 0x38, 0xc5, 0xdb, 0x1b, 0x70, 0x92, + 0x1d, 0x94, 0x3a, 0xc9, 0x96, 0xb1, 0xc6, 0xfa, 0x4f, 0xe6, 0xa7, 0x85, 0x7e, 0xc5, 0x47, 0xa6, + 0xaa, 0xc5, 0xca, 0x4e, 0x48, 0x8e, 0x9a, 0xae, 0xf5, 0x1f, 0x87, 0x60, 0x76, 0xad, 0xb9, 0xdc, + 0x34, 0x9d, 0x8b, 0x2f, 0xc1, 0x04, 0xd7, 0x04, 0xe8, 0x84, 0x76, 0x7c, 0x51, 0x9b, 0x3a, 0x3c, + 0x58, 0xd7, 0x70, 0xd8, 0xa0, 0x44, 0x0f, 0x43, 0xd9, 0x7b, 0x2f, 0xc8, 0x86, 0xc3, 0xad, 0xbd, + 0x7e, 0x0d, 0x53, 0x38, 0x45, 0x53, 0xa5, 0x82, 0x0b, 0x50, 0x85, 0x56, 0x8a, 0xc5, 0xab, 0x30, + 0xe5, 0xc5, 0xad, 0xd8, 0x5b, 0x0b, 0xa8, 0x74, 0x49, 0xc3, 0xfc, 0x53, 0x8d, 0x9f, 0x36, 0x55, + 0x61, 0x71, 0x86, 0x5a, 0x93, 0xe6, 0xc3, 0x03, 0x2b, 0x26, 0x7d, 0x63, 0xa6, 0xa9, 0xce, 0xd5, + 0x66, 0x5f, 0x17, 0xb3, 0xd0, 0x1c, 0xa1, 0x73, 0xf1, 0x0f, 0x8e, 0xb1, 0xc4, 0xa1, 0x8b, 0x30, + 0xdb, 0xda, 0x72, 0xda, 0x8b, 0x9d, 0x64, 0xab, 0xee, 0xc5, 0xad, 0x70, 0x97, 0x44, 0x7b, 0x4c, + 0x13, 0x1e, 0x4b, 0x9d, 0x4c, 0x0a, 0xb1, 0x7c, 0x69, 0xb1, 0x41, 0x29, 0x71, 0x77, 0x19, 0x53, + 0x05, 0x81, 0x7b, 0xa6, 0x82, 0x2c, 0xc2, 0xb4, 0xac, 0xab, 0x49, 0x62, 0xb6, 0x3d, 0x8c, 0xb3, + 0xd6, 0xa9, 0x5b, 0x38, 0x02, 0xac, 0xda, 0x96, 0xa5, 0x47, 0x2f, 0xc2, 0xa4, 0x17, 0x78, 0x89, + 0xe7, 0x24, 0x61, 0xc4, 0x36, 0xd7, 0x09, 0xbe, 0x61, 0x50, 0x09, 0xbf, 0xa6, 0x23, 0xb0, 0x49, + 0x67, 0xbf, 0x0b, 0x15, 0x15, 0x6f, 0x26, 0x43, 0x26, 0xad, 0x82, 0x90, 0xc9, 0xfe, 0x3b, 0x82, + 0xf4, 0x9a, 0x97, 0x73, 0xbd, 0xe6, 0x7f, 0xcb, 0x82, 0x34, 0xec, 0x06, 0x5d, 0x82, 0x4a, 0x3b, + 0x64, 0x27, 0x67, 0x91, 0x3c, 0x8e, 0x7e, 0x30, 0x57, 0x78, 0x70, 0x41, 0xc5, 0xfb, 0xaf, 0x21, + 0x4b, 0xe0, 0xb4, 0x30, 0x5a, 0x82, 0xd1, 0x76, 0x44, 0x9a, 0x09, 0xbb, 0xa7, 0xd0, 0x97, 0x0f, + 0x9f, 0x23, 0x9c, 0x1e, 0xcb, 0x82, 0xf6, 0x6f, 0x59, 0x00, 0xdc, 0x29, 0xed, 0x04, 0x9b, 0xe4, + 0x18, 0x0c, 0xed, 0x3a, 0x0c, 0xc5, 0x6d, 0xd2, 0xea, 0x75, 0xa6, 0x99, 0xb6, 0xa7, 0xd9, 0x26, + 0xad, 0xb4, 0xc3, 0xe9, 0x3f, 0xcc, 0x4a, 0xdb, 0x3f, 0x07, 0x30, 0x95, 0x92, 0x51, 0x03, 0x08, + 0x3d, 0x63, 0x84, 0xe5, 0x9f, 0xc9, 0x84, 0xe5, 0x57, 0x18, 0xb5, 0x16, 0x89, 0xff, 0x2e, 0x94, + 0x77, 0x9c, 0x3b, 0xc2, 0xca, 0x7a, 0xaa, 0x77, 0x33, 0x28, 0xff, 0xf9, 0xab, 0xce, 0x1d, 0xae, + 0xc7, 0x3e, 0x25, 0x27, 0xc8, 0x55, 0xe7, 0xce, 0x21, 0x3f, 0xb9, 0x64, 0x42, 0x8a, 0x1a, 0x73, + 0x9f, 0xff, 0x6e, 0xfa, 0x9f, 0x4d, 0x3b, 0x5a, 0x09, 0xab, 0xcb, 0x0b, 0x84, 0x8b, 0x76, 0xa0, + 0xba, 0xbc, 0x20, 0x5b, 0x97, 0x17, 0x0c, 0x50, 0x97, 0x17, 0xa0, 0xf7, 0x61, 0x54, 0x1c, 0x89, + 0xb0, 0x78, 0xc2, 0xf1, 0x0b, 0x0b, 0x03, 0xd4, 0x27, 0x4e, 0x54, 0x78, 0x9d, 0x0b, 0x52, 0x4f, + 0x17, 0xd0, 0xbe, 0xf5, 0xca, 0x0a, 0xd1, 0xdf, 0xb0, 0x60, 0x4a, 0xfc, 0xc6, 0xe4, 0xbd, 0x0e, + 0x89, 0x13, 0xa1, 0x0f, 0x7c, 0x72, 0xf0, 0x36, 0x88, 0x82, 0xbc, 0x29, 0x9f, 0x94, 0x62, 0xd6, + 0x44, 0xf6, 0x6d, 0x51, 0xa6, 0x15, 0xe8, 0x1f, 0x5b, 0x70, 0x72, 0xc7, 0xb9, 0xc3, 0x6b, 0xe4, + 0x30, 0xec, 0x24, 0x5e, 0x28, 0xe2, 0x23, 0x5f, 0x19, 0x6c, 0xf8, 0xbb, 0x8a, 0xf3, 0x46, 0xca, + 0x50, 0xaa, 0x93, 0x79, 0x24, 0x7d, 0x9b, 0x9a, 0xdb, 0xae, 0xb9, 0x0d, 0x18, 0x93, 0xf3, 0x2d, + 0xc7, 0x1a, 0xaa, 0xeb, 0xca, 0xce, 0x91, 0x4f, 0xa4, 0x34, 0xeb, 0x89, 0xd5, 0x23, 0xe6, 0xda, + 0x7d, 0xad, 0xe7, 0x5d, 0x98, 0xd0, 0xe7, 0xd8, 0x7d, 0xad, 0xeb, 0x3d, 0x38, 0x91, 0x33, 0x97, + 0xee, 0x6b, 0x95, 0xb7, 0xe1, 0x4c, 0xe1, 0xfc, 0xb8, 0x9f, 0x15, 0xdb, 0x5f, 0xb3, 0x74, 0x39, + 0x78, 0x0c, 0xee, 0xa9, 0x65, 0xd3, 0x3d, 0x75, 0xb6, 0xf7, 0xca, 0x29, 0xf0, 0x51, 0xbd, 0xad, + 0x37, 0x9a, 0x4a, 0x75, 0xf4, 0x1a, 0x8c, 0xf8, 0x14, 0x22, 0xcf, 0xe1, 0xec, 0xfe, 0x2b, 0x32, + 0xd5, 0xa5, 0x18, 0x3c, 0xc6, 0x82, 0x83, 0xfd, 0xbb, 0x16, 0x0c, 0x1d, 0x43, 0x4f, 0x60, 0xb3, + 0x27, 0x9e, 0x29, 0x64, 0x2d, 0xae, 0xda, 0xcf, 0x63, 0xe7, 0xf6, 0xca, 0x9d, 0x84, 0x04, 0x31, + 0x53, 0xdf, 0x73, 0x3b, 0xe6, 0x7f, 0x97, 0x60, 0x9c, 0x56, 0x25, 0x83, 0x46, 0x5e, 0x86, 0x49, + 0xdf, 0xb9, 0x45, 0x7c, 0xe9, 0x32, 0xcf, 0x1a, 0xb1, 0x57, 0x74, 0x24, 0x36, 0x69, 0x69, 0xe1, + 0x0d, 0xfd, 0xf4, 0x40, 0xe8, 0x2f, 0xaa, 0xb0, 0x71, 0xb4, 0x80, 0x4d, 0x5a, 0x6a, 0x4f, 0xdd, + 0x76, 0x92, 0xd6, 0x96, 0x30, 0x70, 0x55, 0x73, 0xdf, 0xa0, 0x40, 0xcc, 0x71, 0x54, 0x81, 0x93, + 0xb3, 0xf3, 0x26, 0x89, 0x98, 0x02, 0xc7, 0xd5, 0x63, 0xa5, 0xc0, 0x61, 0x13, 0x8d, 0xb3, 0xf4, + 0xe8, 0x53, 0x30, 0x45, 0x3b, 0x27, 0xec, 0x24, 0x32, 0x24, 0x66, 0x98, 0x85, 0xc4, 0xb0, 0x08, + 0xe8, 0x75, 0x03, 0x83, 0x33, 0x94, 0xa8, 0x01, 0x27, 0xbd, 0xa0, 0xe5, 0x77, 0x5c, 0x72, 0x23, + 0xe0, 0xda, 0x9d, 0xef, 0xbd, 0x4f, 0x5c, 0xa1, 0x40, 0xab, 0xe8, 0xa5, 0xb5, 0x1c, 0x1a, 0x9c, + 0x5b, 0xd2, 0xfe, 0x19, 0x38, 0x71, 0x25, 0x74, 0xdc, 0x25, 0xc7, 0x77, 0x82, 0x16, 0x89, 0xd6, + 0x82, 0xcd, 0xbe, 0x07, 0xf2, 0xfa, 0xf1, 0x79, 0xa9, 0xdf, 0xf1, 0xb9, 0xbd, 0x05, 0x48, 0xaf, + 0x40, 0x84, 0x82, 0x61, 0x18, 0xf5, 0x78, 0x55, 0x62, 0xfa, 0x3f, 0x9e, 0xaf, 0x5d, 0x77, 0xb5, + 0x4c, 0x0b, 0x72, 0xe2, 0x00, 0x2c, 0x19, 0xd9, 0x2f, 0x41, 0xee, 0xfd, 0x8c, 0xfe, 0xa6, 0xb4, + 0xfd, 0x02, 0xcc, 0xb2, 0x92, 0x47, 0x33, 0xf3, 0xec, 0xbf, 0x6a, 0xc1, 0xf4, 0xb5, 0xcc, 0x1d, + 0xd8, 0xc7, 0x60, 0x24, 0x26, 0x51, 0x8e, 0x2f, 0xb4, 0xc9, 0xa0, 0x58, 0x60, 0xef, 0xb9, 0xcf, + 0xe5, 0x07, 0x16, 0x54, 0xd4, 0x6d, 0xeb, 0x63, 0x50, 0x6a, 0x97, 0x0d, 0xa5, 0x36, 0xd7, 0x17, + 0xa0, 0x9a, 0x53, 0xa4, 0xd3, 0xa2, 0xcb, 0xea, 0x6e, 0x68, 0x0f, 0x37, 0x40, 0xca, 0x86, 0xdf, + 0x24, 0x9c, 0x32, 0x2f, 0x90, 0xca, 0xdb, 0xa2, 0xec, 0x44, 0x5c, 0xd1, 0x7e, 0x44, 0x4e, 0xc4, + 0x55, 0x7b, 0x0a, 0xa4, 0x5f, 0x43, 0x6b, 0x32, 0xdb, 0x15, 0x7e, 0x82, 0x45, 0x8e, 0xb2, 0xb5, + 0xa9, 0x2e, 0x51, 0xd7, 0x44, 0x24, 0xa8, 0x80, 0x1e, 0x32, 0x41, 0x26, 0xfe, 0xf1, 0x9b, 0xf1, + 0x69, 0x11, 0xfb, 0x12, 0x4c, 0x67, 0x3a, 0x0c, 0xbd, 0x00, 0xc3, 0xed, 0x2d, 0x27, 0x26, 0x99, + 0x48, 0xa0, 0xe1, 0x06, 0x05, 0x1e, 0xee, 0xd7, 0xa6, 0x54, 0x01, 0x06, 0xc1, 0x9c, 0xda, 0xfe, + 0xef, 0x16, 0x0c, 0x5d, 0x0b, 0xdd, 0xe3, 0x98, 0x4c, 0xaf, 0x1a, 0x93, 0xe9, 0xa1, 0xa2, 0xbc, + 0x22, 0x85, 0xf3, 0x68, 0x35, 0x33, 0x8f, 0xce, 0x16, 0x72, 0xe8, 0x3d, 0x85, 0x76, 0x60, 0x9c, + 0x65, 0x2b, 0x11, 0x51, 0x49, 0xcf, 0x19, 0xf6, 0x55, 0x2d, 0x63, 0x5f, 0x4d, 0x6b, 0xa4, 0x9a, + 0x95, 0xf5, 0x04, 0x8c, 0x8a, 0xc8, 0x98, 0x6c, 0x8c, 0xac, 0xa0, 0xc5, 0x12, 0x6f, 0xff, 0x4a, + 0x19, 0x8c, 0xec, 0x28, 0xe8, 0xf7, 0x2d, 0x98, 0x8f, 0xf8, 0xad, 0x20, 0xb7, 0xde, 0x89, 0xbc, + 0x60, 0xb3, 0xd9, 0xda, 0x22, 0x6e, 0xc7, 0xf7, 0x82, 0xcd, 0xb5, 0xcd, 0x20, 0x54, 0xe0, 0x95, + 0x3b, 0xa4, 0xd5, 0x61, 0x7e, 0xf0, 0x3e, 0xa9, 0x58, 0xd4, 0xc9, 0xf3, 0x85, 0x83, 0xfd, 0xda, + 0x3c, 0x3e, 0x12, 0x6f, 0x7c, 0xc4, 0xb6, 0xa0, 0x3f, 0xb4, 0x60, 0x81, 0x27, 0x0d, 0x19, 0xbc, + 0xfd, 0x3d, 0xac, 0xd1, 0x86, 0x64, 0x95, 0x32, 0x59, 0x27, 0xd1, 0xce, 0xd2, 0x8b, 0xa2, 0x43, + 0x17, 0x1a, 0x47, 0xab, 0x0b, 0x1f, 0xb5, 0x71, 0xf6, 0xbf, 0x2c, 0xc3, 0x24, 0xed, 0xc5, 0xf4, + 0x26, 0xfc, 0x0b, 0xc6, 0x94, 0x78, 0x24, 0x33, 0x25, 0x66, 0x0d, 0xe2, 0x7b, 0x73, 0x09, 0x3e, + 0x86, 0x59, 0xdf, 0x89, 0x93, 0x4b, 0xc4, 0x89, 0x92, 0x5b, 0xc4, 0x61, 0x47, 0xbd, 0x62, 0x9a, + 0x1f, 0xe5, 0xf4, 0x58, 0xb9, 0xbf, 0xae, 0x64, 0x99, 0xe1, 0x6e, 0xfe, 0x68, 0x17, 0x10, 0x3b, + 0x56, 0x8e, 0x9c, 0x20, 0xe6, 0xdf, 0xe2, 0x09, 0x1f, 0xf9, 0xd1, 0x6a, 0x9d, 0x13, 0xb5, 0xa2, + 0x2b, 0x5d, 0xdc, 0x70, 0x4e, 0x0d, 0x5a, 0xb8, 0xc0, 0xf0, 0xa0, 0xe1, 0x02, 0x23, 0x7d, 0x02, + 0xd1, 0x77, 0x60, 0x46, 0x8c, 0xca, 0x86, 0xb7, 0x29, 0x36, 0xe9, 0x37, 0x33, 0xe1, 0x44, 0xd6, + 0xe0, 0x81, 0x0f, 0x7d, 0x62, 0x89, 0xec, 0x9f, 0x85, 0x13, 0xb4, 0x3a, 0x33, 0x6c, 0x3a, 0x46, + 0x04, 0xa6, 0xb7, 0x3b, 0xb7, 0x88, 0x4f, 0x12, 0x09, 0x13, 0x95, 0xe6, 0xaa, 0xfd, 0x66, 0xe9, + 0x54, 0xb7, 0xbc, 0x6c, 0xb2, 0xc0, 0x59, 0x9e, 0xf6, 0xaf, 0x5a, 0xc0, 0x02, 0x13, 0x8f, 0x61, + 0xfb, 0xfb, 0xb4, 0xb9, 0xfd, 0x55, 0x8b, 0x24, 0x50, 0xc1, 0xce, 0xf7, 0x3c, 0x1f, 0x96, 0x46, + 0x14, 0xde, 0xd9, 0x93, 0xba, 0x7f, 0x7f, 0x8d, 0xeb, 0x7f, 0x59, 0x7c, 0x41, 0xaa, 0x4b, 0x92, + 0xe8, 0x73, 0x30, 0xd6, 0x72, 0xda, 0x4e, 0x8b, 0xa7, 0xa5, 0x2a, 0xf4, 0xfe, 0x18, 0x85, 0xe6, + 0x97, 0x45, 0x09, 0xee, 0xcd, 0xf8, 0x31, 0xf9, 0x95, 0x12, 0xdc, 0xd7, 0x83, 0xa1, 0xaa, 0x9c, + 0xdb, 0x86, 0x49, 0x83, 0xd9, 0x7d, 0x35, 0x7d, 0x3f, 0xc7, 0xb7, 0x0b, 0x65, 0xb1, 0xec, 0xc0, + 0x6c, 0xa0, 0xfd, 0xa7, 0xc2, 0x51, 0xaa, 0xd3, 0x1f, 0xef, 0xb7, 0x21, 0x30, 0x49, 0xaa, 0x05, + 0x5e, 0x66, 0xd8, 0xe0, 0x6e, 0xce, 0xf6, 0xdf, 0xb1, 0xe0, 0x01, 0x9d, 0x50, 0xbb, 0xbf, 0xda, + 0xcf, 0x9f, 0x5c, 0x87, 0xb1, 0xb0, 0x4d, 0x22, 0x27, 0xb5, 0xc9, 0xce, 0xcb, 0x4e, 0xbf, 0x2e, + 0xe0, 0x87, 0xfb, 0xb5, 0x93, 0x3a, 0x77, 0x09, 0xc7, 0xaa, 0x24, 0xb2, 0x61, 0x84, 0x75, 0x46, + 0x2c, 0xee, 0x16, 0xb3, 0xd4, 0x4d, 0xec, 0xb8, 0x2b, 0xc6, 0x02, 0x63, 0xff, 0x9c, 0xc5, 0x27, + 0x96, 0xde, 0x74, 0xf4, 0x1e, 0xcc, 0xec, 0x50, 0xf3, 0x6d, 0xe5, 0x4e, 0x3b, 0xe2, 0x6e, 0x74, + 0xd9, 0x4f, 0x4f, 0xf5, 0xeb, 0x27, 0xed, 0x23, 0x97, 0xaa, 0xa2, 0xcd, 0x33, 0x57, 0x33, 0xcc, + 0x70, 0x17, 0x7b, 0xfb, 0xcf, 0x4b, 0x7c, 0x25, 0x32, 0xad, 0xee, 0x09, 0x18, 0x6d, 0x87, 0xee, + 0xf2, 0x5a, 0x1d, 0x8b, 0x1e, 0x52, 0xe2, 0xaa, 0xc1, 0xc1, 0x58, 0xe2, 0xd1, 0x05, 0x00, 0x72, + 0x27, 0x21, 0x51, 0xe0, 0xf8, 0xea, 0x30, 0x5e, 0x29, 0x4f, 0x2b, 0x0a, 0x83, 0x35, 0x2a, 0x5a, + 0xa6, 0x1d, 0x85, 0xbb, 0x9e, 0xcb, 0x2e, 0x77, 0x94, 0xcd, 0x32, 0x0d, 0x85, 0xc1, 0x1a, 0x15, + 0x35, 0x95, 0x3b, 0x41, 0xcc, 0x37, 0x40, 0xe7, 0x96, 0x48, 0xa0, 0x33, 0x96, 0x9a, 0xca, 0x37, + 0x74, 0x24, 0x36, 0x69, 0xd1, 0x22, 0x8c, 0x24, 0x0e, 0x3b, 0x62, 0x1e, 0x2e, 0x0e, 0xd9, 0x59, + 0xa7, 0x14, 0x7a, 0x9e, 0x22, 0x5a, 0x00, 0x8b, 0x82, 0xe8, 0x2d, 0x29, 0x82, 0xb9, 0x48, 0x16, + 0xa1, 0x57, 0x85, 0xd3, 0x56, 0x17, 0xdf, 0xba, 0x0c, 0x16, 0x21, 0x5d, 0x06, 0x2f, 0xfb, 0x0b, + 0x15, 0x80, 0x54, 0xdb, 0x43, 0xef, 0x77, 0x89, 0x88, 0xa7, 0x7b, 0xeb, 0x87, 0xf7, 0x4e, 0x3e, + 0xa0, 0x2f, 0x5a, 0x30, 0xee, 0xf8, 0x7e, 0xd8, 0x72, 0x12, 0xd6, 0xcb, 0xa5, 0xde, 0x22, 0x4a, + 0xd4, 0xbf, 0x98, 0x96, 0xe0, 0x4d, 0x78, 0x4e, 0x9e, 0x1e, 0x6b, 0x98, 0xbe, 0xad, 0xd0, 0x2b, + 0x46, 0x3f, 0x26, 0x8d, 0x00, 0x3e, 0x3d, 0xe6, 0xb2, 0x46, 0x40, 0x85, 0x49, 0x63, 0x4d, 0xff, + 0x47, 0x37, 0x8c, 0xbc, 0x35, 0x43, 0xc5, 0x57, 0x74, 0x0d, 0xa5, 0xa7, 0x5f, 0xca, 0x1a, 0xd4, + 0xd0, 0x43, 0xd0, 0x87, 0x8b, 0xef, 0xb1, 0x6b, 0xda, 0x75, 0x9f, 0xf0, 0xf3, 0x77, 0x61, 0xda, + 0x35, 0xb7, 0x5b, 0x31, 0x9b, 0x1e, 0x2f, 0xe2, 0x9b, 0xd9, 0x9d, 0xd3, 0x0d, 0x36, 0x83, 0xc0, + 0x59, 0xc6, 0xa8, 0xc1, 0x2f, 0x03, 0xac, 0x05, 0x1b, 0xa1, 0x08, 0xe1, 0xb3, 0x0b, 0xc7, 0x72, + 0x2f, 0x4e, 0xc8, 0x0e, 0xa5, 0x4c, 0xf7, 0xd1, 0x6b, 0xa2, 0x2c, 0x56, 0x5c, 0xd0, 0x6b, 0x30, + 0xc2, 0x6e, 0x69, 0xc5, 0xd5, 0xb1, 0x62, 0x3f, 0xa0, 0x79, 0xc1, 0x38, 0x5d, 0x54, 0xec, 0x6f, + 0x8c, 0x05, 0x07, 0x74, 0x49, 0xa6, 0x09, 0x88, 0xd7, 0x82, 0x1b, 0x31, 0x61, 0x69, 0x02, 0x2a, + 0x4b, 0x1f, 0x4f, 0x33, 0x00, 0x70, 0x78, 0x6e, 0x46, 0x42, 0xa3, 0x24, 0xd5, 0x57, 0xc4, 0x7f, + 0x99, 0xe8, 0xb0, 0x0a, 0xc5, 0xcd, 0x33, 0x93, 0x21, 0xa6, 0xdd, 0x79, 0xd3, 0x64, 0x81, 0xb3, + 0x3c, 0x8f, 0x75, 0xfb, 0x9c, 0x0b, 0x60, 0x26, 0xbb, 0xb0, 0xee, 0xeb, 0x76, 0xfd, 0xfd, 0x21, + 0x98, 0x32, 0x27, 0x02, 0x5a, 0x80, 0x8a, 0x60, 0xa2, 0x92, 0x7c, 0xa9, 0xb9, 0x7d, 0x55, 0x22, + 0x70, 0x4a, 0xc3, 0x92, 0x9c, 0xb1, 0xe2, 0x5a, 0x6c, 0x56, 0x9a, 0xe4, 0x4c, 0x61, 0xb0, 0x46, + 0x45, 0x95, 0xe8, 0x5b, 0x61, 0x98, 0xa8, 0xad, 0x40, 0xcd, 0x96, 0x25, 0x06, 0xc5, 0x02, 0x4b, + 0xb7, 0x80, 0x6d, 0x12, 0x05, 0xc4, 0x37, 0x3d, 0x99, 0x6a, 0x0b, 0xb8, 0xac, 0x23, 0xb1, 0x49, + 0x4b, 0xb7, 0xb4, 0x30, 0x66, 0xd3, 0x4f, 0xa8, 0xea, 0x69, 0xac, 0x5b, 0x93, 0xdf, 0x52, 0x94, + 0x78, 0xf4, 0x26, 0x3c, 0xa0, 0x2e, 0x15, 0x62, 0xee, 0x19, 0x96, 0x35, 0x8e, 0x18, 0x96, 0xf5, + 0x03, 0xcb, 0xf9, 0x64, 0xb8, 0xa8, 0x3c, 0x7a, 0x15, 0xa6, 0x84, 0x0a, 0x2c, 0x39, 0x8e, 0x9a, + 0xc1, 0x0a, 0x97, 0x0d, 0x2c, 0xce, 0x50, 0xa3, 0x3a, 0xcc, 0x50, 0x08, 0xd3, 0x42, 0x25, 0x07, + 0x7e, 0x39, 0x52, 0xed, 0xf5, 0x97, 0x33, 0x78, 0xdc, 0x55, 0x02, 0x2d, 0xc2, 0x34, 0xd7, 0x51, + 0xa8, 0x4d, 0xc9, 0xc6, 0x41, 0x44, 0xd6, 0xaa, 0x85, 0x70, 0xdd, 0x44, 0xe3, 0x2c, 0x3d, 0x7a, + 0x09, 0x26, 0x9c, 0xa8, 0xb5, 0xe5, 0x25, 0xa4, 0x95, 0x74, 0x22, 0x9e, 0x84, 0x43, 0x8b, 0xf6, + 0x58, 0xd4, 0x70, 0xd8, 0xa0, 0xb4, 0xdf, 0x87, 0x13, 0x39, 0x41, 0xf9, 0x74, 0xe2, 0x38, 0x6d, + 0x4f, 0x7e, 0x53, 0x26, 0x6a, 0x6d, 0xb1, 0xb1, 0x26, 0xbf, 0x46, 0xa3, 0xa2, 0xb3, 0x93, 0xb9, + 0xc4, 0xb5, 0x6c, 0xa4, 0x6a, 0x76, 0xae, 0x4a, 0x04, 0x4e, 0x69, 0xec, 0x6f, 0x01, 0x68, 0x0e, + 0x9d, 0x01, 0x62, 0x96, 0x5e, 0x82, 0x09, 0x99, 0x42, 0x57, 0x4b, 0xdd, 0xa8, 0x3e, 0xf3, 0xa2, + 0x86, 0xc3, 0x06, 0x25, 0x6d, 0x5b, 0xa0, 0x12, 0x4f, 0x66, 0x62, 0xe4, 0xd2, 0xb4, 0x93, 0x29, + 0x0d, 0x7a, 0x1a, 0xc6, 0x62, 0xe2, 0x6f, 0x5c, 0xf1, 0x82, 0x6d, 0x31, 0xb1, 0x95, 0x14, 0x6e, + 0x0a, 0x38, 0x56, 0x14, 0x68, 0x09, 0xca, 0x1d, 0xcf, 0x15, 0x53, 0x59, 0x6e, 0xf8, 0xe5, 0x1b, + 0x6b, 0xf5, 0xc3, 0xfd, 0xda, 0x23, 0x45, 0x99, 0x81, 0xa9, 0x69, 0x1f, 0xcf, 0xd3, 0xe5, 0x47, + 0x0b, 0xe7, 0x9d, 0x0d, 0x8c, 0x1c, 0xf1, 0x6c, 0xe0, 0x02, 0x80, 0xf8, 0x6a, 0x39, 0x97, 0xcb, + 0xe9, 0xa8, 0x5d, 0x54, 0x18, 0xac, 0x51, 0xa1, 0x18, 0x66, 0x5b, 0x11, 0x71, 0xa4, 0x0d, 0xcd, + 0xc3, 0xcb, 0xc7, 0xee, 0xde, 0x41, 0xb0, 0x9c, 0x65, 0x86, 0xbb, 0xf9, 0xa3, 0x10, 0x66, 0x5d, + 0x71, 0x87, 0x35, 0xad, 0xb4, 0x72, 0xf4, 0x98, 0x76, 0x16, 0x90, 0x93, 0x65, 0x84, 0xbb, 0x79, + 0xa3, 0x77, 0x60, 0x4e, 0x02, 0xbb, 0xaf, 0x0d, 0xb3, 0xe5, 0x52, 0x5e, 0x3a, 0x7b, 0xb0, 0x5f, + 0x9b, 0xab, 0x17, 0x52, 0xe1, 0x1e, 0x1c, 0x10, 0x86, 0x11, 0x76, 0x96, 0x14, 0x57, 0xc7, 0xd9, + 0x3e, 0xf7, 0x64, 0xb1, 0x33, 0x80, 0xce, 0xf5, 0x79, 0x76, 0x0e, 0x25, 0xc2, 0x7c, 0xd3, 0x63, + 0x39, 0x06, 0xc4, 0x82, 0x13, 0xda, 0x80, 0x71, 0x27, 0x08, 0xc2, 0xc4, 0xe1, 0x2a, 0xd4, 0x44, + 0xb1, 0xee, 0xa7, 0x31, 0x5e, 0x4c, 0x4b, 0x70, 0xee, 0x2a, 0x72, 0x50, 0xc3, 0x60, 0x9d, 0x31, + 0xba, 0x0d, 0xd3, 0xe1, 0x6d, 0x2a, 0x1c, 0xa5, 0x97, 0x22, 0xae, 0x4e, 0xb2, 0xba, 0x9e, 0x1f, + 0xd0, 0x4f, 0x6b, 0x14, 0xd6, 0xa4, 0x96, 0xc9, 0x14, 0x67, 0x6b, 0x41, 0xf3, 0x86, 0xb7, 0x7a, + 0x2a, 0x8d, 0x67, 0x4f, 0xbd, 0xd5, 0xba, 0x73, 0x9a, 0x5d, 0x43, 0xe7, 0x61, 0xab, 0x6c, 0xf5, + 0x4f, 0x67, 0xae, 0xa1, 0xa7, 0x28, 0xac, 0xd3, 0xa1, 0x2d, 0x98, 0x48, 0x8f, 0xac, 0xa2, 0x98, + 0x65, 0xa9, 0x19, 0xbf, 0x70, 0x61, 0xb0, 0x8f, 0x5b, 0xd3, 0x4a, 0x72, 0xcb, 0x41, 0x87, 0x60, + 0x83, 0xf3, 0xdc, 0x8f, 0xc3, 0xb8, 0x36, 0xb0, 0x47, 0x89, 0xca, 0x9e, 0x7b, 0x15, 0x66, 0xb2, + 0x43, 0x77, 0xa4, 0xa8, 0xee, 0xff, 0x59, 0x82, 0xe9, 0x9c, 0x93, 0x2b, 0x96, 0x5d, 0x38, 0x23, + 0x50, 0xd3, 0x64, 0xc2, 0xa6, 0x58, 0x2c, 0x0d, 0x20, 0x16, 0xa5, 0x8c, 0x2e, 0x17, 0xca, 0x68, + 0x21, 0x0a, 0x87, 0x3e, 0x88, 0x28, 0x34, 0x77, 0x9f, 0xe1, 0x81, 0x76, 0x9f, 0x7b, 0x20, 0x3e, + 0x8d, 0x0d, 0x6c, 0x74, 0x80, 0x0d, 0xec, 0x17, 0x4b, 0x30, 0x93, 0x4d, 0xc1, 0x7c, 0x0c, 0xe7, + 0x1d, 0xaf, 0x19, 0xe7, 0x1d, 0xf9, 0xb9, 0xba, 0xb3, 0x89, 0xa1, 0x8b, 0xce, 0x3e, 0x70, 0xe6, + 0xec, 0xe3, 0xc9, 0x81, 0xb8, 0xf5, 0x3e, 0x07, 0xf9, 0xbb, 0x25, 0x38, 0x95, 0x2d, 0xb2, 0xec, + 0x3b, 0xde, 0xce, 0x31, 0xf4, 0xcd, 0x75, 0xa3, 0x6f, 0x9e, 0x19, 0xe4, 0x6b, 0x58, 0xd3, 0x0a, + 0x3b, 0xe8, 0x8d, 0x4c, 0x07, 0x2d, 0x0c, 0xce, 0xb2, 0x77, 0x2f, 0x7d, 0xcb, 0x82, 0x33, 0xb9, + 0xe5, 0x8e, 0xc1, 0xfb, 0x7a, 0xcd, 0xf4, 0xbe, 0x3e, 0x31, 0xf0, 0x37, 0x15, 0xb8, 0x63, 0xbf, + 0x52, 0x2e, 0xf8, 0x16, 0xe6, 0xbf, 0xba, 0x0e, 0xe3, 0x4e, 0xab, 0x45, 0xe2, 0xf8, 0x6a, 0xe8, + 0xaa, 0xb4, 0x56, 0xcf, 0xb0, 0x3d, 0x29, 0x05, 0x1f, 0xee, 0xd7, 0xe6, 0xb2, 0x2c, 0x52, 0x34, + 0xd6, 0x39, 0x98, 0xa9, 0xf2, 0x4a, 0xf7, 0x34, 0x55, 0xde, 0x05, 0x80, 0x5d, 0x65, 0xd5, 0x66, + 0x9d, 0x61, 0x9a, 0xbd, 0xab, 0x51, 0xa1, 0x9f, 0x66, 0xba, 0x22, 0x0f, 0x19, 0xe1, 0x87, 0x1c, + 0xcf, 0x0d, 0x38, 0x56, 0x7a, 0xf8, 0x09, 0xbf, 0x08, 0xab, 0x1c, 0x87, 0x8a, 0x25, 0xfa, 0x49, + 0x98, 0x89, 0x79, 0xae, 0x85, 0x65, 0xdf, 0x89, 0xd9, 0xf5, 0x0b, 0x21, 0x13, 0xd9, 0xed, 0xd6, + 0x66, 0x06, 0x87, 0xbb, 0xa8, 0xed, 0x7f, 0x58, 0x86, 0x07, 0x7b, 0x4c, 0x51, 0xb4, 0x68, 0x1e, + 0xf1, 0x3e, 0x95, 0xf5, 0xee, 0xcc, 0xe5, 0x16, 0x36, 0xdc, 0x3d, 0x99, 0x31, 0x2e, 0x7d, 0xe0, + 0x31, 0xfe, 0x92, 0xa5, 0xf9, 0xdd, 0x78, 0x20, 0xe8, 0xa7, 0x8f, 0xb8, 0xf4, 0x7e, 0x58, 0x1d, + 0xf5, 0x9f, 0xb7, 0xe0, 0x91, 0xdc, 0xcf, 0x32, 0x42, 0x45, 0x16, 0xa0, 0xd2, 0xa2, 0x40, 0xed, + 0x8a, 0x54, 0x7a, 0x51, 0x51, 0x22, 0x70, 0x4a, 0x63, 0x44, 0x84, 0x94, 0xfa, 0x46, 0x84, 0xfc, + 0x73, 0x0b, 0x4e, 0x66, 0x1b, 0x71, 0x0c, 0x92, 0x69, 0xcd, 0x94, 0x4c, 0x1f, 0x1f, 0x64, 0xc8, + 0x0b, 0x84, 0xd2, 0x77, 0xa7, 0xe0, 0x74, 0xc1, 0x03, 0x09, 0xbb, 0x30, 0xbb, 0xd9, 0x22, 0xe6, + 0xe5, 0x33, 0xf1, 0x31, 0xb9, 0xf7, 0xf4, 0x7a, 0xde, 0x54, 0xe3, 0x66, 0x48, 0x17, 0x09, 0xee, + 0xae, 0x02, 0x7d, 0xde, 0x82, 0x93, 0xce, 0xed, 0xb8, 0xeb, 0xc1, 0x17, 0x31, 0x67, 0x9e, 0xcf, + 0xf5, 0x8e, 0xf5, 0x79, 0x20, 0x86, 0x5d, 0x10, 0x39, 0x99, 0x47, 0x85, 0x73, 0xeb, 0x42, 0x58, + 0x64, 0xf6, 0xa3, 0x5a, 0x4e, 0x8f, 0xeb, 0x91, 0x79, 0x97, 0x57, 0xb8, 0x8c, 0x92, 0x18, 0xac, + 0xf8, 0xa0, 0x9b, 0x50, 0xd9, 0x94, 0x37, 0xca, 0x84, 0x0c, 0xcc, 0xdd, 0x54, 0x72, 0xaf, 0x9d, + 0xf1, 0x88, 0x7d, 0x85, 0xc2, 0x29, 0x2b, 0xf4, 0x2a, 0x94, 0x83, 0x8d, 0x58, 0x5c, 0xd5, 0xce, + 0x8f, 0xef, 0x31, 0x23, 0xa8, 0xf8, 0x3d, 0xd7, 0x6b, 0xab, 0x4d, 0x4c, 0x0b, 0xd2, 0xf2, 0xd1, + 0x2d, 0x57, 0x38, 0x74, 0x73, 0xcb, 0xe3, 0xa5, 0x7a, 0x77, 0x79, 0xbc, 0x54, 0xc7, 0xb4, 0x20, + 0x5a, 0x85, 0x61, 0x76, 0x41, 0x45, 0x78, 0x6b, 0x73, 0xef, 0xe9, 0x77, 0x5d, 0xbe, 0xe1, 0x17, + 0x5f, 0x19, 0x18, 0xf3, 0xe2, 0xe8, 0x35, 0x18, 0x69, 0xb1, 0x9c, 0xfd, 0xc2, 0xb4, 0xce, 0xcf, + 0x3d, 0xd1, 0x95, 0xd5, 0x9f, 0x9f, 0x51, 0x71, 0x38, 0x16, 0x1c, 0x18, 0x2f, 0xd2, 0xde, 0xda, + 0x88, 0x85, 0xc5, 0x9c, 0xcf, 0xab, 0xeb, 0x7d, 0x05, 0xc1, 0x8b, 0xc1, 0xb1, 0xe0, 0x80, 0x3e, + 0x05, 0xa5, 0x8d, 0x96, 0xb8, 0xa1, 0x92, 0xeb, 0x9b, 0x35, 0xaf, 0x20, 0x2f, 0x8d, 0x1c, 0xec, + 0xd7, 0x4a, 0xab, 0xcb, 0xb8, 0xb4, 0xd1, 0x42, 0xd7, 0x60, 0x74, 0x83, 0xdf, 0x23, 0x15, 0xf9, + 0x59, 0x1f, 0xcf, 0xbf, 0xe2, 0xda, 0x75, 0xd5, 0x94, 0xdf, 0xac, 0x10, 0x08, 0x2c, 0x99, 0xa0, + 0x75, 0x80, 0x0d, 0x75, 0x1f, 0x56, 0x24, 0x68, 0xfd, 0xf8, 0x20, 0xb7, 0x66, 0x85, 0xd1, 0xa8, + 0xa0, 0x58, 0xe3, 0x83, 0x3e, 0x0b, 0x15, 0x47, 0x3e, 0x1c, 0xc2, 0x92, 0xb3, 0x9a, 0xbb, 0x73, + 0xba, 0xcc, 0x7a, 0xbf, 0xa9, 0xc2, 0xe7, 0xa8, 0x22, 0xc2, 0x29, 0x53, 0xb4, 0x0d, 0x93, 0xbb, + 0x71, 0x7b, 0x8b, 0xc8, 0x65, 0xc9, 0x32, 0xb6, 0x9a, 0x06, 0x66, 0x9a, 0x5e, 0x57, 0x10, 0x7a, + 0x51, 0xd2, 0x71, 0xfc, 0x2e, 0x49, 0xc2, 0xae, 0xe1, 0xdc, 0xd4, 0x99, 0x61, 0x93, 0x37, 0xed, + 0xf4, 0xf7, 0x3a, 0xe1, 0xad, 0xbd, 0x84, 0x88, 0x3c, 0xae, 0xb9, 0x9d, 0xfe, 0x3a, 0x27, 0xe9, + 0xee, 0x74, 0x81, 0xc0, 0x92, 0x09, 0x5d, 0xb8, 0x8e, 0x7c, 0x94, 0x47, 0x58, 0xc6, 0x4f, 0x14, + 0x76, 0x4f, 0x57, 0x7b, 0xd3, 0x4e, 0x61, 0x12, 0x2f, 0x65, 0xc5, 0x24, 0x5d, 0x7b, 0x2b, 0x4c, + 0xc2, 0x20, 0x23, 0x65, 0x67, 0x8b, 0x25, 0x5d, 0x23, 0x87, 0xbe, 0x5b, 0xd2, 0xe5, 0x51, 0xe1, + 0xdc, 0xba, 0x90, 0x0b, 0x53, 0xed, 0x30, 0x4a, 0x6e, 0x87, 0x91, 0x9c, 0x55, 0xa8, 0x87, 0xc9, + 0x64, 0x50, 0x8a, 0x1a, 0x59, 0x54, 0xad, 0x89, 0xc1, 0x19, 0x9e, 0x74, 0x48, 0xe2, 0x96, 0xe3, + 0x93, 0xb5, 0xeb, 0xd5, 0x13, 0xc5, 0x43, 0xd2, 0xe4, 0x24, 0xdd, 0x43, 0x22, 0x10, 0x58, 0x32, + 0xa1, 0x32, 0x87, 0xa5, 0x04, 0x67, 0x89, 0x67, 0x0b, 0x64, 0x4e, 0x57, 0xbc, 0x29, 0x97, 0x39, + 0x0c, 0x8c, 0x79, 0x71, 0x3a, 0xf3, 0x85, 0x26, 0x18, 0xc6, 0xd5, 0x53, 0xc5, 0x33, 0x5f, 0x28, + 0x90, 0xd7, 0x9b, 0xbd, 0x66, 0xbe, 0x22, 0xc2, 0x29, 0x53, 0xfb, 0x0b, 0x23, 0xdd, 0x3a, 0x02, + 0xd3, 0xf8, 0xbf, 0x60, 0x75, 0x1d, 0x9a, 0x7e, 0x72, 0x50, 0x33, 0xf5, 0x1e, 0x1e, 0x9f, 0x7e, + 0xde, 0x82, 0xd3, 0xed, 0xdc, 0x8f, 0x12, 0x1b, 0xee, 0x60, 0xd6, 0x2e, 0xef, 0x06, 0x95, 0xd2, + 0x39, 0x1f, 0x8f, 0x0b, 0x6a, 0xca, 0x6a, 0xc6, 0xe5, 0x0f, 0xac, 0x19, 0x5f, 0x85, 0x31, 0xa6, + 0xd4, 0xa5, 0xe9, 0x63, 0x06, 0x0a, 0x3d, 0x62, 0x5b, 0xf7, 0xb2, 0x28, 0x88, 0x15, 0x0b, 0xf4, + 0xf3, 0x16, 0x3c, 0x9c, 0x6d, 0x3a, 0x26, 0x0c, 0x2d, 0xd2, 0x11, 0x72, 0x63, 0x63, 0x55, 0x7c, + 0xff, 0xc3, 0x8d, 0x5e, 0xc4, 0x87, 0xfd, 0x08, 0x70, 0xef, 0xca, 0x50, 0x3d, 0xc7, 0xda, 0x19, + 0x31, 0xcf, 0x54, 0xfa, 0x5b, 0x3c, 0xc7, 0xab, 0xaf, 0x7f, 0xd5, 0xca, 0x51, 0x34, 0xb9, 0x65, + 0xf5, 0x8a, 0x69, 0x59, 0x3d, 0x96, 0xb5, 0xac, 0xba, 0xfc, 0x24, 0x86, 0x51, 0x35, 0x78, 0xc2, + 0xd4, 0x41, 0x33, 0xe5, 0xd8, 0x3e, 0x9c, 0xeb, 0x27, 0x66, 0x59, 0x20, 0x95, 0xab, 0x4e, 0x18, + 0xd3, 0x40, 0x2a, 0x77, 0xad, 0x8e, 0x19, 0x66, 0xd0, 0x9c, 0x0b, 0xf6, 0x7f, 0xb5, 0xa0, 0xdc, + 0x08, 0xdd, 0x63, 0xf0, 0xfb, 0x7c, 0xda, 0xf0, 0xfb, 0x3c, 0x58, 0xf0, 0x58, 0x5f, 0xa1, 0x97, + 0x67, 0x25, 0xe3, 0xe5, 0x79, 0xb8, 0x88, 0x41, 0x6f, 0x9f, 0xce, 0xdf, 0x2b, 0x83, 0xfe, 0xb4, + 0x20, 0xfa, 0x57, 0x77, 0x13, 0x91, 0x5b, 0xee, 0xf5, 0xda, 0xa0, 0xe0, 0xcc, 0xe2, 0xaf, 0xe4, + 0x65, 0xbf, 0x1f, 0xb2, 0xc0, 0xdc, 0x37, 0x88, 0xb7, 0xb9, 0x95, 0x10, 0x37, 0xfb, 0x39, 0xc7, + 0x17, 0x98, 0xfb, 0x9f, 0x2c, 0x98, 0xce, 0xd4, 0x8e, 0xfc, 0xbc, 0x9b, 0x43, 0x77, 0xe9, 0xc9, + 0x99, 0xed, 0x7b, 0xd5, 0x68, 0x1e, 0x40, 0x39, 0xd5, 0xa5, 0xb7, 0x84, 0x69, 0xb1, 0xca, 0xeb, + 0x1e, 0x63, 0x8d, 0x02, 0xbd, 0x00, 0xe3, 0x49, 0xd8, 0x0e, 0xfd, 0x70, 0x73, 0xef, 0x32, 0x91, + 0x59, 0x3e, 0xd4, 0xd1, 0xc7, 0x7a, 0x8a, 0xc2, 0x3a, 0x9d, 0xfd, 0x6b, 0x65, 0xc8, 0x3e, 0x47, + 0xf9, 0xff, 0xe6, 0xe4, 0x47, 0x73, 0x4e, 0x7e, 0xdb, 0x82, 0x19, 0x5a, 0x3b, 0x8b, 0x6d, 0x91, + 0x21, 0xad, 0xea, 0x65, 0x05, 0xab, 0xc7, 0xcb, 0x0a, 0x8f, 0x51, 0xd9, 0xe5, 0x86, 0x9d, 0x44, + 0x78, 0x75, 0x34, 0xe1, 0x44, 0xa1, 0x58, 0x60, 0x05, 0x1d, 0x89, 0x22, 0x71, 0x1f, 0x48, 0xa7, + 0x23, 0x51, 0x84, 0x05, 0x56, 0x3e, 0xbc, 0x30, 0x54, 0xf0, 0xf0, 0x02, 0x4b, 0x90, 0x25, 0xe2, + 0x29, 0x84, 0x6a, 0xa0, 0x25, 0xc8, 0x92, 0x81, 0x16, 0x29, 0x8d, 0xfd, 0xb5, 0x32, 0x4c, 0x34, + 0x42, 0x37, 0x8d, 0x82, 0x7f, 0xde, 0x88, 0x82, 0x3f, 0x97, 0x89, 0x82, 0x9f, 0xd1, 0x69, 0xef, + 0x4d, 0x10, 0xbc, 0x48, 0x9f, 0xc6, 0x9e, 0x01, 0xb9, 0xcb, 0x00, 0x78, 0x23, 0x7d, 0x9a, 0x62, + 0x84, 0x4d, 0xbe, 0x3f, 0x4a, 0x81, 0xef, 0x7f, 0x61, 0xc1, 0x54, 0x23, 0x74, 0xe9, 0x04, 0xfd, + 0x51, 0x9a, 0x8d, 0x7a, 0xfa, 0xb5, 0x91, 0x1e, 0xe9, 0xd7, 0xfe, 0xbe, 0x05, 0xa3, 0x8d, 0xd0, + 0x3d, 0x06, 0x8f, 0xe7, 0x2b, 0xa6, 0xc7, 0xf3, 0x81, 0x02, 0x29, 0x5b, 0xe0, 0xe4, 0xfc, 0xed, + 0x32, 0x4c, 0xd2, 0x76, 0x86, 0x9b, 0x72, 0x94, 0x8c, 0x1e, 0xb1, 0x06, 0xe8, 0x11, 0xaa, 0xcc, + 0x85, 0xbe, 0x1f, 0xde, 0xce, 0x8e, 0xd8, 0x2a, 0x83, 0x62, 0x81, 0x45, 0x4f, 0xc3, 0x58, 0x3b, + 0x22, 0xbb, 0x5e, 0xd8, 0x89, 0xb3, 0x37, 0x0a, 0x1b, 0x02, 0x8e, 0x15, 0x05, 0x7a, 0x1e, 0x26, + 0x62, 0x2f, 0x68, 0x11, 0x19, 0x63, 0x31, 0xc4, 0x62, 0x2c, 0x78, 0x06, 0x4b, 0x0d, 0x8e, 0x0d, + 0x2a, 0xf4, 0x06, 0x54, 0xd8, 0x7f, 0xb6, 0x6e, 0x8e, 0xfe, 0xae, 0x02, 0x37, 0x55, 0x25, 0x03, + 0x9c, 0xf2, 0x42, 0x17, 0x00, 0x12, 0x19, 0x0d, 0x12, 0x8b, 0x0b, 0xaf, 0x4a, 0xa3, 0x54, 0x71, + 0x22, 0x31, 0xd6, 0xa8, 0xd0, 0x53, 0x50, 0x49, 0x1c, 0xcf, 0xbf, 0xe2, 0x05, 0x24, 0x16, 0xd1, + 0x34, 0x22, 0x2b, 0xb4, 0x00, 0xe2, 0x14, 0x4f, 0x77, 0x74, 0x76, 0x9d, 0x9a, 0xbf, 0xca, 0x32, + 0xc6, 0xa8, 0xd9, 0x8e, 0x7e, 0x45, 0x41, 0xb1, 0x46, 0x61, 0xbf, 0x04, 0xa7, 0x1a, 0xa1, 0xdb, + 0x08, 0xa3, 0x64, 0x35, 0x8c, 0x6e, 0x3b, 0x91, 0x2b, 0xc7, 0xaf, 0x26, 0x13, 0x14, 0xd3, 0x5d, + 0x77, 0x98, 0xdb, 0xf5, 0x46, 0xea, 0xe1, 0xe7, 0xd8, 0x9e, 0x7e, 0xc4, 0xab, 0x0f, 0xff, 0xb6, + 0x04, 0xa8, 0xc1, 0xe2, 0x55, 0x8c, 0xa7, 0x7b, 0xde, 0x81, 0xa9, 0x98, 0x5c, 0xf1, 0x82, 0xce, + 0x1d, 0xc1, 0xaa, 0xd7, 0xbd, 0x92, 0xe6, 0x8a, 0x4e, 0xc9, 0x7d, 0x23, 0x26, 0x0c, 0x67, 0xb8, + 0xd1, 0x2e, 0x8c, 0x3a, 0xc1, 0x62, 0x7c, 0x23, 0x26, 0x91, 0x78, 0xaa, 0x86, 0x75, 0x21, 0x96, + 0x40, 0x9c, 0xe2, 0xe9, 0x94, 0x61, 0x7f, 0xae, 0x85, 0x01, 0x0e, 0xc3, 0x44, 0x4e, 0x32, 0xf6, + 0xd8, 0x81, 0x06, 0xc7, 0x06, 0x15, 0x5a, 0x05, 0x14, 0x77, 0xda, 0x6d, 0x9f, 0x1d, 0xef, 0x39, + 0xfe, 0xc5, 0x28, 0xec, 0xb4, 0x79, 0xc0, 0xb1, 0x78, 0x27, 0xa0, 0xd9, 0x85, 0xc5, 0x39, 0x25, + 0xa8, 0x60, 0xd8, 0x88, 0xd9, 0x6f, 0x71, 0xa3, 0x9a, 0x7b, 0x29, 0x9b, 0x0c, 0x84, 0x25, 0xce, + 0xfe, 0x1c, 0xdb, 0xcc, 0xd8, 0x0b, 0x23, 0x49, 0x27, 0x22, 0x68, 0x07, 0x26, 0xdb, 0x6c, 0xc3, + 0x4a, 0xa2, 0xd0, 0xf7, 0x89, 0xd4, 0x1b, 0xef, 0x2e, 0x76, 0x86, 0xbf, 0x38, 0xa0, 0xb3, 0xc3, + 0x26, 0x77, 0xfb, 0x0b, 0xd3, 0x4c, 0x2e, 0x35, 0xb9, 0xd1, 0x32, 0x2a, 0x22, 0x62, 0x85, 0x86, + 0x36, 0x57, 0xfc, 0xa2, 0x57, 0x2a, 0xe9, 0x45, 0x54, 0x2d, 0x96, 0x65, 0xd1, 0xeb, 0x2c, 0x52, + 0x9b, 0x0b, 0x83, 0x7e, 0x6f, 0x09, 0x72, 0x2a, 0x23, 0x4a, 0x5b, 0x14, 0xc4, 0x1a, 0x13, 0x74, + 0x05, 0x26, 0xc5, 0x83, 0x14, 0xc2, 0x85, 0x50, 0x36, 0xcc, 0xdf, 0x49, 0xac, 0x23, 0x0f, 0xb3, + 0x00, 0x6c, 0x16, 0x46, 0x9b, 0xf0, 0xb0, 0xf6, 0x7c, 0x52, 0x4e, 0xfc, 0x16, 0x97, 0x2d, 0x8f, + 0x1c, 0xec, 0xd7, 0x1e, 0x5e, 0xef, 0x45, 0x88, 0x7b, 0xf3, 0x41, 0xd7, 0xe1, 0x94, 0xd3, 0x4a, + 0xbc, 0x5d, 0x52, 0x27, 0x8e, 0xeb, 0x7b, 0x01, 0x31, 0xaf, 0xd8, 0x9f, 0x39, 0xd8, 0xaf, 0x9d, + 0x5a, 0xcc, 0x23, 0xc0, 0xf9, 0xe5, 0xd0, 0x2b, 0x50, 0x71, 0x83, 0x58, 0xf4, 0xc1, 0x88, 0xf1, + 0x32, 0x58, 0xa5, 0x7e, 0xad, 0xa9, 0xbe, 0x3f, 0xfd, 0x83, 0xd3, 0x02, 0x68, 0x93, 0xbf, 0x9b, + 0xaf, 0x2c, 0x92, 0xd1, 0xae, 0xbc, 0x09, 0x59, 0xdb, 0xd6, 0xb8, 0x7b, 0xc2, 0xfd, 0x67, 0x2a, + 0x3a, 0xd2, 0xb8, 0x96, 0x62, 0x30, 0x46, 0xaf, 0x01, 0x8a, 0x49, 0xb4, 0xeb, 0xb5, 0xc8, 0x62, + 0x8b, 0xa5, 0x78, 0x65, 0x5e, 0x97, 0x31, 0x23, 0xd4, 0x1f, 0x35, 0xbb, 0x28, 0x70, 0x4e, 0x29, + 0x74, 0x89, 0x4a, 0x14, 0x1d, 0x2a, 0x82, 0x59, 0xa5, 0x9a, 0x57, 0xad, 0x93, 0x76, 0x44, 0x5a, + 0x4e, 0x42, 0x5c, 0x93, 0x23, 0xce, 0x94, 0xa3, 0xfb, 0x8d, 0xca, 0x9c, 0x0f, 0x66, 0x08, 0x66, + 0x77, 0xf6, 0x7c, 0x6a, 0x21, 0x6d, 0x85, 0x71, 0x72, 0x8d, 0x24, 0xb7, 0xc3, 0x68, 0x5b, 0xe4, + 0xc5, 0x4a, 0xd3, 0xe6, 0xa5, 0x28, 0xac, 0xd3, 0x51, 0x8d, 0x88, 0x1d, 0x62, 0xad, 0xd5, 0xd9, + 0x89, 0xc3, 0x58, 0xba, 0x4e, 0x2e, 0x71, 0x30, 0x96, 0x78, 0x49, 0xba, 0xd6, 0x58, 0x66, 0xe7, + 0x08, 0x19, 0xd2, 0xb5, 0xc6, 0x32, 0x96, 0x78, 0x44, 0xba, 0x5f, 0x5d, 0x9b, 0x2a, 0x3e, 0xab, + 0xe9, 0x96, 0xcb, 0x03, 0x3e, 0xbc, 0x16, 0xc0, 0x8c, 0x7a, 0xef, 0x8d, 0x27, 0x0c, 0x8b, 0xab, + 0xd3, 0xc5, 0x0f, 0xf8, 0xe7, 0x66, 0x1b, 0x53, 0x5e, 0xb5, 0xb5, 0x0c, 0x27, 0xdc, 0xc5, 0xdb, + 0x48, 0xdd, 0x30, 0xd3, 0xf7, 0xe5, 0x83, 0x05, 0xa8, 0xc4, 0x9d, 0x5b, 0x6e, 0xb8, 0xe3, 0x78, + 0x01, 0x73, 0xfb, 0xeb, 0xaf, 0xac, 0x4b, 0x04, 0x4e, 0x69, 0xd0, 0x2a, 0x8c, 0x39, 0xc2, 0xf8, + 0x12, 0x8e, 0xfa, 0xdc, 0xbb, 0xdc, 0xd2, 0x40, 0xe3, 0x1e, 0x4d, 0xf9, 0x0f, 0xab, 0xb2, 0xe8, + 0x65, 0x98, 0x14, 0xd7, 0x8d, 0x44, 0xa4, 0xe0, 0x09, 0x33, 0x32, 0xbd, 0xa9, 0x23, 0xb1, 0x49, + 0x8b, 0x7e, 0x1a, 0xa6, 0x28, 0x97, 0x54, 0xb0, 0x55, 0x4f, 0x0e, 0x22, 0x11, 0xb5, 0x8c, 0xd6, + 0x7a, 0x61, 0x9c, 0x61, 0x86, 0x5c, 0x78, 0xc8, 0xe9, 0x24, 0xe1, 0x0e, 0x9d, 0xe1, 0xe6, 0xfc, + 0x5f, 0x0f, 0xb7, 0x49, 0xc0, 0xfc, 0xf4, 0x63, 0x4b, 0xe7, 0x0e, 0xf6, 0x6b, 0x0f, 0x2d, 0xf6, + 0xa0, 0xc3, 0x3d, 0xb9, 0xa0, 0x1b, 0x30, 0x9e, 0x84, 0xbe, 0x08, 0xf1, 0x8d, 0xab, 0xa7, 0x8b, + 0x53, 0xcf, 0xac, 0x2b, 0x32, 0xdd, 0x9d, 0xa0, 0x8a, 0x62, 0x9d, 0x0f, 0x5a, 0xe7, 0x6b, 0x8c, + 0x25, 0x4a, 0x24, 0x71, 0xf5, 0x81, 0xe2, 0x8e, 0x51, 0xf9, 0x14, 0xcd, 0x25, 0x28, 0x4a, 0x62, + 0x9d, 0x0d, 0xba, 0x08, 0xb3, 0xed, 0xc8, 0x0b, 0xd9, 0xc4, 0x56, 0x2e, 0xdf, 0xaa, 0x91, 0x94, + 0x6c, 0xb6, 0x91, 0x25, 0xc0, 0xdd, 0x65, 0xd0, 0x79, 0xaa, 0xa0, 0x72, 0x60, 0xf5, 0x0c, 0x7f, + 0x11, 0x83, 0x2b, 0xa7, 0x1c, 0x86, 0x15, 0x76, 0xee, 0x27, 0x60, 0xb6, 0x4b, 0x52, 0x1e, 0x29, + 0xdc, 0xf2, 0x37, 0x86, 0xa1, 0xa2, 0xdc, 0x81, 0x68, 0xc1, 0xf4, 0xf2, 0x9e, 0xc9, 0x7a, 0x79, + 0xc7, 0xa8, 0xbe, 0xa6, 0x3b, 0x76, 0xd7, 0x73, 0x1e, 0xf5, 0x3e, 0x57, 0x20, 0x1a, 0x06, 0xbf, + 0x1b, 0x75, 0x84, 0x07, 0xcf, 0x53, 0x83, 0x71, 0xa8, 0xa7, 0xc1, 0x38, 0xe0, 0x03, 0x7b, 0xd4, + 0x34, 0x6c, 0x87, 0xee, 0x5a, 0x23, 0xfb, 0xe2, 0x54, 0x83, 0x02, 0x31, 0xc7, 0x31, 0xe5, 0x9e, + 0x6e, 0xeb, 0x4c, 0xb9, 0x1f, 0xbd, 0x4b, 0xe5, 0x5e, 0x32, 0xc0, 0x29, 0x2f, 0xe4, 0xc3, 0x6c, + 0xcb, 0x7c, 0x2c, 0x4c, 0xdd, 0x87, 0x7a, 0xb4, 0xef, 0xb3, 0x5d, 0x1d, 0xed, 0x05, 0x91, 0xe5, + 0x2c, 0x17, 0xdc, 0xcd, 0x18, 0xbd, 0x0c, 0x63, 0xef, 0x85, 0x31, 0x9b, 0x76, 0x62, 0x6f, 0x93, + 0x37, 0x50, 0xc6, 0x5e, 0xbf, 0xde, 0x64, 0xf0, 0xc3, 0xfd, 0xda, 0x78, 0x23, 0x74, 0xe5, 0x5f, + 0xac, 0x0a, 0xa0, 0x3b, 0x70, 0xca, 0x90, 0x08, 0xaa, 0xb9, 0x30, 0x78, 0x73, 0x1f, 0x16, 0xd5, + 0x9d, 0x5a, 0xcb, 0xe3, 0x84, 0xf3, 0x2b, 0xb0, 0xbf, 0xce, 0x9d, 0x9e, 0xc2, 0x35, 0x42, 0xe2, + 0x8e, 0x7f, 0x1c, 0xcf, 0x04, 0xac, 0x18, 0x5e, 0x9b, 0xbb, 0x76, 0xac, 0xff, 0x81, 0xc5, 0x1c, + 0xeb, 0xeb, 0x64, 0xa7, 0xed, 0x3b, 0xc9, 0x71, 0x04, 0xd9, 0xbe, 0x0e, 0x63, 0x89, 0xa8, 0xad, + 0xd7, 0xcb, 0x06, 0x5a, 0xa3, 0xd8, 0xe1, 0x82, 0xda, 0x10, 0x25, 0x14, 0x2b, 0x36, 0xf6, 0x3f, + 0xe5, 0x23, 0x20, 0x31, 0xc7, 0xe0, 0x5b, 0xa8, 0x9b, 0xbe, 0x85, 0x5a, 0x9f, 0x2f, 0x28, 0xf0, + 0x31, 0xfc, 0x13, 0xb3, 0xdd, 0xcc, 0xf6, 0xf8, 0xa8, 0x9f, 0xe8, 0xd8, 0xbf, 0x6c, 0xc1, 0xc9, + 0xbc, 0x23, 0x7d, 0xaa, 0xc4, 0x70, 0xcb, 0x47, 0x9d, 0x70, 0xa9, 0x1e, 0xbc, 0x29, 0xe0, 0x58, + 0x51, 0x0c, 0x9c, 0x5d, 0xfc, 0x68, 0xe9, 0x96, 0xae, 0x83, 0xf9, 0xae, 0x1c, 0x7a, 0x95, 0x47, + 0xcd, 0x5b, 0xea, 0xe1, 0xb7, 0xa3, 0x45, 0xcc, 0xdb, 0xbf, 0x5e, 0x82, 0x93, 0xdc, 0x45, 0xbd, + 0xb8, 0x1b, 0x7a, 0x6e, 0x23, 0x74, 0xc5, 0x1d, 0x82, 0xb7, 0x60, 0xa2, 0xad, 0x99, 0xab, 0xbd, + 0x12, 0xbe, 0xe8, 0x66, 0x6d, 0x6a, 0x36, 0xe8, 0x50, 0x6c, 0xf0, 0x42, 0x2e, 0x4c, 0x90, 0x5d, + 0xaf, 0xa5, 0xfc, 0x9c, 0xa5, 0x23, 0x8b, 0x74, 0x55, 0xcb, 0x8a, 0xc6, 0x07, 0x1b, 0x5c, 0xef, + 0xc3, 0x1b, 0x20, 0xf6, 0x97, 0x2d, 0x78, 0xa0, 0x20, 0x3d, 0x0c, 0xad, 0xee, 0x36, 0x3b, 0x0c, + 0x10, 0x8f, 0x14, 0xaa, 0xea, 0xf8, 0x11, 0x01, 0x16, 0x58, 0xf4, 0x53, 0x00, 0xdc, 0xc5, 0xcf, + 0x9e, 0x84, 0x2f, 0xf5, 0xbe, 0x7f, 0x6e, 0xa4, 0x4d, 0xd0, 0xee, 0xd6, 0xab, 0x47, 0xe0, 0x35, + 0x5e, 0xf6, 0xaf, 0x96, 0x61, 0x98, 0xbf, 0x58, 0xbd, 0x0a, 0xa3, 0x5b, 0x3c, 0x19, 0xed, 0x20, + 0x79, 0x6f, 0x53, 0x73, 0x84, 0x03, 0xb0, 0x2c, 0x8c, 0xae, 0xc2, 0x09, 0x71, 0x4f, 0xa5, 0x4e, + 0x7c, 0x67, 0x4f, 0x5a, 0xb5, 0xfc, 0x61, 0x08, 0x99, 0xb4, 0xfc, 0xc4, 0x5a, 0x37, 0x09, 0xce, + 0x2b, 0x87, 0x5e, 0xed, 0x4a, 0x41, 0xc7, 0xd3, 0xf8, 0x2a, 0x1d, 0xb8, 0x4f, 0x1a, 0xba, 0x97, + 0x61, 0xb2, 0xdd, 0x65, 0xbf, 0x6b, 0x8f, 0x05, 0x9b, 0x36, 0xbb, 0x49, 0xcb, 0xe2, 0x03, 0x3a, + 0x2c, 0x1a, 0x62, 0x7d, 0x2b, 0x22, 0xf1, 0x56, 0xe8, 0xbb, 0xe2, 0x65, 0xcc, 0x34, 0x3e, 0x20, + 0x83, 0xc7, 0x5d, 0x25, 0x28, 0x97, 0x0d, 0xc7, 0xf3, 0x3b, 0x11, 0x49, 0xb9, 0x8c, 0x98, 0x5c, + 0x56, 0x33, 0x78, 0xdc, 0x55, 0x82, 0xce, 0xa3, 0x53, 0xe2, 0x59, 0x45, 0x79, 0x7b, 0x59, 0x05, + 0x7d, 0x8c, 0xca, 0xf8, 0xf4, 0x1e, 0x19, 0x35, 0xc4, 0x91, 0xbf, 0x7a, 0x98, 0x51, 0x7b, 0xb0, + 0x4b, 0x44, 0xa6, 0x4b, 0x2e, 0x77, 0xf3, 0xb8, 0xdf, 0x9f, 0x5a, 0x70, 0x22, 0x27, 0x10, 0x8c, + 0x8b, 0xaa, 0x4d, 0x2f, 0x4e, 0xd4, 0x7b, 0x04, 0x9a, 0xa8, 0xe2, 0x70, 0xac, 0x28, 0xe8, 0x7a, + 0xe0, 0xc2, 0x30, 0x2b, 0x00, 0x45, 0xf0, 0x86, 0xc0, 0x1e, 0x4d, 0x00, 0xa2, 0x73, 0x30, 0xd4, + 0x89, 0x49, 0x24, 0x5f, 0xc4, 0x93, 0xf2, 0x9b, 0x79, 0x04, 0x19, 0x86, 0x6a, 0x94, 0x9b, 0xca, + 0x19, 0xa7, 0x69, 0x94, 0xdc, 0x1d, 0xc7, 0x71, 0xf6, 0x97, 0xca, 0x30, 0x9d, 0x09, 0xe0, 0xa4, + 0x0d, 0xd9, 0x09, 0x03, 0x2f, 0x09, 0x55, 0x06, 0x34, 0x9e, 0xf0, 0x81, 0xb4, 0xb7, 0xae, 0x0a, + 0x38, 0x56, 0x14, 0xe8, 0x31, 0xf9, 0x54, 0x6a, 0xf6, 0x9d, 0x85, 0xa5, 0xba, 0xf1, 0x5a, 0xea, + 0xa0, 0x0f, 0xa6, 0x3c, 0x0a, 0x43, 0xed, 0x50, 0xbd, 0x63, 0xad, 0xc6, 0x13, 0x2f, 0xd5, 0x1b, + 0x61, 0xe8, 0x63, 0x86, 0x44, 0x9f, 0x10, 0x5f, 0x9f, 0x39, 0xaf, 0xc0, 0x8e, 0x1b, 0xc6, 0x5a, + 0x17, 0x3c, 0x01, 0xa3, 0xdb, 0x64, 0x2f, 0xf2, 0x82, 0xcd, 0xec, 0x69, 0xcd, 0x65, 0x0e, 0xc6, + 0x12, 0x6f, 0x26, 0x1c, 0x1f, 0xbd, 0x2f, 0x6f, 0x9e, 0x8c, 0xf5, 0xdd, 0xd5, 0x7e, 0xdb, 0x82, + 0x69, 0x96, 0x6d, 0x54, 0xdc, 0x93, 0xf7, 0xc2, 0xe0, 0x18, 0xf4, 0x84, 0x47, 0x61, 0x38, 0xa2, + 0x95, 0x66, 0x1f, 0x32, 0x60, 0x2d, 0xc1, 0x1c, 0x87, 0x1e, 0x82, 0x21, 0xd6, 0x04, 0x3a, 0x78, + 0x13, 0x3c, 0xdf, 0x78, 0xdd, 0x49, 0x1c, 0xcc, 0xa0, 0xec, 0xc2, 0x12, 0x26, 0x6d, 0xdf, 0xe3, + 0x8d, 0x4e, 0xdd, 0xad, 0x1f, 0x8d, 0x0b, 0x4b, 0xb9, 0x4d, 0xfb, 0x60, 0x17, 0x96, 0xf2, 0x59, + 0xf6, 0xd6, 0xc1, 0xff, 0x5b, 0x09, 0xce, 0xe6, 0x96, 0x4b, 0x4f, 0x76, 0x57, 0x8d, 0x93, 0xdd, + 0x0b, 0x99, 0x93, 0x5d, 0xbb, 0x77, 0xe9, 0x7b, 0x73, 0xd6, 0x9b, 0x7f, 0x04, 0x5b, 0x3e, 0xc6, + 0x23, 0xd8, 0xa1, 0x41, 0xd5, 0x94, 0xe1, 0x3e, 0x6a, 0xca, 0xb7, 0x2c, 0x38, 0x93, 0xdb, 0x65, + 0x1f, 0x91, 0x1b, 0x62, 0xb9, 0x6d, 0x2b, 0xb0, 0x21, 0x7e, 0x50, 0x2a, 0xf8, 0x16, 0x66, 0x4d, + 0x9c, 0xa7, 0x72, 0x86, 0x21, 0x63, 0xa1, 0x76, 0x4d, 0x70, 0x19, 0xc3, 0x61, 0x58, 0x61, 0x91, + 0xa7, 0xdd, 0xb5, 0xe2, 0x4d, 0x7b, 0xf9, 0x48, 0x4b, 0x66, 0xde, 0xf4, 0x8e, 0xeb, 0x97, 0xfa, + 0xb3, 0xf7, 0xae, 0xae, 0x6a, 0x16, 0x60, 0x79, 0x70, 0x0b, 0x70, 0x22, 0xdf, 0xfa, 0x43, 0x8b, + 0x30, 0xbd, 0xe3, 0x05, 0xec, 0x35, 0x52, 0x53, 0xef, 0x51, 0x17, 0x54, 0xaf, 0x9a, 0x68, 0x9c, + 0xa5, 0x9f, 0x7b, 0x19, 0x26, 0xef, 0xde, 0x65, 0xf5, 0xed, 0x32, 0x3c, 0xd8, 0x63, 0xd9, 0x73, + 0x59, 0x6f, 0x8c, 0x81, 0x26, 0xeb, 0xbb, 0xc6, 0xa1, 0x01, 0x27, 0x37, 0x3a, 0xbe, 0xbf, 0xc7, + 0xa2, 0x9c, 0x88, 0x2b, 0x29, 0x84, 0x62, 0xa2, 0x52, 0x09, 0xaf, 0xe6, 0xd0, 0xe0, 0xdc, 0x92, + 0xe8, 0x35, 0x40, 0xe1, 0x2d, 0x96, 0xde, 0xd6, 0x4d, 0x53, 0x15, 0xb0, 0x8e, 0x2f, 0xa7, 0x8b, + 0xf1, 0x7a, 0x17, 0x05, 0xce, 0x29, 0x45, 0x35, 0x4c, 0xf6, 0x86, 0xba, 0x6a, 0x56, 0x46, 0xc3, + 0xc4, 0x3a, 0x12, 0x9b, 0xb4, 0xe8, 0x22, 0xcc, 0x3a, 0xbb, 0x8e, 0xc7, 0x53, 0x57, 0x49, 0x06, + 0x5c, 0xc5, 0x54, 0x8e, 0xa2, 0xc5, 0x2c, 0x01, 0xee, 0x2e, 0x83, 0x36, 0x0c, 0x2f, 0x1f, 0xcf, + 0x9c, 0x7f, 0x61, 0xe0, 0xd9, 0x3a, 0xb0, 0xdf, 0xcf, 0xfe, 0x0f, 0x16, 0xdd, 0xbe, 0x72, 0x9e, + 0xbf, 0xa4, 0xfd, 0xa0, 0xfc, 0x57, 0xda, 0x3d, 0x31, 0xd5, 0x0f, 0xcb, 0x3a, 0x12, 0x9b, 0xb4, + 0x7c, 0x42, 0xc4, 0x69, 0xb8, 0xb4, 0xa1, 0x27, 0x8a, 0x8b, 0x95, 0x8a, 0x02, 0xbd, 0x09, 0xa3, + 0xae, 0xb7, 0xeb, 0xc5, 0x61, 0x24, 0x16, 0xcb, 0x51, 0x9f, 0x7d, 0x56, 0x72, 0xb0, 0xce, 0xd9, + 0x60, 0xc9, 0xcf, 0xfe, 0x52, 0x09, 0x26, 0x65, 0x8d, 0xaf, 0x77, 0xc2, 0xc4, 0x39, 0x86, 0x6d, + 0xf9, 0xa2, 0xb1, 0x2d, 0x7f, 0xa2, 0xd7, 0xed, 0x52, 0xd6, 0xa4, 0xc2, 0xed, 0xf8, 0x7a, 0x66, + 0x3b, 0x7e, 0xbc, 0x3f, 0xab, 0xde, 0xdb, 0xf0, 0xef, 0x59, 0x30, 0x6b, 0xd0, 0x1f, 0xc3, 0x6e, + 0xb0, 0x6a, 0xee, 0x06, 0x8f, 0xf4, 0xfd, 0x86, 0x82, 0x5d, 0xe0, 0xab, 0xa5, 0x4c, 0xdb, 0x99, + 0xf4, 0x7f, 0x0f, 0x86, 0xb6, 0x9c, 0xc8, 0xed, 0x95, 0x80, 0xb1, 0xab, 0xd0, 0xfc, 0x25, 0x27, + 0x72, 0xb9, 0x0c, 0x7f, 0x5a, 0xbd, 0xcc, 0xe5, 0x44, 0x6e, 0xdf, 0xdb, 0x01, 0xac, 0x2a, 0xf4, + 0x12, 0x8c, 0xc4, 0xad, 0xb0, 0xad, 0x62, 0x2f, 0xcf, 0xf1, 0x57, 0xbb, 0x28, 0xe4, 0x70, 0xbf, + 0x86, 0xcc, 0xea, 0x28, 0x18, 0x0b, 0xfa, 0xb9, 0x4d, 0xa8, 0xa8, 0xaa, 0xef, 0x6b, 0x54, 0xf9, + 0x1f, 0x97, 0xe1, 0x44, 0xce, 0xbc, 0x40, 0xb1, 0xd1, 0x5b, 0xcf, 0x0e, 0x38, 0x9d, 0x3e, 0x60, + 0x7f, 0xc5, 0xcc, 0x62, 0x71, 0xc5, 0xf8, 0x0f, 0x5c, 0xe9, 0x8d, 0x98, 0x64, 0x2b, 0xa5, 0xa0, + 0xfe, 0x95, 0xd2, 0xca, 0x8e, 0xad, 0xab, 0x69, 0x45, 0xaa, 0xa5, 0xf7, 0x75, 0x4c, 0xff, 0xac, + 0x0c, 0x27, 0xf3, 0x2e, 0xa5, 0xa3, 0x9f, 0xcd, 0x3c, 0xe7, 0xf0, 0xfc, 0xa0, 0xd7, 0xd9, 0xf9, + 0x1b, 0x0f, 0x22, 0xd7, 0xcb, 0xbc, 0xf9, 0xc0, 0x43, 0xdf, 0x6e, 0x16, 0x75, 0xb2, 0xeb, 0x3a, + 0x11, 0x7f, 0x86, 0x43, 0x2e, 0xf1, 0x4f, 0x0e, 0xdc, 0x00, 0xf1, 0x7e, 0x47, 0x9c, 0xb9, 0xae, + 0x23, 0xc1, 0xfd, 0xaf, 0xeb, 0xc8, 0x9a, 0xe7, 0x3c, 0x18, 0xd7, 0xbe, 0xe6, 0xbe, 0x8e, 0xf8, + 0x36, 0xdd, 0x51, 0xb4, 0x76, 0xdf, 0xd7, 0x51, 0xff, 0xb2, 0x05, 0x99, 0x38, 0x29, 0xe5, 0xff, + 0xb0, 0x0a, 0xfd, 0x1f, 0xe7, 0x60, 0x28, 0x0a, 0x7d, 0x92, 0xcd, 0xf0, 0x8f, 0x43, 0x9f, 0x60, + 0x86, 0x51, 0xcf, 0xf0, 0x96, 0x8b, 0x9e, 0xe1, 0xa5, 0xa6, 0xb1, 0x4f, 0x76, 0x89, 0xf4, 0x46, + 0x28, 0x99, 0x7c, 0x85, 0x02, 0x31, 0xc7, 0xd9, 0xbf, 0x39, 0x04, 0x27, 0x72, 0x2e, 0xa7, 0x51, + 0x43, 0x65, 0xd3, 0x49, 0xc8, 0x6d, 0x67, 0x2f, 0x9b, 0x75, 0xf4, 0x22, 0x07, 0x63, 0x89, 0x67, + 0xb1, 0x9c, 0x3c, 0x71, 0x59, 0xc6, 0x47, 0x24, 0xf2, 0x95, 0x09, 0xec, 0xfd, 0x7a, 0x99, 0xf5, + 0x02, 0x40, 0x1c, 0xfb, 0x2b, 0x01, 0x55, 0xbe, 0x5c, 0x11, 0x29, 0x9a, 0x66, 0xb9, 0x6b, 0x5e, + 0x11, 0x18, 0xac, 0x51, 0xa1, 0x3a, 0xcc, 0xb4, 0xa3, 0x30, 0xe1, 0x7e, 0xb7, 0x3a, 0x8f, 0x51, + 0x18, 0x36, 0xaf, 0x19, 0x35, 0x32, 0x78, 0xdc, 0x55, 0x02, 0xbd, 0x00, 0xe3, 0xe2, 0xea, 0x51, + 0x23, 0x0c, 0x7d, 0xe1, 0xa5, 0x51, 0x27, 0xde, 0xcd, 0x14, 0x85, 0x75, 0x3a, 0xad, 0x18, 0x73, + 0xe6, 0x8d, 0xe6, 0x16, 0xe3, 0x0e, 0x3d, 0x8d, 0x2e, 0x93, 0x9b, 0x62, 0x6c, 0xa0, 0xdc, 0x14, + 0xa9, 0xdf, 0xaa, 0x32, 0xf0, 0xf9, 0x05, 0xf4, 0xf5, 0xf4, 0x7c, 0xbd, 0x0c, 0x23, 0x7c, 0x28, + 0x8e, 0x41, 0x15, 0x5b, 0x15, 0xbe, 0x9b, 0x1e, 0x19, 0x01, 0x78, 0x5b, 0xe6, 0xeb, 0x4e, 0xe2, + 0x70, 0x31, 0xa4, 0x56, 0x43, 0xea, 0xe5, 0x41, 0xf3, 0xc6, 0x7a, 0x99, 0xcb, 0x38, 0x27, 0x80, + 0xf3, 0xd0, 0x56, 0xcf, 0x3b, 0x00, 0x31, 0x7b, 0x1d, 0x94, 0xf2, 0x10, 0x19, 0x4c, 0x9f, 0xec, + 0x51, 0x7b, 0x53, 0x11, 0xf3, 0x36, 0xa4, 0x53, 0x50, 0x21, 0xb0, 0xc6, 0x71, 0xee, 0x45, 0xa8, + 0x28, 0xe2, 0x7e, 0x96, 0xdc, 0x84, 0x2e, 0xbc, 0x3e, 0x0d, 0xd3, 0x99, 0xba, 0x8e, 0x64, 0x08, + 0xfe, 0x8e, 0x05, 0xd3, 0xbc, 0xc9, 0x2b, 0xc1, 0xae, 0x58, 0xec, 0xef, 0xc3, 0x49, 0x3f, 0x67, + 0xd1, 0x89, 0x11, 0x1d, 0x7c, 0x91, 0x2a, 0xc3, 0x2f, 0x0f, 0x8b, 0x73, 0xeb, 0xa0, 0xc6, 0x3f, + 0x7f, 0xd7, 0xd8, 0xf1, 0x45, 0x04, 0xf2, 0x04, 0xcf, 0xec, 0xcc, 0x61, 0x58, 0x61, 0xed, 0xef, + 0x58, 0x30, 0xdb, 0xf5, 0x2a, 0xfe, 0x87, 0xda, 0x76, 0x91, 0xb8, 0xba, 0x54, 0x90, 0xb8, 0x5a, + 0xff, 0xb4, 0x72, 0xcf, 0x4f, 0xfb, 0x75, 0x0b, 0xc4, 0x0c, 0x3c, 0x06, 0x75, 0xfe, 0x27, 0x4c, + 0x75, 0x7e, 0xae, 0x78, 0x52, 0x17, 0xe8, 0xf1, 0x7f, 0x61, 0xc1, 0x0c, 0x27, 0x48, 0x0f, 0x2f, + 0x3e, 0xd4, 0x71, 0x18, 0xe4, 0x35, 0x15, 0xf5, 0x7c, 0x65, 0xfe, 0x47, 0x19, 0x83, 0x35, 0xd4, + 0x73, 0xb0, 0xfe, 0x8b, 0x05, 0x88, 0x7f, 0x7e, 0xf6, 0xa9, 0x67, 0xbe, 0x29, 0x69, 0xa6, 0x76, + 0x2a, 0x04, 0x14, 0x06, 0x6b, 0x54, 0xf7, 0xa4, 0xe1, 0x99, 0xb3, 0xa1, 0x72, 0xff, 0xb3, 0xa1, + 0x23, 0x7c, 0xeb, 0x5f, 0x1b, 0x82, 0x6c, 0x20, 0x22, 0xba, 0x09, 0x13, 0x2d, 0xa7, 0xed, 0xdc, + 0xf2, 0x7c, 0x2f, 0xf1, 0x48, 0xdc, 0xeb, 0x50, 0x79, 0x59, 0xa3, 0x13, 0x07, 0x31, 0x1a, 0x04, + 0x1b, 0x7c, 0xd0, 0x3c, 0x40, 0x3b, 0xf2, 0x76, 0x3d, 0x9f, 0x6c, 0x32, 0x5b, 0x83, 0xdd, 0x46, + 0xe0, 0x27, 0xa5, 0x12, 0x8a, 0x35, 0x8a, 0x9c, 0xe8, 0xf5, 0xf2, 0xfd, 0x8b, 0x5e, 0x1f, 0x3a, + 0x62, 0xf4, 0xfa, 0xf0, 0x40, 0xd1, 0xeb, 0x18, 0x4e, 0xcb, 0x5d, 0x95, 0xfe, 0x5f, 0xf5, 0x7c, + 0x22, 0x54, 0x29, 0x7e, 0x47, 0x61, 0xee, 0x60, 0xbf, 0x76, 0x1a, 0xe7, 0x52, 0xe0, 0x82, 0x92, + 0xe8, 0xa7, 0xa0, 0xea, 0xf8, 0x7e, 0x78, 0x5b, 0xf5, 0xda, 0x4a, 0xdc, 0x72, 0xfc, 0x34, 0x29, + 0xe8, 0xd8, 0xd2, 0x43, 0x07, 0xfb, 0xb5, 0xea, 0x62, 0x01, 0x0d, 0x2e, 0x2c, 0x6d, 0x6f, 0xc3, + 0x89, 0x26, 0x89, 0xe4, 0x93, 0x60, 0x6a, 0xf5, 0xad, 0x43, 0x25, 0xca, 0x2c, 0xf7, 0x81, 0xae, + 0xa4, 0x6b, 0xa9, 0xb8, 0xe4, 0xf2, 0x4e, 0x19, 0xd9, 0x7f, 0x6e, 0xc1, 0xa8, 0x08, 0x6e, 0x3c, + 0x06, 0x2d, 0x63, 0xd1, 0x70, 0xf8, 0xd4, 0xf2, 0x45, 0x22, 0x6b, 0x4c, 0xa1, 0xab, 0x67, 0x2d, + 0xe3, 0xea, 0x79, 0xa4, 0x17, 0x93, 0xde, 0x4e, 0x9e, 0x5f, 0x2a, 0xc3, 0x94, 0x19, 0xd8, 0x79, + 0x0c, 0x5d, 0x70, 0x0d, 0x46, 0x63, 0x11, 0x45, 0x5c, 0x2a, 0x8e, 0x46, 0xcb, 0x0e, 0x62, 0x7a, + 0x66, 0x2d, 0xe2, 0x86, 0x25, 0x93, 0xdc, 0xf0, 0xe4, 0xf2, 0x7d, 0x0c, 0x4f, 0xee, 0x17, 0x5b, + 0x3b, 0x74, 0x2f, 0x62, 0x6b, 0xed, 0x6f, 0x30, 0xe1, 0xaf, 0xc3, 0x8f, 0x61, 0xc7, 0xbe, 0x68, + 0x6e, 0x13, 0x76, 0x8f, 0x99, 0x25, 0x1a, 0x55, 0xb0, 0x73, 0xff, 0x23, 0x0b, 0xc6, 0x05, 0xe1, + 0x31, 0x34, 0xfb, 0x27, 0xcd, 0x66, 0x3f, 0xd8, 0xa3, 0xd9, 0x05, 0xed, 0xfd, 0xdb, 0x25, 0xd5, + 0xde, 0x86, 0x78, 0x94, 0xbf, 0x6f, 0x92, 0xe8, 0x31, 0x6a, 0xa7, 0x85, 0xad, 0xd0, 0x17, 0x7a, + 0xd9, 0x43, 0xe9, 0x35, 0x35, 0x0e, 0x3f, 0xd4, 0x7e, 0x63, 0x45, 0xcd, 0x6e, 0x51, 0x85, 0x51, + 0x22, 0x36, 0xd0, 0xf4, 0x16, 0x55, 0x18, 0x25, 0x98, 0x61, 0x90, 0x0b, 0x90, 0xbe, 0x95, 0x2e, + 0xee, 0x75, 0x16, 0xaf, 0xc2, 0x4e, 0xe2, 0xf9, 0xf3, 0x5e, 0x90, 0xc4, 0x49, 0x34, 0xbf, 0x16, + 0x24, 0xd7, 0x23, 0xae, 0xb5, 0x6b, 0xf7, 0xce, 0x14, 0x2f, 0xac, 0xf1, 0x95, 0x17, 0x1f, 0x58, + 0x1d, 0xc3, 0xe6, 0x49, 0xcc, 0x35, 0x01, 0xc7, 0x8a, 0xc2, 0x7e, 0x91, 0xc9, 0x64, 0xd6, 0x41, + 0x47, 0xbb, 0x12, 0xf6, 0x27, 0xa3, 0xaa, 0x6b, 0x99, 0x1b, 0xb6, 0xae, 0x5f, 0x3c, 0xeb, 0x2d, + 0x02, 0x69, 0xc5, 0x7a, 0x90, 0x6f, 0x7a, 0x3b, 0x0d, 0x7d, 0xa6, 0xeb, 0x80, 0xee, 0x99, 0x3e, + 0xb2, 0xf4, 0x08, 0x47, 0x72, 0x2c, 0xe7, 0x1d, 0xcb, 0x0d, 0xb6, 0xd6, 0xc8, 0xa6, 0xf1, 0x5e, + 0x96, 0x08, 0x9c, 0xd2, 0xa0, 0x05, 0x61, 0xf3, 0x71, 0x07, 0xc8, 0x83, 0x19, 0x9b, 0x4f, 0x7e, + 0xbe, 0x66, 0xf4, 0x3d, 0x0b, 0xe3, 0xea, 0x69, 0x94, 0x06, 0x7f, 0x61, 0xa2, 0xc2, 0x75, 0xa9, + 0x95, 0x14, 0x8c, 0x75, 0x1a, 0xb4, 0x0e, 0xd3, 0x31, 0x7f, 0xb7, 0x45, 0xde, 0x45, 0x10, 0x16, + 0xfd, 0x93, 0x99, 0x57, 0xd9, 0x25, 0xfa, 0x90, 0x81, 0xf8, 0x62, 0x95, 0xb7, 0x17, 0xb2, 0x2c, + 0xd0, 0xab, 0x30, 0xe5, 0xeb, 0xef, 0x57, 0x36, 0x84, 0xc1, 0xaf, 0x82, 0xac, 0x8c, 0xd7, 0x2d, + 0x1b, 0x38, 0x43, 0x4d, 0x95, 0x00, 0x1d, 0x22, 0x92, 0xd4, 0x38, 0xc1, 0x26, 0x89, 0xc5, 0xc3, + 0x0e, 0x4c, 0x09, 0xb8, 0x52, 0x40, 0x83, 0x0b, 0x4b, 0xa3, 0x97, 0x60, 0x42, 0x7e, 0xbe, 0x76, + 0x37, 0x27, 0x0d, 0xe5, 0xd3, 0x70, 0xd8, 0xa0, 0x44, 0xb7, 0xe1, 0x94, 0xfc, 0xbf, 0x1e, 0x39, + 0x1b, 0x1b, 0x5e, 0x4b, 0x5c, 0x8d, 0x1a, 0x67, 0x2c, 0x16, 0x65, 0x5c, 0xf3, 0x4a, 0x1e, 0xd1, + 0xe1, 0x7e, 0xed, 0x9c, 0xe8, 0xb5, 0x5c, 0x3c, 0x1b, 0xc4, 0x7c, 0xfe, 0xe8, 0x2a, 0x9c, 0xd8, + 0x22, 0x8e, 0x9f, 0x6c, 0x2d, 0x6f, 0x91, 0xd6, 0xb6, 0x5c, 0x44, 0xec, 0xc6, 0x8f, 0x16, 0x00, + 0x77, 0xa9, 0x9b, 0x04, 0xe7, 0x95, 0x43, 0x6f, 0x43, 0xb5, 0xdd, 0xb9, 0xe5, 0x7b, 0xf1, 0xd6, + 0xb5, 0x30, 0x61, 0x67, 0x89, 0xea, 0x65, 0x11, 0x71, 0x35, 0x48, 0xdd, 0x76, 0x6a, 0x14, 0xd0, + 0xe1, 0x42, 0x0e, 0x1f, 0xec, 0x94, 0xf7, 0x3d, 0x5a, 0x58, 0xd3, 0x30, 0xd0, 0x67, 0x61, 0x42, + 0x1f, 0x49, 0x21, 0xe4, 0x1f, 0xeb, 0xf7, 0x5e, 0xaa, 0xd0, 0x4f, 0xd4, 0xa8, 0xea, 0x38, 0x6c, + 0x70, 0xb4, 0xff, 0x45, 0x09, 0x6a, 0x7d, 0x72, 0x48, 0x65, 0x5c, 0x57, 0xd6, 0x40, 0xae, 0xab, + 0x45, 0xf9, 0x88, 0xc8, 0xb5, 0x4c, 0x8a, 0xea, 0xcc, 0x03, 0x21, 0x69, 0xa2, 0xea, 0x2c, 0xfd, + 0xc0, 0x51, 0x5b, 0xba, 0xf7, 0x6b, 0xa8, 0x6f, 0xf0, 0x5a, 0x43, 0x77, 0x63, 0x0e, 0x0f, 0xae, + 0xee, 0x16, 0x7a, 0x30, 0xed, 0x6f, 0x94, 0xe0, 0x94, 0xea, 0xc2, 0x1f, 0xdd, 0x8e, 0xbb, 0xd1, + 0xdd, 0x71, 0xf7, 0xc0, 0xff, 0x6b, 0x5f, 0x87, 0x91, 0xe6, 0x5e, 0xdc, 0x4a, 0xfc, 0x01, 0xb4, + 0x83, 0x47, 0x8d, 0x95, 0x93, 0xee, 0x61, 0xec, 0x1d, 0x30, 0xb1, 0x90, 0xec, 0xbf, 0x6c, 0xc1, + 0xf4, 0xfa, 0x72, 0xa3, 0x19, 0xb6, 0xb6, 0x49, 0xb2, 0xc8, 0xbd, 0x1b, 0x58, 0x28, 0x07, 0xd6, + 0x5d, 0x6e, 0xfa, 0x79, 0xea, 0xc4, 0x39, 0x18, 0xda, 0x0a, 0xe3, 0x24, 0xeb, 0xe3, 0xbf, 0x14, + 0xc6, 0x09, 0x66, 0x18, 0xfb, 0xbb, 0x16, 0x0c, 0xb3, 0xa7, 0xaf, 0xfa, 0x3d, 0x91, 0x36, 0xc8, + 0x77, 0xa1, 0x17, 0x60, 0x84, 0x6c, 0x6c, 0x90, 0x56, 0x22, 0x46, 0x55, 0x5e, 0x24, 0x19, 0x59, + 0x61, 0x50, 0xba, 0x23, 0xb2, 0xca, 0xf8, 0x5f, 0x2c, 0x88, 0xd1, 0x67, 0xa0, 0x92, 0x78, 0x3b, + 0x64, 0xd1, 0x75, 0x85, 0x7b, 0xfd, 0x68, 0x91, 0x54, 0x6a, 0x87, 0x5e, 0x97, 0x4c, 0x70, 0xca, + 0xcf, 0xfe, 0x85, 0x12, 0x40, 0x7a, 0xe1, 0xac, 0xdf, 0x67, 0x2e, 0x75, 0xbd, 0x04, 0xf7, 0x58, + 0xce, 0x4b, 0x70, 0x28, 0x65, 0x98, 0xf3, 0x0e, 0x9c, 0xea, 0xaa, 0xf2, 0x40, 0x5d, 0x35, 0x74, + 0x94, 0xae, 0x5a, 0x86, 0xd9, 0xf4, 0xc2, 0x9c, 0x79, 0x7b, 0x98, 0x65, 0x89, 0x5d, 0xcf, 0x22, + 0x71, 0x37, 0xbd, 0xfd, 0x45, 0x0b, 0x44, 0x74, 0xed, 0x00, 0x13, 0xfa, 0x2d, 0xf9, 0x68, 0x93, + 0x91, 0xd8, 0xee, 0x5c, 0x71, 0xb8, 0xb1, 0x48, 0x67, 0xa7, 0x24, 0xbb, 0x91, 0xc4, 0xce, 0xe0, + 0x65, 0xff, 0x9e, 0x05, 0xe3, 0x1c, 0x7d, 0x95, 0x99, 0xa0, 0xfd, 0x5b, 0x73, 0xa4, 0x1c, 0xc3, + 0xec, 0x3d, 0x23, 0xca, 0x58, 0xa5, 0xa2, 0xd5, 0xdf, 0x33, 0x92, 0x08, 0x9c, 0xd2, 0xa0, 0x27, + 0x60, 0x34, 0xee, 0xdc, 0x62, 0xe4, 0x99, 0x00, 0xdb, 0x26, 0x07, 0x63, 0x89, 0xa7, 0xf3, 0x6a, + 0x26, 0x1b, 0x5f, 0x8d, 0x2e, 0xc1, 0x08, 0x17, 0x1b, 0x62, 0x19, 0xf7, 0x38, 0x4c, 0xd0, 0xa2, + 0xb2, 0x81, 0x3f, 0xc0, 0xcd, 0xc4, 0x8d, 0x28, 0x8f, 0xde, 0x86, 0x71, 0x37, 0xbc, 0x1d, 0xdc, + 0x76, 0x22, 0x77, 0xb1, 0xb1, 0x26, 0x7a, 0x3d, 0x37, 0x4a, 0xae, 0x9e, 0x92, 0xe9, 0x91, 0xde, + 0xcc, 0x3d, 0x97, 0xa2, 0xb0, 0xce, 0x0e, 0xad, 0xb3, 0x1c, 0x1e, 0xfc, 0x59, 0xd0, 0x5e, 0x71, + 0x23, 0xea, 0x25, 0x51, 0x8d, 0xf3, 0xa4, 0x48, 0xf4, 0x21, 0x1e, 0x15, 0x4d, 0x19, 0xd9, 0x9f, + 0x3f, 0x01, 0xc6, 0x68, 0x1b, 0x99, 0x80, 0xad, 0x7b, 0x94, 0x09, 0x18, 0xc3, 0x18, 0xd9, 0x69, + 0x27, 0x7b, 0x75, 0x2f, 0xea, 0x95, 0x9a, 0x7d, 0x45, 0xd0, 0x74, 0xf3, 0x94, 0x18, 0xac, 0xf8, + 0xe4, 0xa7, 0x6b, 0x2e, 0x7f, 0x88, 0xe9, 0x9a, 0x87, 0x8e, 0x31, 0x5d, 0xf3, 0x35, 0x18, 0xdd, + 0xf4, 0x12, 0x4c, 0xda, 0xa1, 0xd8, 0x32, 0x73, 0x67, 0xc2, 0x45, 0x4e, 0xd2, 0x9d, 0x5e, 0x54, + 0x20, 0xb0, 0x64, 0x82, 0x5e, 0x53, 0x6b, 0x60, 0xa4, 0x58, 0x15, 0xec, 0xf6, 0x6e, 0xe7, 0xae, + 0x02, 0x91, 0x9e, 0x79, 0xf4, 0x6e, 0xd3, 0x33, 0xab, 0xf4, 0xca, 0x63, 0x1f, 0x2c, 0xbd, 0xb2, + 0x91, 0x7e, 0xba, 0x72, 0xef, 0xd2, 0x4f, 0x7f, 0xd1, 0x82, 0x53, 0xed, 0xbc, 0x4c, 0xec, 0x22, + 0x65, 0xf2, 0x0b, 0x03, 0x67, 0xa4, 0x37, 0x2a, 0x64, 0x89, 0x24, 0x72, 0xc9, 0x70, 0x7e, 0x75, + 0x32, 0x8f, 0xf5, 0xf8, 0xdd, 0xe6, 0xb1, 0xbe, 0x3f, 0xb9, 0x95, 0xd3, 0xac, 0xd6, 0x93, 0xf7, + 0x30, 0xab, 0xf5, 0xd4, 0x07, 0xce, 0x6a, 0xad, 0x65, 0xa6, 0x9e, 0xbe, 0x17, 0x99, 0xa9, 0xdf, + 0x31, 0x85, 0x3d, 0x4f, 0x93, 0xfc, 0x54, 0x1f, 0x61, 0x6f, 0xf0, 0xed, 0x2d, 0xee, 0x79, 0x16, + 0xee, 0xd9, 0xbb, 0xca, 0xc2, 0x7d, 0x53, 0xcf, 0x6f, 0x8d, 0xfa, 0x24, 0x70, 0xa6, 0x44, 0x03, + 0x66, 0xb5, 0xbe, 0xa9, 0x6f, 0x41, 0x27, 0x8a, 0xf9, 0xaa, 0x9d, 0xa6, 0x9b, 0x6f, 0xde, 0x26, + 0xd4, 0x9d, 0x2d, 0xfb, 0xe4, 0xf1, 0x64, 0xcb, 0x3e, 0x75, 0xcf, 0xb3, 0x65, 0x9f, 0x3e, 0x86, + 0x6c, 0xd9, 0x0f, 0x7c, 0xa8, 0xd9, 0xb2, 0xab, 0xf7, 0x37, 0x5b, 0xf6, 0x99, 0x7b, 0x91, 0x2d, + 0xfb, 0x26, 0x54, 0xda, 0xf2, 0x0a, 0x5e, 0x75, 0xae, 0x78, 0x48, 0x72, 0xef, 0xe9, 0xf1, 0x21, + 0x51, 0x28, 0x9c, 0xb2, 0xa2, 0x7c, 0xd3, 0xec, 0xd9, 0x0f, 0x16, 0xf3, 0xcd, 0x35, 0xdb, 0x7b, + 0xe4, 0xcc, 0xfe, 0x2b, 0x25, 0x38, 0xdb, 0x7b, 0x5e, 0xa7, 0x36, 0x7f, 0x23, 0x75, 0xe0, 0x66, + 0x6c, 0x7e, 0xa6, 0x74, 0x69, 0x54, 0x03, 0xdf, 0x53, 0xbe, 0x08, 0xb3, 0x2a, 0x12, 0xc9, 0xf7, + 0x5a, 0x7b, 0xda, 0x33, 0x37, 0x2a, 0xb8, 0xbd, 0x99, 0x25, 0xc0, 0xdd, 0x65, 0xd0, 0x22, 0x4c, + 0x1b, 0xc0, 0xb5, 0xba, 0x50, 0xc9, 0x95, 0x93, 0xa1, 0x69, 0xa2, 0x71, 0x96, 0xde, 0xfe, 0xaa, + 0x05, 0x0f, 0x14, 0x24, 0xde, 0x1c, 0xf8, 0x1a, 0xee, 0x06, 0x4c, 0xb7, 0xcd, 0xa2, 0x7d, 0x6e, + 0xeb, 0x1b, 0xe9, 0x3d, 0x55, 0x5b, 0x33, 0x08, 0x9c, 0x65, 0xba, 0x74, 0xfe, 0x9b, 0xdf, 0x3b, + 0xfb, 0xb1, 0x3f, 0xfa, 0xde, 0xd9, 0x8f, 0x7d, 0xe7, 0x7b, 0x67, 0x3f, 0xf6, 0xff, 0x1d, 0x9c, + 0xb5, 0xbe, 0x79, 0x70, 0xd6, 0xfa, 0xa3, 0x83, 0xb3, 0xd6, 0x77, 0x0e, 0xce, 0x5a, 0x7f, 0x7a, + 0x70, 0xd6, 0xfa, 0x85, 0xef, 0x9f, 0xfd, 0xd8, 0x5b, 0xa5, 0xdd, 0x67, 0xff, 0x6f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x32, 0xb3, 0xcb, 0xd3, 0x5f, 0xcb, 0x00, 0x00, } diff --git a/staging/src/k8s.io/api/core/v1/generated.proto b/staging/src/k8s.io/api/core/v1/generated.proto index 504198647cf..8fa22ed6b17 100644 --- a/staging/src/k8s.io/api/core/v1/generated.proto +++ b/staging/src/k8s.io/api/core/v1/generated.proto @@ -124,6 +124,25 @@ message AzureDiskVolumeSource { optional string kind = 6; } +// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +message AzureFilePersistentVolumeSource { + // the name of secret that contains Azure Storage Account Name and Key + optional string secretName = 1; + + // Share Name + optional string shareName = 2; + + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + optional bool readOnly = 3; + + // the namespace of the secret that contains Azure Storage Account Name and Key + // default is the same as the Pod + // +optional + optional string secretNamespace = 4; +} + // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. message AzureFileVolumeSource { // the name of secret that contains Azure Storage Account Name and Key @@ -2222,7 +2241,7 @@ message PersistentVolumeSource { // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. // +optional - optional AzureFileVolumeSource azureFile = 13; + optional AzureFilePersistentVolumeSource azureFile = 13; // VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine // +optional diff --git a/staging/src/k8s.io/api/core/v1/types.generated.go b/staging/src/k8s.io/api/core/v1/types.generated.go index c7ea44dc9c7..67a270e6224 100644 --- a/staging/src/k8s.io/api/core/v1/types.generated.go +++ b/staging/src/k8s.io/api/core/v1/types.generated.go @@ -6113,7 +6113,7 @@ func (x *PersistentVolumeSource) codecDecodeSelfFromMap(l int, d *codec1978.Deco } } else { if x.AzureFile == nil { - x.AzureFile = new(AzureFileVolumeSource) + x.AzureFile = new(AzureFilePersistentVolumeSource) } x.AzureFile.CodecDecodeSelf(d) } @@ -6488,7 +6488,7 @@ func (x *PersistentVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.De } } else { if x.AzureFile == nil { - x.AzureFile = new(AzureFileVolumeSource) + x.AzureFile = new(AzureFilePersistentVolumeSource) } x.AzureFile.CodecDecodeSelf(d) } @@ -8257,7 +8257,7 @@ func (x *PersistentVolumeSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decode } case "azureFile": if x.PersistentVolumeSource.AzureFile == nil { - x.PersistentVolumeSource.AzureFile = new(AzureFileVolumeSource) + x.PersistentVolumeSource.AzureFile = new(AzureFilePersistentVolumeSource) } if r.TryDecodeAsNil() { if x.AzureFile != nil { @@ -8265,7 +8265,7 @@ func (x *PersistentVolumeSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decode } } else { if x.AzureFile == nil { - x.AzureFile = new(AzureFileVolumeSource) + x.AzureFile = new(AzureFilePersistentVolumeSource) } x.AzureFile.CodecDecodeSelf(d) } @@ -8743,7 +8743,7 @@ func (x *PersistentVolumeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Deco x.FlexVolume.CodecDecodeSelf(d) } if x.PersistentVolumeSource.AzureFile == nil { - x.PersistentVolumeSource.AzureFile = new(AzureFileVolumeSource) + x.PersistentVolumeSource.AzureFile = new(AzureFilePersistentVolumeSource) } yyj32++ if yyhl32 { @@ -8762,7 +8762,7 @@ func (x *PersistentVolumeSpec) codecDecodeSelfFromArray(l int, d *codec1978.Deco } } else { if x.AzureFile == nil { - x.AzureFile = new(AzureFileVolumeSource) + x.AzureFile = new(AzureFilePersistentVolumeSource) } x.AzureFile.CodecDecodeSelf(d) } @@ -18100,6 +18100,364 @@ func (x *AzureFileVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Dec z.DecSendContainerState(codecSelfer_containerArrayEnd1234) } +func (x *AzureFilePersistentVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperEncoder(e) + _, _, _ = h, z, r + if x == nil { + r.EncodeNil() + } else { + yym1 := z.EncBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.EncExt(x) { + } else { + yysep2 := !z.EncBinary() + yy2arr2 := z.EncBasicHandle().StructToArray + var yyq2 [4]bool + _, _, _ = yysep2, yyq2, yy2arr2 + const yyr2 bool = false + yyq2[2] = x.ReadOnly != false + var yynn2 int + if yyr2 || yy2arr2 { + r.EncodeArrayStart(4) + } else { + yynn2 = 3 + for _, b := range yyq2 { + if b { + yynn2++ + } + } + r.EncodeMapStart(yynn2) + yynn2 = 0 + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym4 := z.EncBinary() + _ = yym4 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.SecretName)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("secretName")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym5 := z.EncBinary() + _ = yym5 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.SecretName)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + yym7 := z.EncBinary() + _ = yym7 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.ShareName)) + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("shareName")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym8 := z.EncBinary() + _ = yym8 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(x.ShareName)) + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if yyq2[2] { + yym10 := z.EncBinary() + _ = yym10 + if false { + } else { + r.EncodeBool(bool(x.ReadOnly)) + } + } else { + r.EncodeBool(false) + } + } else { + if yyq2[2] { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("readOnly")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + yym11 := z.EncBinary() + _ = yym11 + if false { + } else { + r.EncodeBool(bool(x.ReadOnly)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayElem1234) + if x.SecretNamespace == nil { + r.EncodeNil() + } else { + yy13 := *x.SecretNamespace + yym14 := z.EncBinary() + _ = yym14 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(yy13)) + } + } + } else { + z.EncSendContainerState(codecSelfer_containerMapKey1234) + r.EncodeString(codecSelferC_UTF81234, string("secretNamespace")) + z.EncSendContainerState(codecSelfer_containerMapValue1234) + if x.SecretNamespace == nil { + r.EncodeNil() + } else { + yy15 := *x.SecretNamespace + yym16 := z.EncBinary() + _ = yym16 + if false { + } else { + r.EncodeString(codecSelferC_UTF81234, string(yy15)) + } + } + } + if yyr2 || yy2arr2 { + z.EncSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + z.EncSendContainerState(codecSelfer_containerMapEnd1234) + } + } + } +} + +func (x *AzureFilePersistentVolumeSource) CodecDecodeSelf(d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + yym1 := z.DecBinary() + _ = yym1 + if false { + } else if z.HasExtensions() && z.DecExt(x) { + } else { + yyct2 := r.ContainerType() + if yyct2 == codecSelferValueTypeMap1234 { + yyl2 := r.ReadMapStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerMapEnd1234) + } else { + x.codecDecodeSelfFromMap(yyl2, d) + } + } else if yyct2 == codecSelferValueTypeArray1234 { + yyl2 := r.ReadArrayStart() + if yyl2 == 0 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + } else { + x.codecDecodeSelfFromArray(yyl2, d) + } + } else { + panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234) + } + } +} + +func (x *AzureFilePersistentVolumeSource) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yys3Slc = z.DecScratchBuffer() // default slice to decode into + _ = yys3Slc + var yyhl3 bool = l >= 0 + for yyj3 := 0; ; yyj3++ { + if yyhl3 { + if yyj3 >= l { + break + } + } else { + if r.CheckBreak() { + break + } + } + z.DecSendContainerState(codecSelfer_containerMapKey1234) + yys3Slc = r.DecodeBytes(yys3Slc, true, true) + yys3 := string(yys3Slc) + z.DecSendContainerState(codecSelfer_containerMapValue1234) + switch yys3 { + case "secretName": + if r.TryDecodeAsNil() { + x.SecretName = "" + } else { + yyv4 := &x.SecretName + yym5 := z.DecBinary() + _ = yym5 + if false { + } else { + *((*string)(yyv4)) = r.DecodeString() + } + } + case "shareName": + if r.TryDecodeAsNil() { + x.ShareName = "" + } else { + yyv6 := &x.ShareName + yym7 := z.DecBinary() + _ = yym7 + if false { + } else { + *((*string)(yyv6)) = r.DecodeString() + } + } + case "readOnly": + if r.TryDecodeAsNil() { + x.ReadOnly = false + } else { + yyv8 := &x.ReadOnly + yym9 := z.DecBinary() + _ = yym9 + if false { + } else { + *((*bool)(yyv8)) = r.DecodeBool() + } + } + case "secretNamespace": + if r.TryDecodeAsNil() { + if x.SecretNamespace != nil { + x.SecretNamespace = nil + } + } else { + if x.SecretNamespace == nil { + x.SecretNamespace = new(string) + } + yym11 := z.DecBinary() + _ = yym11 + if false { + } else { + *((*string)(x.SecretNamespace)) = r.DecodeString() + } + } + default: + z.DecStructFieldNotFound(-1, yys3) + } // end switch yys3 + } // end for yyj3 + z.DecSendContainerState(codecSelfer_containerMapEnd1234) +} + +func (x *AzureFilePersistentVolumeSource) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { + var h codecSelfer1234 + z, r := codec1978.GenHelperDecoder(d) + _, _, _ = h, z, r + var yyj12 int + var yyb12 bool + var yyhl12 bool = l >= 0 + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.SecretName = "" + } else { + yyv13 := &x.SecretName + yym14 := z.DecBinary() + _ = yym14 + if false { + } else { + *((*string)(yyv13)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ShareName = "" + } else { + yyv15 := &x.ShareName + yym16 := z.DecBinary() + _ = yym16 + if false { + } else { + *((*string)(yyv15)) = r.DecodeString() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + x.ReadOnly = false + } else { + yyv17 := &x.ReadOnly + yym18 := z.DecBinary() + _ = yym18 + if false { + } else { + *((*bool)(yyv17)) = r.DecodeBool() + } + } + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) + return + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + if r.TryDecodeAsNil() { + if x.SecretNamespace != nil { + x.SecretNamespace = nil + } + } else { + if x.SecretNamespace == nil { + x.SecretNamespace = new(string) + } + yym20 := z.DecBinary() + _ = yym20 + if false { + } else { + *((*string)(x.SecretNamespace)) = r.DecodeString() + } + } + for { + yyj12++ + if yyhl12 { + yyb12 = yyj12 > l + } else { + yyb12 = r.CheckBreak() + } + if yyb12 { + break + } + z.DecSendContainerState(codecSelfer_containerArrayElem1234) + z.DecStructFieldNotFound(yyj12-1, "") + } + z.DecSendContainerState(codecSelfer_containerArrayEnd1234) +} + func (x *VsphereVirtualDiskVolumeSource) CodecEncodeSelf(e *codec1978.Encoder) { var h codecSelfer1234 z, r := codec1978.GenHelperEncoder(e) diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index f92a1b3a412..34d5395939d 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -423,7 +423,7 @@ type PersistentVolumeSource struct { FlexVolume *FlexVolumeSource `json:"flexVolume,omitempty" protobuf:"bytes,12,opt,name=flexVolume"` // AzureFile represents an Azure File Service mount on the host and bind mount to the pod. // +optional - AzureFile *AzureFileVolumeSource `json:"azureFile,omitempty" protobuf:"bytes,13,opt,name=azureFile"` + AzureFile *AzureFilePersistentVolumeSource `json:"azureFile,omitempty" protobuf:"bytes,13,opt,name=azureFile"` // VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine // +optional VsphereVolume *VsphereVirtualDiskVolumeSource `json:"vsphereVolume,omitempty" protobuf:"bytes,14,opt,name=vsphereVolume"` @@ -1169,6 +1169,22 @@ type AzureFileVolumeSource struct { ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` } +// AzureFile represents an Azure File Service mount on the host and bind mount to the pod. +type AzureFilePersistentVolumeSource struct { + // the name of secret that contains Azure Storage Account Name and Key + SecretName string `json:"secretName" protobuf:"bytes,1,opt,name=secretName"` + // Share Name + ShareName string `json:"shareName" protobuf:"bytes,2,opt,name=shareName"` + // Defaults to false (read/write). ReadOnly here will force + // the ReadOnly setting in VolumeMounts. + // +optional + ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,3,opt,name=readOnly"` + // the namespace of the secret that contains Azure Storage Account Name and Key + // default is the same as the Pod + // +optional + SecretNamespace *string `json:"secretNamespace" protobuf:"bytes,4,opt,name=secretNamespace"` +} + // Represents a vSphere volume resource. type VsphereVirtualDiskVolumeSource struct { // Path that identifies vSphere volume vmdk diff --git a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go index eea093c8d74..f7bda3bd10e 100644 --- a/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go +++ b/staging/src/k8s.io/api/core/v1/types_swagger_doc_generated.go @@ -83,6 +83,18 @@ func (AzureDiskVolumeSource) SwaggerDoc() map[string]string { return map_AzureDiskVolumeSource } +var map_AzureFilePersistentVolumeSource = map[string]string{ + "": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", + "secretName": "the name of secret that contains Azure Storage Account Name and Key", + "shareName": "Share Name", + "readOnly": "Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.", + "secretNamespace": "the namespace of the secret that contains Azure Storage Account Name and Key default is the same as the Pod", +} + +func (AzureFilePersistentVolumeSource) SwaggerDoc() map[string]string { + return map_AzureFilePersistentVolumeSource +} + var map_AzureFileVolumeSource = map[string]string{ "": "AzureFile represents an Azure File Service mount on the host and bind mount to the pod.", "secretName": "the name of secret that contains Azure Storage Account Name and Key", diff --git a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go index 9d4a5706375..20929a5db95 100644 --- a/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go +++ b/staging/src/k8s.io/api/core/v1/zz_generated.deepcopy.go @@ -58,6 +58,10 @@ func RegisterDeepCopies(scheme *runtime.Scheme) error { in.(*AzureDiskVolumeSource).DeepCopyInto(out.(*AzureDiskVolumeSource)) return nil }, InType: reflect.TypeOf(&AzureDiskVolumeSource{})}, + conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { + in.(*AzureFilePersistentVolumeSource).DeepCopyInto(out.(*AzureFilePersistentVolumeSource)) + return nil + }, InType: reflect.TypeOf(&AzureFilePersistentVolumeSource{})}, conversion.GeneratedDeepCopyFunc{Fn: func(in interface{}, out interface{}, c *conversion.Cloner) error { in.(*AzureFileVolumeSource).DeepCopyInto(out.(*AzureFileVolumeSource)) return nil @@ -879,6 +883,31 @@ func (in *AzureDiskVolumeSource) DeepCopy() *AzureDiskVolumeSource { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AzureFilePersistentVolumeSource) DeepCopyInto(out *AzureFilePersistentVolumeSource) { + *out = *in + if in.SecretNamespace != nil { + in, out := &in.SecretNamespace, &out.SecretNamespace + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureFilePersistentVolumeSource. +func (in *AzureFilePersistentVolumeSource) DeepCopy() *AzureFilePersistentVolumeSource { + if in == nil { + return nil + } + out := new(AzureFilePersistentVolumeSource) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *AzureFileVolumeSource) DeepCopyInto(out *AzureFileVolumeSource) { *out = *in @@ -3656,8 +3685,8 @@ func (in *PersistentVolumeSource) DeepCopyInto(out *PersistentVolumeSource) { if *in == nil { *out = nil } else { - *out = new(AzureFileVolumeSource) - **out = **in + *out = new(AzureFilePersistentVolumeSource) + (*in).DeepCopyInto(*out) } } if in.VsphereVolume != nil { diff --git a/test/integration/auth/node_test.go b/test/integration/auth/node_test.go index f27b6f00bad..e8eedff7770 100644 --- a/test/integration/auth/node_test.go +++ b/test/integration/auth/node_test.go @@ -136,7 +136,7 @@ func TestNodeAuthorizer(t *testing.T) { AccessModes: []api.PersistentVolumeAccessMode{api.ReadOnlyMany}, Capacity: api.ResourceList{api.ResourceStorage: resource.MustParse("1")}, ClaimRef: &api.ObjectReference{Namespace: "ns", Name: "mypvc"}, - PersistentVolumeSource: api.PersistentVolumeSource{AzureFile: &api.AzureFileVolumeSource{ShareName: "default", SecretName: "mypvsecret"}}, + PersistentVolumeSource: api.PersistentVolumeSource{AzureFile: &api.AzureFilePersistentVolumeSource{ShareName: "default", SecretName: "mypvsecret"}}, }, }); err != nil { t.Fatal(err)